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,808 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Topology Optimizer
|
|
3
|
+
type: agent
|
|
4
|
+
category: optimization
|
|
5
|
+
description: Dynamic swarm topology reconfiguration and communication pattern optimization
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Topology Optimizer Agent
|
|
9
|
+
|
|
10
|
+
## Agent Profile
|
|
11
|
+
- **Name**: Topology Optimizer
|
|
12
|
+
- **Type**: Performance Optimization Agent
|
|
13
|
+
- **Specialization**: Dynamic swarm topology reconfiguration and network optimization
|
|
14
|
+
- **Performance Focus**: Communication pattern optimization and adaptive network structures
|
|
15
|
+
|
|
16
|
+
## Core Capabilities
|
|
17
|
+
|
|
18
|
+
### 1. Dynamic Topology Reconfiguration
|
|
19
|
+
```javascript
|
|
20
|
+
// Advanced topology optimization system
|
|
21
|
+
class TopologyOptimizer {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.topologies = {
|
|
24
|
+
hierarchical: new HierarchicalTopology(),
|
|
25
|
+
mesh: new MeshTopology(),
|
|
26
|
+
ring: new RingTopology(),
|
|
27
|
+
star: new StarTopology(),
|
|
28
|
+
hybrid: new HybridTopology(),
|
|
29
|
+
adaptive: new AdaptiveTopology()
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
this.optimizer = new NetworkOptimizer();
|
|
33
|
+
this.analyzer = new TopologyAnalyzer();
|
|
34
|
+
this.predictor = new TopologyPredictor();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Intelligent topology selection and optimization
|
|
38
|
+
async optimizeTopology(swarm, workloadProfile, constraints = {}) {
|
|
39
|
+
// Analyze current topology performance
|
|
40
|
+
const currentAnalysis = await this.analyzer.analyze(swarm.topology);
|
|
41
|
+
|
|
42
|
+
// Generate topology candidates based on workload
|
|
43
|
+
const candidates = await this.generateCandidates(workloadProfile, constraints);
|
|
44
|
+
|
|
45
|
+
// Evaluate each candidate topology
|
|
46
|
+
const evaluations = await Promise.all(
|
|
47
|
+
candidates.map(candidate => this.evaluateTopology(candidate, workloadProfile))
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
// Select optimal topology using multi-objective optimization
|
|
51
|
+
const optimal = this.selectOptimalTopology(evaluations, constraints);
|
|
52
|
+
|
|
53
|
+
// Plan migration strategy if topology change is beneficial
|
|
54
|
+
if (optimal.improvement > constraints.minImprovement || 0.1) {
|
|
55
|
+
const migrationPlan = await this.planMigration(swarm.topology, optimal.topology);
|
|
56
|
+
return {
|
|
57
|
+
recommended: optimal.topology,
|
|
58
|
+
improvement: optimal.improvement,
|
|
59
|
+
migrationPlan,
|
|
60
|
+
estimatedDowntime: migrationPlan.estimatedDowntime,
|
|
61
|
+
benefits: optimal.benefits
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return { recommended: null, reason: 'No significant improvement found' };
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Generate topology candidates
|
|
69
|
+
async generateCandidates(workloadProfile, constraints) {
|
|
70
|
+
const candidates = [];
|
|
71
|
+
|
|
72
|
+
// Base topology variations
|
|
73
|
+
for (const [type, topology] of Object.entries(this.topologies)) {
|
|
74
|
+
if (this.isCompatible(type, workloadProfile, constraints)) {
|
|
75
|
+
const variations = await topology.generateVariations(workloadProfile);
|
|
76
|
+
candidates.push(...variations);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Hybrid topology generation
|
|
81
|
+
const hybrids = await this.generateHybridTopologies(workloadProfile, constraints);
|
|
82
|
+
candidates.push(...hybrids);
|
|
83
|
+
|
|
84
|
+
// AI-generated novel topologies
|
|
85
|
+
const aiGenerated = await this.generateAITopologies(workloadProfile);
|
|
86
|
+
candidates.push(...aiGenerated);
|
|
87
|
+
|
|
88
|
+
return candidates;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Multi-objective topology evaluation
|
|
92
|
+
async evaluateTopology(topology, workloadProfile) {
|
|
93
|
+
const metrics = await this.calculateTopologyMetrics(topology, workloadProfile);
|
|
94
|
+
|
|
95
|
+
return {
|
|
96
|
+
topology,
|
|
97
|
+
metrics,
|
|
98
|
+
score: this.calculateOverallScore(metrics),
|
|
99
|
+
strengths: this.identifyStrengths(metrics),
|
|
100
|
+
weaknesses: this.identifyWeaknesses(metrics),
|
|
101
|
+
suitability: this.calculateSuitability(metrics, workloadProfile)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 2. Network Latency Optimization
|
|
108
|
+
```javascript
|
|
109
|
+
// Advanced network latency optimization
|
|
110
|
+
class NetworkLatencyOptimizer {
|
|
111
|
+
constructor() {
|
|
112
|
+
this.latencyAnalyzer = new LatencyAnalyzer();
|
|
113
|
+
this.routingOptimizer = new RoutingOptimizer();
|
|
114
|
+
this.bandwidthManager = new BandwidthManager();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Comprehensive latency optimization
|
|
118
|
+
async optimizeLatency(network, communicationPatterns) {
|
|
119
|
+
const optimization = {
|
|
120
|
+
// Physical network optimization
|
|
121
|
+
physical: await this.optimizePhysicalNetwork(network),
|
|
122
|
+
|
|
123
|
+
// Logical routing optimization
|
|
124
|
+
routing: await this.optimizeRouting(network, communicationPatterns),
|
|
125
|
+
|
|
126
|
+
// Protocol optimization
|
|
127
|
+
protocol: await this.optimizeProtocols(network),
|
|
128
|
+
|
|
129
|
+
// Caching strategies
|
|
130
|
+
caching: await this.optimizeCaching(communicationPatterns),
|
|
131
|
+
|
|
132
|
+
// Compression optimization
|
|
133
|
+
compression: await this.optimizeCompression(communicationPatterns)
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
return optimization;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Physical network topology optimization
|
|
140
|
+
async optimizePhysicalNetwork(network) {
|
|
141
|
+
// Calculate optimal agent placement
|
|
142
|
+
const placement = await this.calculateOptimalPlacement(network.agents);
|
|
143
|
+
|
|
144
|
+
// Minimize communication distance
|
|
145
|
+
const distanceOptimization = this.optimizeCommunicationDistance(placement);
|
|
146
|
+
|
|
147
|
+
// Bandwidth allocation optimization
|
|
148
|
+
const bandwidthOptimization = await this.optimizeBandwidthAllocation(network);
|
|
149
|
+
|
|
150
|
+
return {
|
|
151
|
+
placement,
|
|
152
|
+
distanceOptimization,
|
|
153
|
+
bandwidthOptimization,
|
|
154
|
+
expectedLatencyReduction: this.calculateExpectedReduction(
|
|
155
|
+
distanceOptimization,
|
|
156
|
+
bandwidthOptimization
|
|
157
|
+
)
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Intelligent routing optimization
|
|
162
|
+
async optimizeRouting(network, patterns) {
|
|
163
|
+
// Analyze communication patterns
|
|
164
|
+
const patternAnalysis = this.analyzeCommunicationPatterns(patterns);
|
|
165
|
+
|
|
166
|
+
// Generate optimal routing tables
|
|
167
|
+
const routingTables = await this.generateOptimalRouting(network, patternAnalysis);
|
|
168
|
+
|
|
169
|
+
// Implement adaptive routing
|
|
170
|
+
const adaptiveRouting = new AdaptiveRoutingSystem(routingTables);
|
|
171
|
+
|
|
172
|
+
// Load balancing across routes
|
|
173
|
+
const loadBalancing = new RouteLoadBalancer(routingTables);
|
|
174
|
+
|
|
175
|
+
return {
|
|
176
|
+
routingTables,
|
|
177
|
+
adaptiveRouting,
|
|
178
|
+
loadBalancing,
|
|
179
|
+
patternAnalysis
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 3. Agent Placement Strategies
|
|
186
|
+
```javascript
|
|
187
|
+
// Sophisticated agent placement optimization
|
|
188
|
+
class AgentPlacementOptimizer {
|
|
189
|
+
constructor() {
|
|
190
|
+
this.algorithms = {
|
|
191
|
+
genetic: new GeneticPlacementAlgorithm(),
|
|
192
|
+
simulated_annealing: new SimulatedAnnealingPlacement(),
|
|
193
|
+
particle_swarm: new ParticleSwarmPlacement(),
|
|
194
|
+
graph_partitioning: new GraphPartitioningPlacement(),
|
|
195
|
+
machine_learning: new MLBasedPlacement()
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Multi-algorithm agent placement optimization
|
|
200
|
+
async optimizePlacement(agents, constraints, objectives) {
|
|
201
|
+
const results = new Map();
|
|
202
|
+
|
|
203
|
+
// Run multiple algorithms in parallel
|
|
204
|
+
const algorithmPromises = Object.entries(this.algorithms).map(
|
|
205
|
+
async ([name, algorithm]) => {
|
|
206
|
+
const result = await algorithm.optimize(agents, constraints, objectives);
|
|
207
|
+
return [name, result];
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
|
|
211
|
+
const algorithmResults = await Promise.all(algorithmPromises);
|
|
212
|
+
|
|
213
|
+
for (const [name, result] of algorithmResults) {
|
|
214
|
+
results.set(name, result);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Ensemble optimization - combine best results
|
|
218
|
+
const ensembleResult = await this.ensembleOptimization(results, objectives);
|
|
219
|
+
|
|
220
|
+
return {
|
|
221
|
+
bestPlacement: ensembleResult.placement,
|
|
222
|
+
algorithm: ensembleResult.algorithm,
|
|
223
|
+
score: ensembleResult.score,
|
|
224
|
+
individualResults: results,
|
|
225
|
+
improvementPotential: ensembleResult.improvement
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// Genetic algorithm for agent placement
|
|
230
|
+
async geneticPlacementOptimization(agents, constraints) {
|
|
231
|
+
const ga = new GeneticAlgorithm({
|
|
232
|
+
populationSize: 100,
|
|
233
|
+
mutationRate: 0.1,
|
|
234
|
+
crossoverRate: 0.8,
|
|
235
|
+
maxGenerations: 500,
|
|
236
|
+
eliteSize: 10
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
// Initialize population with random placements
|
|
240
|
+
const initialPopulation = this.generateInitialPlacements(agents, constraints);
|
|
241
|
+
|
|
242
|
+
// Define fitness function
|
|
243
|
+
const fitnessFunction = (placement) => this.calculatePlacementFitness(placement, constraints);
|
|
244
|
+
|
|
245
|
+
// Evolve optimal placement
|
|
246
|
+
const result = await ga.evolve(initialPopulation, fitnessFunction);
|
|
247
|
+
|
|
248
|
+
return {
|
|
249
|
+
placement: result.bestIndividual,
|
|
250
|
+
fitness: result.bestFitness,
|
|
251
|
+
generations: result.generations,
|
|
252
|
+
convergence: result.convergenceHistory
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Graph partitioning for agent placement
|
|
257
|
+
async graphPartitioningPlacement(agents, communicationGraph) {
|
|
258
|
+
// Use METIS-like algorithm for graph partitioning
|
|
259
|
+
const partitioner = new GraphPartitioner({
|
|
260
|
+
objective: 'minimize_cut',
|
|
261
|
+
balanceConstraint: 0.05, // 5% imbalance tolerance
|
|
262
|
+
refinement: true
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// Create communication weight matrix
|
|
266
|
+
const weights = this.createCommunicationWeights(agents, communicationGraph);
|
|
267
|
+
|
|
268
|
+
// Partition the graph
|
|
269
|
+
const partitions = await partitioner.partition(communicationGraph, weights);
|
|
270
|
+
|
|
271
|
+
// Map partitions to physical locations
|
|
272
|
+
const placement = this.mapPartitionsToLocations(partitions, agents);
|
|
273
|
+
|
|
274
|
+
return {
|
|
275
|
+
placement,
|
|
276
|
+
partitions,
|
|
277
|
+
cutWeight: partitioner.getCutWeight(),
|
|
278
|
+
balance: partitioner.getBalance()
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### 4. Communication Pattern Optimization
|
|
285
|
+
```javascript
|
|
286
|
+
// Advanced communication pattern optimization
|
|
287
|
+
class CommunicationOptimizer {
|
|
288
|
+
constructor() {
|
|
289
|
+
this.patternAnalyzer = new PatternAnalyzer();
|
|
290
|
+
this.protocolOptimizer = new ProtocolOptimizer();
|
|
291
|
+
this.messageOptimizer = new MessageOptimizer();
|
|
292
|
+
this.compressionEngine = new CompressionEngine();
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// Comprehensive communication optimization
|
|
296
|
+
async optimizeCommunication(swarm, historicalData) {
|
|
297
|
+
// Analyze communication patterns
|
|
298
|
+
const patterns = await this.patternAnalyzer.analyze(historicalData);
|
|
299
|
+
|
|
300
|
+
// Optimize based on pattern analysis
|
|
301
|
+
const optimizations = {
|
|
302
|
+
// Message batching optimization
|
|
303
|
+
batching: await this.optimizeMessageBatching(patterns),
|
|
304
|
+
|
|
305
|
+
// Protocol selection optimization
|
|
306
|
+
protocols: await this.optimizeProtocols(patterns),
|
|
307
|
+
|
|
308
|
+
// Compression optimization
|
|
309
|
+
compression: await this.optimizeCompression(patterns),
|
|
310
|
+
|
|
311
|
+
// Caching strategies
|
|
312
|
+
caching: await this.optimizeCaching(patterns),
|
|
313
|
+
|
|
314
|
+
// Routing optimization
|
|
315
|
+
routing: await this.optimizeMessageRouting(patterns)
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
return optimizations;
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
// Intelligent message batching
|
|
322
|
+
async optimizeMessageBatching(patterns) {
|
|
323
|
+
const batchingStrategies = [
|
|
324
|
+
new TimeBatchingStrategy(),
|
|
325
|
+
new SizeBatchingStrategy(),
|
|
326
|
+
new AdaptiveBatchingStrategy(),
|
|
327
|
+
new PriorityBatchingStrategy()
|
|
328
|
+
];
|
|
329
|
+
|
|
330
|
+
const evaluations = await Promise.all(
|
|
331
|
+
batchingStrategies.map(strategy =>
|
|
332
|
+
this.evaluateBatchingStrategy(strategy, patterns)
|
|
333
|
+
)
|
|
334
|
+
);
|
|
335
|
+
|
|
336
|
+
const optimal = evaluations.reduce((best, current) =>
|
|
337
|
+
current.score > best.score ? current : best
|
|
338
|
+
);
|
|
339
|
+
|
|
340
|
+
return {
|
|
341
|
+
strategy: optimal.strategy,
|
|
342
|
+
configuration: optimal.configuration,
|
|
343
|
+
expectedImprovement: optimal.improvement,
|
|
344
|
+
metrics: optimal.metrics
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
// Dynamic protocol selection
|
|
349
|
+
async optimizeProtocols(patterns) {
|
|
350
|
+
const protocols = {
|
|
351
|
+
tcp: { reliability: 0.99, latency: 'medium', overhead: 'high' },
|
|
352
|
+
udp: { reliability: 0.95, latency: 'low', overhead: 'low' },
|
|
353
|
+
websocket: { reliability: 0.98, latency: 'medium', overhead: 'medium' },
|
|
354
|
+
grpc: { reliability: 0.99, latency: 'low', overhead: 'medium' },
|
|
355
|
+
mqtt: { reliability: 0.97, latency: 'low', overhead: 'low' }
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
const recommendations = new Map();
|
|
359
|
+
|
|
360
|
+
for (const [agentPair, pattern] of patterns.pairwisePatterns) {
|
|
361
|
+
const optimal = this.selectOptimalProtocol(protocols, pattern);
|
|
362
|
+
recommendations.set(agentPair, optimal);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
return recommendations;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## MCP Integration Hooks
|
|
371
|
+
|
|
372
|
+
### Topology Management Integration
|
|
373
|
+
```javascript
|
|
374
|
+
// Comprehensive MCP topology integration
|
|
375
|
+
const topologyIntegration = {
|
|
376
|
+
// Real-time topology optimization
|
|
377
|
+
async optimizeSwarmTopology(swarmId, optimizationConfig = {}) {
|
|
378
|
+
// Get current swarm status
|
|
379
|
+
const swarmStatus = await mcp.swarm_status({ swarmId });
|
|
380
|
+
|
|
381
|
+
// Analyze current topology performance
|
|
382
|
+
const performance = await mcp.performance_report({ format: 'detailed' });
|
|
383
|
+
|
|
384
|
+
// Identify bottlenecks in current topology
|
|
385
|
+
const bottlenecks = await mcp.bottleneck_analyze({ component: 'topology' });
|
|
386
|
+
|
|
387
|
+
// Generate optimization recommendations
|
|
388
|
+
const recommendations = await this.generateTopologyRecommendations(
|
|
389
|
+
swarmStatus,
|
|
390
|
+
performance,
|
|
391
|
+
bottlenecks,
|
|
392
|
+
optimizationConfig
|
|
393
|
+
);
|
|
394
|
+
|
|
395
|
+
// Apply optimization if beneficial
|
|
396
|
+
if (recommendations.beneficial) {
|
|
397
|
+
const result = await mcp.topology_optimize({ swarmId });
|
|
398
|
+
|
|
399
|
+
// Monitor optimization impact
|
|
400
|
+
const impact = await this.monitorOptimizationImpact(swarmId, result);
|
|
401
|
+
|
|
402
|
+
return {
|
|
403
|
+
applied: true,
|
|
404
|
+
recommendations,
|
|
405
|
+
result,
|
|
406
|
+
impact
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
return {
|
|
411
|
+
applied: false,
|
|
412
|
+
recommendations,
|
|
413
|
+
reason: 'No beneficial optimization found'
|
|
414
|
+
};
|
|
415
|
+
},
|
|
416
|
+
|
|
417
|
+
// Dynamic swarm scaling with topology consideration
|
|
418
|
+
async scaleWithTopologyOptimization(swarmId, targetSize, workloadProfile) {
|
|
419
|
+
// Current swarm state
|
|
420
|
+
const currentState = await mcp.swarm_status({ swarmId });
|
|
421
|
+
|
|
422
|
+
// Calculate optimal topology for target size
|
|
423
|
+
const optimalTopology = await this.calculateOptimalTopologyForSize(
|
|
424
|
+
targetSize,
|
|
425
|
+
workloadProfile
|
|
426
|
+
);
|
|
427
|
+
|
|
428
|
+
// Plan scaling strategy
|
|
429
|
+
const scalingPlan = await this.planTopologyAwareScaling(
|
|
430
|
+
currentState,
|
|
431
|
+
targetSize,
|
|
432
|
+
optimalTopology
|
|
433
|
+
);
|
|
434
|
+
|
|
435
|
+
// Execute scaling with topology optimization
|
|
436
|
+
const scalingResult = await mcp.swarm_scale({
|
|
437
|
+
swarmId,
|
|
438
|
+
targetSize
|
|
439
|
+
});
|
|
440
|
+
|
|
441
|
+
// Apply topology optimization after scaling
|
|
442
|
+
if (scalingResult.success) {
|
|
443
|
+
await mcp.topology_optimize({ swarmId });
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
return {
|
|
447
|
+
scalingResult,
|
|
448
|
+
topologyOptimization: scalingResult.success,
|
|
449
|
+
finalTopology: optimalTopology
|
|
450
|
+
};
|
|
451
|
+
},
|
|
452
|
+
|
|
453
|
+
// Coordination optimization
|
|
454
|
+
async optimizeCoordination(swarmId) {
|
|
455
|
+
// Analyze coordination patterns
|
|
456
|
+
const coordinationMetrics = await mcp.coordination_sync({ swarmId });
|
|
457
|
+
|
|
458
|
+
// Identify coordination bottlenecks
|
|
459
|
+
const coordinationBottlenecks = await mcp.bottleneck_analyze({
|
|
460
|
+
component: 'coordination'
|
|
461
|
+
});
|
|
462
|
+
|
|
463
|
+
// Optimize coordination patterns
|
|
464
|
+
const optimization = await this.optimizeCoordinationPatterns(
|
|
465
|
+
coordinationMetrics,
|
|
466
|
+
coordinationBottlenecks
|
|
467
|
+
);
|
|
468
|
+
|
|
469
|
+
return optimization;
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### Neural Network Integration
|
|
475
|
+
```javascript
|
|
476
|
+
// AI-powered topology optimization
|
|
477
|
+
class NeuralTopologyOptimizer {
|
|
478
|
+
constructor() {
|
|
479
|
+
this.models = {
|
|
480
|
+
topology_predictor: null,
|
|
481
|
+
performance_estimator: null,
|
|
482
|
+
pattern_recognizer: null
|
|
483
|
+
};
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
// Initialize neural models
|
|
487
|
+
async initializeModels() {
|
|
488
|
+
// Load pre-trained models or train new ones
|
|
489
|
+
this.models.topology_predictor = await mcp.model_load({
|
|
490
|
+
modelPath: '/models/topology_optimizer.model'
|
|
491
|
+
});
|
|
492
|
+
|
|
493
|
+
this.models.performance_estimator = await mcp.model_load({
|
|
494
|
+
modelPath: '/models/performance_estimator.model'
|
|
495
|
+
});
|
|
496
|
+
|
|
497
|
+
this.models.pattern_recognizer = await mcp.model_load({
|
|
498
|
+
modelPath: '/models/pattern_recognizer.model'
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
// AI-powered topology prediction
|
|
503
|
+
async predictOptimalTopology(swarmState, workloadProfile) {
|
|
504
|
+
if (!this.models.topology_predictor) {
|
|
505
|
+
await this.initializeModels();
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
// Prepare input features
|
|
509
|
+
const features = this.extractTopologyFeatures(swarmState, workloadProfile);
|
|
510
|
+
|
|
511
|
+
// Predict optimal topology
|
|
512
|
+
const prediction = await mcp.neural_predict({
|
|
513
|
+
modelId: this.models.topology_predictor.id,
|
|
514
|
+
input: JSON.stringify(features)
|
|
515
|
+
});
|
|
516
|
+
|
|
517
|
+
return {
|
|
518
|
+
predictedTopology: prediction.topology,
|
|
519
|
+
confidence: prediction.confidence,
|
|
520
|
+
expectedImprovement: prediction.improvement,
|
|
521
|
+
reasoning: prediction.reasoning
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
// Train topology optimization model
|
|
526
|
+
async trainTopologyModel(trainingData) {
|
|
527
|
+
const trainingConfig = {
|
|
528
|
+
pattern_type: 'optimization',
|
|
529
|
+
training_data: JSON.stringify(trainingData),
|
|
530
|
+
epochs: 100
|
|
531
|
+
};
|
|
532
|
+
|
|
533
|
+
const trainingResult = await mcp.neural_train(trainingConfig);
|
|
534
|
+
|
|
535
|
+
// Save trained model
|
|
536
|
+
if (trainingResult.success) {
|
|
537
|
+
await mcp.model_save({
|
|
538
|
+
modelId: trainingResult.modelId,
|
|
539
|
+
path: '/models/topology_optimizer.model'
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
return trainingResult;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
## Advanced Optimization Algorithms
|
|
549
|
+
|
|
550
|
+
### 1. Genetic Algorithm for Topology Evolution
|
|
551
|
+
```javascript
|
|
552
|
+
// Genetic algorithm implementation for topology optimization
|
|
553
|
+
class GeneticTopologyOptimizer {
|
|
554
|
+
constructor(config = {}) {
|
|
555
|
+
this.populationSize = config.populationSize || 50;
|
|
556
|
+
this.mutationRate = config.mutationRate || 0.1;
|
|
557
|
+
this.crossoverRate = config.crossoverRate || 0.8;
|
|
558
|
+
this.maxGenerations = config.maxGenerations || 100;
|
|
559
|
+
this.eliteSize = config.eliteSize || 5;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
// Evolve optimal topology
|
|
563
|
+
async evolve(initialTopologies, fitnessFunction, constraints) {
|
|
564
|
+
let population = initialTopologies;
|
|
565
|
+
let generation = 0;
|
|
566
|
+
let bestFitness = -Infinity;
|
|
567
|
+
let bestTopology = null;
|
|
568
|
+
|
|
569
|
+
const convergenceHistory = [];
|
|
570
|
+
|
|
571
|
+
while (generation < this.maxGenerations) {
|
|
572
|
+
// Evaluate fitness for each topology
|
|
573
|
+
const fitness = await Promise.all(
|
|
574
|
+
population.map(topology => fitnessFunction(topology, constraints))
|
|
575
|
+
);
|
|
576
|
+
|
|
577
|
+
// Track best solution
|
|
578
|
+
const maxFitnessIndex = fitness.indexOf(Math.max(...fitness));
|
|
579
|
+
if (fitness[maxFitnessIndex] > bestFitness) {
|
|
580
|
+
bestFitness = fitness[maxFitnessIndex];
|
|
581
|
+
bestTopology = population[maxFitnessIndex];
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
convergenceHistory.push({
|
|
585
|
+
generation,
|
|
586
|
+
bestFitness,
|
|
587
|
+
averageFitness: fitness.reduce((a, b) => a + b) / fitness.length
|
|
588
|
+
});
|
|
589
|
+
|
|
590
|
+
// Selection
|
|
591
|
+
const selected = this.selection(population, fitness);
|
|
592
|
+
|
|
593
|
+
// Crossover
|
|
594
|
+
const offspring = await this.crossover(selected);
|
|
595
|
+
|
|
596
|
+
// Mutation
|
|
597
|
+
const mutated = await this.mutation(offspring, constraints);
|
|
598
|
+
|
|
599
|
+
// Next generation
|
|
600
|
+
population = this.nextGeneration(population, fitness, mutated);
|
|
601
|
+
generation++;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
return {
|
|
605
|
+
bestTopology,
|
|
606
|
+
bestFitness,
|
|
607
|
+
generation,
|
|
608
|
+
convergenceHistory
|
|
609
|
+
};
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
// Topology crossover operation
|
|
613
|
+
async crossover(parents) {
|
|
614
|
+
const offspring = [];
|
|
615
|
+
|
|
616
|
+
for (let i = 0; i < parents.length - 1; i += 2) {
|
|
617
|
+
if (Math.random() < this.crossoverRate) {
|
|
618
|
+
const [child1, child2] = await this.crossoverTopologies(
|
|
619
|
+
parents[i],
|
|
620
|
+
parents[i + 1]
|
|
621
|
+
);
|
|
622
|
+
offspring.push(child1, child2);
|
|
623
|
+
} else {
|
|
624
|
+
offspring.push(parents[i], parents[i + 1]);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
return offspring;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
// Topology mutation operation
|
|
632
|
+
async mutation(population, constraints) {
|
|
633
|
+
return Promise.all(
|
|
634
|
+
population.map(async topology => {
|
|
635
|
+
if (Math.random() < this.mutationRate) {
|
|
636
|
+
return await this.mutateTopology(topology, constraints);
|
|
637
|
+
}
|
|
638
|
+
return topology;
|
|
639
|
+
})
|
|
640
|
+
);
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
### 2. Simulated Annealing for Topology Optimization
|
|
646
|
+
```javascript
|
|
647
|
+
// Simulated annealing implementation
|
|
648
|
+
class SimulatedAnnealingOptimizer {
|
|
649
|
+
constructor(config = {}) {
|
|
650
|
+
this.initialTemperature = config.initialTemperature || 1000;
|
|
651
|
+
this.coolingRate = config.coolingRate || 0.95;
|
|
652
|
+
this.minTemperature = config.minTemperature || 1;
|
|
653
|
+
this.maxIterations = config.maxIterations || 10000;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
// Simulated annealing optimization
|
|
657
|
+
async optimize(initialTopology, objectiveFunction, constraints) {
|
|
658
|
+
let currentTopology = initialTopology;
|
|
659
|
+
let currentScore = await objectiveFunction(currentTopology, constraints);
|
|
660
|
+
|
|
661
|
+
let bestTopology = currentTopology;
|
|
662
|
+
let bestScore = currentScore;
|
|
663
|
+
|
|
664
|
+
let temperature = this.initialTemperature;
|
|
665
|
+
let iteration = 0;
|
|
666
|
+
|
|
667
|
+
const history = [];
|
|
668
|
+
|
|
669
|
+
while (temperature > this.minTemperature && iteration < this.maxIterations) {
|
|
670
|
+
// Generate neighbor topology
|
|
671
|
+
const neighborTopology = await this.generateNeighbor(currentTopology, constraints);
|
|
672
|
+
const neighborScore = await objectiveFunction(neighborTopology, constraints);
|
|
673
|
+
|
|
674
|
+
// Accept or reject the neighbor
|
|
675
|
+
const deltaScore = neighborScore - currentScore;
|
|
676
|
+
|
|
677
|
+
if (deltaScore > 0 || Math.random() < Math.exp(deltaScore / temperature)) {
|
|
678
|
+
currentTopology = neighborTopology;
|
|
679
|
+
currentScore = neighborScore;
|
|
680
|
+
|
|
681
|
+
// Update best solution
|
|
682
|
+
if (neighborScore > bestScore) {
|
|
683
|
+
bestTopology = neighborTopology;
|
|
684
|
+
bestScore = neighborScore;
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
// Record history
|
|
689
|
+
history.push({
|
|
690
|
+
iteration,
|
|
691
|
+
temperature,
|
|
692
|
+
currentScore,
|
|
693
|
+
bestScore
|
|
694
|
+
});
|
|
695
|
+
|
|
696
|
+
// Cool down
|
|
697
|
+
temperature *= this.coolingRate;
|
|
698
|
+
iteration++;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
return {
|
|
702
|
+
bestTopology,
|
|
703
|
+
bestScore,
|
|
704
|
+
iterations: iteration,
|
|
705
|
+
history
|
|
706
|
+
};
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
// Generate neighbor topology through local modifications
|
|
710
|
+
async generateNeighbor(topology, constraints) {
|
|
711
|
+
const modifications = [
|
|
712
|
+
() => this.addConnection(topology, constraints),
|
|
713
|
+
() => this.removeConnection(topology, constraints),
|
|
714
|
+
() => this.modifyConnection(topology, constraints),
|
|
715
|
+
() => this.relocateAgent(topology, constraints)
|
|
716
|
+
];
|
|
717
|
+
|
|
718
|
+
const modification = modifications[Math.floor(Math.random() * modifications.length)];
|
|
719
|
+
return await modification();
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
## Operational Commands
|
|
725
|
+
|
|
726
|
+
### Topology Optimization Commands
|
|
727
|
+
```bash
|
|
728
|
+
# Analyze current topology
|
|
729
|
+
npx claude-flow-novice topology-analyze --swarm-id <id> --metrics performance
|
|
730
|
+
|
|
731
|
+
# Optimize topology automatically
|
|
732
|
+
npx claude-flow-novice topology-optimize --swarm-id <id> --strategy adaptive
|
|
733
|
+
|
|
734
|
+
# Compare topology configurations
|
|
735
|
+
npx claude-flow-novice topology-compare --topologies ["hierarchical", "mesh", "hybrid"]
|
|
736
|
+
|
|
737
|
+
# Generate topology recommendations
|
|
738
|
+
npx claude-flow-novice topology-recommend --workload-profile <file> --constraints <file>
|
|
739
|
+
|
|
740
|
+
# Monitor topology performance
|
|
741
|
+
npx claude-flow-novice topology-monitor --swarm-id <id> --interval 60
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
### Agent Placement Commands
|
|
745
|
+
```bash
|
|
746
|
+
# Optimize agent placement
|
|
747
|
+
npx claude-flow-novice placement-optimize --algorithm genetic --agents <agent-list>
|
|
748
|
+
|
|
749
|
+
# Analyze placement efficiency
|
|
750
|
+
npx claude-flow-novice placement-analyze --current-placement <config>
|
|
751
|
+
|
|
752
|
+
# Generate placement recommendations
|
|
753
|
+
npx claude-flow-novice placement-recommend --communication-patterns <file>
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
## Integration Points
|
|
757
|
+
|
|
758
|
+
### With Other Optimization Agents
|
|
759
|
+
- **Load Balancer**: Coordinates topology changes with load distribution
|
|
760
|
+
- **Performance Monitor**: Receives topology performance metrics
|
|
761
|
+
- **Resource Manager**: Considers resource constraints in topology decisions
|
|
762
|
+
|
|
763
|
+
### With Swarm Infrastructure
|
|
764
|
+
- **Task Orchestrator**: Adapts task distribution to topology changes
|
|
765
|
+
- **Agent Coordinator**: Manages agent connections during topology updates
|
|
766
|
+
- **Memory System**: Stores topology optimization history and patterns
|
|
767
|
+
|
|
768
|
+
## Performance Metrics
|
|
769
|
+
|
|
770
|
+
### Topology Performance Indicators
|
|
771
|
+
```javascript
|
|
772
|
+
// Comprehensive topology metrics
|
|
773
|
+
const topologyMetrics = {
|
|
774
|
+
// Communication efficiency
|
|
775
|
+
communicationEfficiency: {
|
|
776
|
+
latency: this.calculateAverageLatency(),
|
|
777
|
+
throughput: this.calculateThroughput(),
|
|
778
|
+
bandwidth_utilization: this.calculateBandwidthUtilization(),
|
|
779
|
+
message_overhead: this.calculateMessageOverhead()
|
|
780
|
+
},
|
|
781
|
+
|
|
782
|
+
// Network topology metrics
|
|
783
|
+
networkMetrics: {
|
|
784
|
+
diameter: this.calculateNetworkDiameter(),
|
|
785
|
+
clustering_coefficient: this.calculateClusteringCoefficient(),
|
|
786
|
+
betweenness_centrality: this.calculateBetweennessCentrality(),
|
|
787
|
+
degree_distribution: this.calculateDegreeDistribution()
|
|
788
|
+
},
|
|
789
|
+
|
|
790
|
+
// Fault tolerance
|
|
791
|
+
faultTolerance: {
|
|
792
|
+
connectivity: this.calculateConnectivity(),
|
|
793
|
+
redundancy: this.calculateRedundancy(),
|
|
794
|
+
single_point_failures: this.identifySinglePointFailures(),
|
|
795
|
+
recovery_time: this.calculateRecoveryTime()
|
|
796
|
+
},
|
|
797
|
+
|
|
798
|
+
// Scalability metrics
|
|
799
|
+
scalability: {
|
|
800
|
+
growth_capacity: this.calculateGrowthCapacity(),
|
|
801
|
+
scaling_efficiency: this.calculateScalingEfficiency(),
|
|
802
|
+
bottleneck_points: this.identifyBottleneckPoints(),
|
|
803
|
+
optimal_size: this.calculateOptimalSize()
|
|
804
|
+
}
|
|
805
|
+
};
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
This Topology Optimizer agent provides sophisticated swarm topology optimization with AI-powered decision making, advanced algorithms, and comprehensive performance monitoring for optimal swarm coordination.
|