claude-flow 3.32.8 → 3.32.10
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/.proven-config-version +1 -0
- package/.claude/agents/MIGRATION_SUMMARY.md +221 -221
- package/.claude/agents/analysis/analyze-code-quality.md +57 -57
- package/.claude/agents/analysis/code-analyzer.md +188 -188
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +57 -57
- package/.claude/agents/architecture/system-design/arch-system-design.md +35 -35
- package/.claude/agents/base-template-generator.md +41 -41
- package/.claude/agents/consensus/byzantine-coordinator.md +42 -42
- package/.claude/agents/consensus/crdt-synchronizer.md +976 -976
- package/.claude/agents/consensus/gossip-coordinator.md +42 -42
- package/.claude/agents/consensus/performance-benchmarker.md +830 -830
- package/.claude/agents/consensus/quorum-manager.md +802 -802
- package/.claude/agents/consensus/raft-manager.md +42 -42
- package/.claude/agents/consensus/security-manager.md +601 -601
- package/.claude/agents/core/coder.md +254 -254
- package/.claude/agents/core/planner.md +151 -151
- package/.claude/agents/core/researcher.md +173 -173
- package/.claude/agents/core/reviewer.md +308 -308
- package/.claude/agents/core/tester.md +299 -299
- package/.claude/agents/custom/test-long-runner.md +43 -43
- package/.claude/agents/data/ml/data-ml-model.md +75 -75
- package/.claude/agents/database-specialist.md +9 -9
- package/.claude/agents/development/backend/dev-backend-api.md +28 -28
- package/.claude/agents/development/dev-backend-api.md +177 -177
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +51 -51
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +62 -62
- package/.claude/agents/dual-mode/codex-coordinator.md +206 -206
- package/.claude/agents/dual-mode/codex-worker.md +190 -190
- package/.claude/agents/dual-mode/dual-orchestrator.md +253 -253
- package/.claude/agents/flow-nexus/app-store.md +87 -87
- package/.claude/agents/flow-nexus/authentication.md +68 -68
- package/.claude/agents/flow-nexus/challenges.md +80 -80
- package/.claude/agents/flow-nexus/neural-network.md +87 -87
- package/.claude/agents/flow-nexus/payments.md +82 -82
- package/.claude/agents/flow-nexus/sandbox.md +75 -75
- package/.claude/agents/flow-nexus/swarm.md +75 -75
- package/.claude/agents/flow-nexus/user-tools.md +95 -95
- package/.claude/agents/flow-nexus/workflow.md +83 -83
- package/.claude/agents/github/code-review-swarm.md +520 -520
- package/.claude/agents/github/github-modes.md +153 -153
- package/.claude/agents/github/issue-tracker.md +298 -298
- package/.claude/agents/github/multi-repo-swarm.md +524 -524
- package/.claude/agents/github/pr-manager.md +162 -162
- package/.claude/agents/github/project-board-sync.md +477 -477
- package/.claude/agents/github/release-manager.md +337 -337
- package/.claude/agents/github/release-swarm.md +550 -550
- package/.claude/agents/github/repo-architect.md +364 -364
- package/.claude/agents/github/swarm-issue.md +550 -550
- package/.claude/agents/github/swarm-pr.md +401 -401
- package/.claude/agents/github/sync-coordinator.md +424 -424
- package/.claude/agents/github/workflow-automation.md +604 -604
- package/.claude/agents/goal/agent.md +816 -816
- package/.claude/agents/goal/code-goal-planner.md +444 -444
- package/.claude/agents/goal/goal-planner.md +167 -167
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +128 -128
- package/.claude/agents/hive-mind/queen-coordinator.md +201 -201
- package/.claude/agents/hive-mind/scout-explorer.md +240 -240
- package/.claude/agents/hive-mind/swarm-memory-manager.md +191 -191
- package/.claude/agents/hive-mind/worker-specialist.md +215 -215
- package/.claude/agents/neural/safla-neural.md +73 -73
- package/.claude/agents/optimization/benchmark-suite.md +662 -662
- package/.claude/agents/optimization/load-balancer.md +428 -428
- package/.claude/agents/optimization/performance-monitor.md +669 -669
- package/.claude/agents/optimization/resource-allocator.md +671 -671
- package/.claude/agents/optimization/topology-optimizer.md +805 -805
- package/.claude/agents/payments/agentic-payments.md +126 -126
- package/.claude/agents/project-coordinator.md +8 -8
- package/.claude/agents/python-specialist.md +9 -9
- package/.claude/agents/reasoning/agent.md +816 -816
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/security-auditor.md +9 -9
- package/.claude/agents/sona/sona-learning-optimizer.md +65 -65
- package/.claude/agents/sparc/architecture.md +452 -452
- package/.claude/agents/sparc/pseudocode.md +298 -298
- package/.claude/agents/sparc/refinement.md +503 -503
- package/.claude/agents/sparc/specification.md +257 -257
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +87 -87
- package/.claude/agents/sublinear/consensus-coordinator.md +337 -337
- package/.claude/agents/sublinear/matrix-optimizer.md +184 -184
- package/.claude/agents/sublinear/pagerank-analyzer.md +298 -298
- package/.claude/agents/sublinear/performance-optimizer.md +367 -367
- package/.claude/agents/sublinear/trading-predictor.md +245 -245
- package/.claude/agents/swarm/adaptive-coordinator.md +363 -363
- package/.claude/agents/swarm/hierarchical-coordinator.md +299 -299
- package/.claude/agents/swarm/mesh-coordinator.md +362 -362
- package/.claude/agents/templates/automation-smart-agent.md +184 -184
- package/.claude/agents/templates/coordinator-swarm-init.md +82 -82
- package/.claude/agents/templates/github-pr-manager.md +154 -154
- package/.claude/agents/templates/implementer-sparc-coder.md +242 -242
- package/.claude/agents/templates/memory-coordinator.md +162 -162
- package/.claude/agents/templates/migration-plan.md +723 -723
- package/.claude/agents/templates/orchestrator-task.md +119 -119
- package/.claude/agents/templates/performance-analyzer.md +178 -178
- package/.claude/agents/templates/sparc-coordinator.md +162 -162
- package/.claude/agents/testing/production-validator.md +372 -372
- package/.claude/agents/testing/tdd-london-swarm.md +221 -221
- package/.claude/agents/testing/unit/tdd-london-swarm.md +221 -221
- package/.claude/agents/testing/validation/production-validator.md +372 -372
- package/.claude/agents/typescript-specialist.md +9 -9
- package/.claude/agents/v3/database-specialist.md +9 -9
- package/.claude/agents/v3/project-coordinator.md +8 -8
- package/.claude/agents/v3/python-specialist.md +9 -9
- package/.claude/agents/v3/test-architect.md +9 -9
- package/.claude/agents/v3/typescript-specialist.md +9 -9
- package/.claude/agents/v3/v3-integration-architect.md +311 -311
- package/.claude/agents/v3/v3-memory-specialist.md +280 -280
- package/.claude/agents/v3/v3-performance-engineer.md +362 -362
- package/.claude/agents/v3/v3-queen-coordinator.md +62 -62
- package/.claude/agents/v3/v3-security-architect.md +139 -139
- package/.claude/checkpoints/1767754460.json +8 -8
- package/.claude/commands/agents/README.md +10 -10
- package/.claude/commands/agents/agent-capabilities.md +21 -21
- package/.claude/commands/agents/agent-coordination.md +28 -28
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/agents/agent-types.md +26 -26
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +53 -53
- package/.claude/commands/analysis/README.md +9 -9
- package/.claude/commands/analysis/bottleneck-detect.md +162 -162
- package/.claude/commands/analysis/performance-bottlenecks.md +58 -58
- package/.claude/commands/analysis/performance-report.md +25 -25
- package/.claude/commands/analysis/token-efficiency.md +44 -44
- package/.claude/commands/analysis/token-usage.md +25 -25
- package/.claude/commands/automation/README.md +9 -9
- package/.claude/commands/automation/auto-agent.md +122 -122
- package/.claude/commands/automation/self-healing.md +105 -105
- package/.claude/commands/automation/session-memory.md +89 -89
- package/.claude/commands/automation/smart-agents.md +72 -72
- package/.claude/commands/automation/smart-spawn.md +25 -25
- package/.claude/commands/automation/workflow-select.md +25 -25
- package/.claude/commands/claude-flow-help.md +103 -103
- package/.claude/commands/claude-flow-memory.md +107 -107
- package/.claude/commands/claude-flow-swarm.md +205 -205
- package/.claude/commands/coordination/README.md +9 -9
- package/.claude/commands/coordination/agent-spawn.md +25 -25
- package/.claude/commands/coordination/init.md +44 -44
- package/.claude/commands/coordination/orchestrate.md +43 -43
- package/.claude/commands/coordination/spawn.md +45 -45
- package/.claude/commands/coordination/swarm-init.md +85 -85
- package/.claude/commands/coordination/task-orchestrate.md +25 -25
- package/.claude/commands/flow-nexus/app-store.md +123 -123
- package/.claude/commands/flow-nexus/challenges.md +119 -119
- package/.claude/commands/flow-nexus/login-registration.md +64 -64
- package/.claude/commands/flow-nexus/neural-network.md +133 -133
- package/.claude/commands/flow-nexus/payments.md +115 -115
- package/.claude/commands/flow-nexus/sandbox.md +82 -82
- package/.claude/commands/flow-nexus/swarm.md +86 -86
- package/.claude/commands/flow-nexus/user-tools.md +151 -151
- package/.claude/commands/flow-nexus/workflow.md +114 -114
- package/.claude/commands/github/README.md +11 -11
- package/.claude/commands/github/code-review-swarm.md +513 -513
- package/.claude/commands/github/code-review.md +25 -25
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/issue-triage.md +25 -25
- package/.claude/commands/github/multi-repo-swarm.md +518 -518
- package/.claude/commands/github/pr-enhance.md +26 -26
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/project-board-sync.md +470 -470
- package/.claude/commands/github/release-manager.md +337 -337
- package/.claude/commands/github/release-swarm.md +543 -543
- package/.claude/commands/github/repo-analyze.md +25 -25
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/swarm-issue.md +481 -481
- package/.claude/commands/github/swarm-pr.md +284 -284
- package/.claude/commands/github/sync-coordinator.md +300 -300
- package/.claude/commands/github/workflow-automation.md +441 -441
- package/.claude/commands/hive-mind/README.md +17 -17
- package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-init.md +18 -18
- package/.claude/commands/hive-mind/hive-mind-memory.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-resume.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -21
- package/.claude/commands/hive-mind/hive-mind-status.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-stop.md +8 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -8
- package/.claude/commands/hive-mind/hive-mind.md +27 -27
- package/.claude/commands/hooks/README.md +11 -11
- package/.claude/commands/hooks/overview.md +57 -57
- package/.claude/commands/hooks/post-edit.md +117 -117
- package/.claude/commands/hooks/post-task.md +112 -112
- package/.claude/commands/hooks/pre-edit.md +113 -113
- package/.claude/commands/hooks/pre-task.md +111 -111
- package/.claude/commands/hooks/session-end.md +118 -118
- package/.claude/commands/hooks/setup.md +102 -102
- package/.claude/commands/memory/README.md +9 -9
- package/.claude/commands/memory/memory-persist.md +25 -25
- package/.claude/commands/memory/memory-search.md +25 -25
- package/.claude/commands/memory/memory-usage.md +25 -25
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/monitoring/README.md +9 -9
- package/.claude/commands/monitoring/agent-metrics.md +25 -25
- package/.claude/commands/monitoring/agents.md +44 -44
- package/.claude/commands/monitoring/real-time-view.md +25 -25
- package/.claude/commands/monitoring/status.md +46 -46
- package/.claude/commands/monitoring/swarm-monitor.md +25 -25
- package/.claude/commands/optimization/README.md +9 -9
- package/.claude/commands/optimization/auto-topology.md +61 -61
- package/.claude/commands/optimization/cache-manage.md +25 -25
- package/.claude/commands/optimization/parallel-execute.md +25 -25
- package/.claude/commands/optimization/parallel-execution.md +49 -49
- package/.claude/commands/optimization/topology-optimize.md +25 -25
- package/.claude/commands/pair/README.md +260 -260
- package/.claude/commands/pair/commands.md +545 -545
- package/.claude/commands/pair/config.md +509 -509
- package/.claude/commands/pair/examples.md +511 -511
- package/.claude/commands/pair/modes.md +347 -347
- package/.claude/commands/pair/session.md +406 -406
- package/.claude/commands/pair/start.md +208 -208
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/stream-chain/pipeline.md +120 -120
- package/.claude/commands/stream-chain/run.md +69 -69
- package/.claude/commands/swarm/README.md +15 -15
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/swarm-analysis.md +8 -8
- package/.claude/commands/swarm/swarm-background.md +8 -8
- package/.claude/commands/swarm/swarm-init.md +19 -19
- package/.claude/commands/swarm/swarm-modes.md +8 -8
- package/.claude/commands/swarm/swarm-monitor.md +8 -8
- package/.claude/commands/swarm/swarm-spawn.md +19 -19
- package/.claude/commands/swarm/swarm-status.md +8 -8
- package/.claude/commands/swarm/swarm-strategies.md +8 -8
- package/.claude/commands/swarm/swarm.md +27 -27
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/training/README.md +9 -9
- package/.claude/commands/training/model-update.md +25 -25
- package/.claude/commands/training/neural-patterns.md +73 -73
- package/.claude/commands/training/neural-train.md +25 -25
- package/.claude/commands/training/pattern-learn.md +25 -25
- package/.claude/commands/training/specialization.md +62 -62
- package/.claude/commands/truth/start.md +142 -142
- package/.claude/commands/verify/check.md +49 -49
- package/.claude/commands/verify/start.md +127 -127
- package/.claude/commands/workflows/README.md +9 -9
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/commands/workflows/workflow-create.md +25 -25
- package/.claude/commands/workflows/workflow-execute.md +25 -25
- package/.claude/commands/workflows/workflow-export.md +25 -25
- package/.claude/config/v3-dependency-optimization.json +265 -265
- package/.claude/config/v3-performance-targets.json +250 -250
- package/.claude/helpers/.LOCKED +2 -2
- package/.claude/helpers/.helpers-version +1 -0
- package/.claude/helpers/README.md +96 -96
- package/.claude/helpers/adr-compliance.sh +186 -186
- package/.claude/helpers/aggressive-microcompact.mjs +36 -36
- package/.claude/helpers/auto-commit.sh +178 -178
- package/.claude/helpers/auto-memory-hook.mjs +430 -430
- package/.claude/helpers/checkpoint-manager.sh +251 -251
- package/.claude/helpers/context-persistence-hook.mjs +2001 -2001
- package/.claude/helpers/daemon-manager.sh +252 -252
- package/.claude/helpers/ddd-tracker.sh +144 -144
- package/.claude/helpers/github-safe.js +156 -156
- package/.claude/helpers/github-setup.sh +45 -45
- package/.claude/helpers/guidance-hook.sh +13 -13
- package/.claude/helpers/guidance-hooks.sh +102 -102
- package/.claude/helpers/health-monitor.sh +108 -108
- package/.claude/helpers/helpers.manifest.json +13 -0
- package/.claude/helpers/hook-handler.cjs +464 -464
- package/.claude/helpers/intelligence.cjs +1058 -1058
- package/.claude/helpers/learning-hooks.sh +329 -329
- package/.claude/helpers/learning-optimizer.sh +127 -127
- package/.claude/helpers/learning-service.mjs +1144 -1144
- package/.claude/helpers/memory.cjs +84 -84
- package/.claude/helpers/metrics-db.mjs +503 -503
- package/.claude/helpers/patch-aggressive-prune.mjs +184 -184
- package/.claude/helpers/pattern-consolidator.sh +86 -86
- package/.claude/helpers/perf-worker.sh +160 -160
- package/.claude/helpers/quick-start.sh +19 -19
- package/.claude/helpers/router.cjs +62 -62
- package/.claude/helpers/security-scanner.sh +127 -127
- package/.claude/helpers/session.cjs +125 -125
- package/.claude/helpers/setup-mcp.sh +18 -18
- package/.claude/helpers/standard-checkpoint-hooks.sh +189 -189
- package/.claude/helpers/statusline.cjs +211 -2
- package/.claude/helpers/swarm-comms.sh +353 -353
- package/.claude/helpers/swarm-hooks.sh +761 -761
- package/.claude/helpers/swarm-monitor.sh +210 -210
- package/.claude/helpers/sync-v3-metrics.sh +245 -245
- package/.claude/helpers/update-v3-progress.sh +165 -165
- package/.claude/helpers/v3-quick-status.sh +57 -57
- package/.claude/helpers/v3.sh +110 -110
- package/.claude/helpers/validate-v3-config.sh +215 -215
- package/.claude/helpers/worker-manager.sh +170 -170
- package/.claude/mcp.json +12 -12
- package/.claude/proven-config.json +42 -0
- package/.claude/settings.json +284 -284
- package/.claude/settings.json.bak +526 -526
- package/.claude/skills/agentdb-advanced/SKILL.md +550 -550
- package/.claude/skills/agentdb-learning/SKILL.md +545 -545
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -339
- package/.claude/skills/agentdb-optimization/SKILL.md +509 -509
- package/.claude/skills/agentdb-vector-search/SKILL.md +339 -339
- package/.claude/skills/agentic-jujutsu/SKILL.md +645 -645
- package/.claude/skills/browser/SKILL.md +204 -204
- package/.claude/skills/dual-mode/README.md +71 -71
- package/.claude/skills/dual-mode/dual-collect.md +103 -103
- package/.claude/skills/dual-mode/dual-coordinate.md +85 -85
- package/.claude/skills/dual-mode/dual-spawn.md +81 -81
- package/.claude/skills/flow-nexus-neural/SKILL.md +727 -727
- package/.claude/skills/flow-nexus-platform/SKILL.md +1154 -1154
- package/.claude/skills/flow-nexus-swarm/SKILL.md +604 -604
- package/.claude/skills/github-code-review/SKILL.md +1125 -1125
- package/.claude/skills/github-multi-repo/SKILL.md +862 -862
- package/.claude/skills/github-project-management/SKILL.md +1262 -1262
- package/.claude/skills/github-release-management/SKILL.md +1064 -1064
- package/.claude/skills/github-workflow-automation/SKILL.md +1047 -1047
- package/.claude/skills/hive-mind-advanced/SKILL.md +709 -709
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/pair-programming/SKILL.md +1202 -1202
- package/.claude/skills/performance-analysis/SKILL.md +560 -560
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -446
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -201
- package/.claude/skills/skill-builder/SKILL.md +910 -910
- package/.claude/skills/sparc-methodology/SKILL.md +1106 -1106
- package/.claude/skills/stream-chain/SKILL.md +560 -560
- package/.claude/skills/swarm-advanced/SKILL.md +970 -970
- package/.claude/skills/swarm-orchestration/SKILL.md +179 -179
- package/.claude/skills/v3-cli-modernization/SKILL.md +871 -871
- package/.claude/skills/v3-core-implementation/SKILL.md +796 -796
- package/.claude/skills/v3-ddd-architecture/SKILL.md +441 -441
- package/.claude/skills/v3-integration-deep/SKILL.md +240 -240
- package/.claude/skills/v3-mcp-optimization/SKILL.md +776 -776
- package/.claude/skills/v3-memory-unification/SKILL.md +173 -173
- package/.claude/skills/v3-performance-optimization/SKILL.md +389 -389
- package/.claude/skills/v3-security-overhaul/SKILL.md +81 -81
- package/.claude/skills/v3-swarm-coordination/SKILL.md +339 -339
- package/.claude/skills/verification-quality/SKILL.md +691 -691
- package/.claude/skills/worker-benchmarks/SKILL.md +129 -129
- package/.claude/skills/worker-integration/SKILL.md +147 -147
- package/.claude/statusline-command.sh +176 -176
- package/.claude/statusline.mjs +109 -109
- package/.claude/statusline.sh +431 -431
- package/.claude/workflows/full-system-test.js +65 -65
- package/.claude/workflows/intelligence-system-hardening.js +120 -120
- package/.claude/workflows/plugin-contract-audit.js +91 -91
- package/.claude-plugin/README.md +720 -720
- package/.claude-plugin/docs/INSTALLATION.md +261 -261
- package/.claude-plugin/docs/PLUGIN_SUMMARY.md +361 -361
- package/.claude-plugin/docs/QUICKSTART.md +361 -361
- package/.claude-plugin/docs/STRUCTURE.md +128 -128
- package/.claude-plugin/hooks/hooks.json +79 -77
- package/.claude-plugin/marketplace.json +185 -185
- package/.claude-plugin/plugin.json +71 -71
- package/.claude-plugin/scripts/install.sh +234 -234
- package/.claude-plugin/scripts/ruflo-hook.cjs +166 -166
- package/.claude-plugin/scripts/ruflo-hook.sh +52 -52
- package/.claude-plugin/scripts/uninstall.sh +36 -36
- package/.claude-plugin/scripts/verify.sh +108 -108
- package/LICENSE +21 -21
- package/README.md +419 -419
- package/bin/cli.js +11 -11
- package/bin/npx-repair.js +7 -7
- package/bin/npx-safe-launch.js +9 -9
- package/package.json +192 -186
- package/v3/@claude-flow/cli/README.md +419 -419
- package/v3/@claude-flow/cli/bin/cli.js +314 -314
- package/v3/@claude-flow/cli/bin/mcp-server.js +224 -224
- package/v3/@claude-flow/cli/bin/preinstall.cjs +2 -2
- package/v3/@claude-flow/cli/catalog-manifest.json +2 -2
- package/v3/@claude-flow/cli/dist/src/autopilot-state.js +24 -7
- package/v3/@claude-flow/cli/dist/src/benchmarks/gaia-critic.js +24 -24
- package/v3/@claude-flow/cli/dist/src/business-pods/bbs-budget-tracker.js +53 -53
- package/v3/@claude-flow/cli/dist/src/commands/completions.js +409 -409
- package/v3/@claude-flow/cli/dist/src/commands/daemon.js +44 -44
- package/v3/@claude-flow/cli/dist/src/commands/doctor.js +267 -20
- package/v3/@claude-flow/cli/dist/src/commands/embeddings.js +26 -26
- package/v3/@claude-flow/cli/dist/src/commands/hive-mind.js +97 -97
- package/v3/@claude-flow/cli/dist/src/commands/hooks.js +74 -11
- package/v3/@claude-flow/cli/dist/src/commands/init.js +202 -34
- package/v3/@claude-flow/cli/dist/src/commands/memory.js +12 -1
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/backup.js +23 -23
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/benchmark.js +31 -31
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/init.js +115 -115
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/migrate.js +99 -99
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/optimize.js +51 -51
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
- package/v3/@claude-flow/cli/dist/src/commands/ruvector/status.js +38 -38
- package/v3/@claude-flow/cli/dist/src/config/proven-config.js +2 -2
- package/v3/@claude-flow/cli/dist/src/funnel/disclosure.js +13 -2
- package/v3/@claude-flow/cli/dist/src/funnel/message-transport.d.ts +11 -4
- package/v3/@claude-flow/cli/dist/src/funnel/message-transport.js +11 -4
- package/v3/@claude-flow/cli/dist/src/funnel/messages.d.ts +12 -10
- package/v3/@claude-flow/cli/dist/src/funnel/messages.js +83 -11
- package/v3/@claude-flow/cli/dist/src/init/claudemd-generator.js +231 -231
- package/v3/@claude-flow/cli/dist/src/init/executor.js +453 -453
- package/v3/@claude-flow/cli/dist/src/init/helper-signing.js +2 -2
- package/v3/@claude-flow/cli/dist/src/init/helpers-generator.js +751 -751
- package/v3/@claude-flow/cli/dist/src/init/statusline-generator.js +24 -24
- package/v3/@claude-flow/cli/dist/src/mcp-tools/agentdb-tools.js +15 -15
- package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-intent-tools.js +19 -19
- package/v3/@claude-flow/cli/dist/src/mcp-tools/browser-tools.js +8 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +21 -0
- package/v3/@claude-flow/cli/dist/src/mcp-tools/memory-tools.js +4 -3
- package/v3/@claude-flow/cli/dist/src/memory/graph-edge-writer.d.ts +9 -0
- package/v3/@claude-flow/cli/dist/src/memory/graph-edge-writer.js +35 -22
- package/v3/@claude-flow/cli/dist/src/memory/memory-bridge.js +189 -93
- package/v3/@claude-flow/cli/dist/src/memory/memory-initializer.js +479 -407
- package/v3/@claude-flow/cli/dist/src/memory/rabitq-index.js +5 -5
- package/v3/@claude-flow/cli/dist/src/parser.js +25 -9
- package/v3/@claude-flow/cli/dist/src/proxy/verify.js +2 -2
- package/v3/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/v3/@claude-flow/cli/dist/src/services/distill-tuning.js +7 -7
- package/v3/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/v3/@claude-flow/cli/dist/src/services/memory-distillation.js +4 -4
- package/v3/@claude-flow/cli/dist/src/services/worker-daemon.js +7 -4
- package/v3/@claude-flow/cli/dist/src/transfer/deploy-seraphine.js +23 -23
- package/v3/@claude-flow/cli/package.json +137 -135
- package/v3/@claude-flow/guidance/README.md +1195 -1195
- package/v3/@claude-flow/guidance/package.json +198 -198
- package/v3/@claude-flow/shared/README.md +323 -323
- package/v3/@claude-flow/shared/dist/events/event-store.js +31 -31
- package/v3/@claude-flow/shared/dist/hooks/safety/git-commit.js +3 -3
- package/v3/@claude-flow/shared/package.json +43 -43
- package/v3/README.md +493 -493
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* @claude-flow/cli - MCP Server Entry Point
|
|
4
|
-
*
|
|
5
|
-
* Direct stdio MCP server for Claude Code integration.
|
|
6
|
-
* This entry point handles stdin/stdout directly for MCP protocol
|
|
7
|
-
* without any CLI formatting output that would corrupt the protocol.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { randomUUID } from 'crypto';
|
|
11
|
-
|
|
12
|
-
// Suppress the SPECIFIC cosmetic "[AgentDB Patch] Controller index not found"
|
|
13
|
-
// noise. Tight match (both prefix AND "Controller index not found") so other
|
|
14
|
-
// [AgentDB Patch] warnings about real issues still flow through. Also patch
|
|
15
|
-
// console.log because the underlying call site uses it. See bin/cli.js for
|
|
16
|
-
// the same rationale.
|
|
17
|
-
const _origWarn = console.warn;
|
|
18
|
-
const _origLog = console.log;
|
|
19
|
-
const _isCosmeticAgentdbPatchNoise = (msg) =>
|
|
20
|
-
msg.includes('[AgentDB Patch]') && msg.includes('Controller index not found');
|
|
21
|
-
console.warn = (...args) => {
|
|
22
|
-
if (_isCosmeticAgentdbPatchNoise(String(args[0] ?? ''))) return;
|
|
23
|
-
_origWarn.apply(console, args);
|
|
24
|
-
};
|
|
25
|
-
console.log = (...args) => {
|
|
26
|
-
if (_isCosmeticAgentdbPatchNoise(String(args[0] ?? ''))) return;
|
|
27
|
-
_origLog.apply(console, args);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
import { listMCPTools, callMCPTool, hasTool } from '../dist/src/mcp-client.js';
|
|
31
|
-
|
|
32
|
-
const VERSION = '3.0.0';
|
|
33
|
-
const sessionId = `mcp-${Date.now()}-${randomUUID().slice(0, 8)}`;
|
|
34
|
-
|
|
35
|
-
// Log to stderr (doesn't corrupt stdout for MCP protocol)
|
|
36
|
-
console.error(
|
|
37
|
-
`[${new Date().toISOString()}] INFO [claude-flow-mcp] (${sessionId}) Starting in stdio mode`
|
|
38
|
-
);
|
|
39
|
-
console.error(JSON.stringify({
|
|
40
|
-
arch: process.arch,
|
|
41
|
-
mode: 'mcp-stdio',
|
|
42
|
-
nodeVersion: process.version,
|
|
43
|
-
pid: process.pid,
|
|
44
|
-
platform: process.platform,
|
|
45
|
-
protocol: 'stdio',
|
|
46
|
-
sessionId,
|
|
47
|
-
version: VERSION,
|
|
48
|
-
}));
|
|
49
|
-
|
|
50
|
-
// Handle stdin messages
|
|
51
|
-
// Audit-flagged DoS protection (audit_1776483149979): cap stdin buffer
|
|
52
|
-
// to 10MB. See bin/cli.js for the same protection on the auto-detect path.
|
|
53
|
-
const MCP_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
|
|
54
|
-
let buffer = '';
|
|
55
|
-
|
|
56
|
-
process.stdin.setEncoding('utf8');
|
|
57
|
-
process.stdin.on('data', async (chunk) => {
|
|
58
|
-
buffer += chunk;
|
|
59
|
-
|
|
60
|
-
if (buffer.length > MCP_MAX_BUFFER_BYTES) {
|
|
61
|
-
console.log(JSON.stringify({
|
|
62
|
-
jsonrpc: '2.0',
|
|
63
|
-
id: null,
|
|
64
|
-
error: {
|
|
65
|
-
code: -32700,
|
|
66
|
-
message: `Buffered stdin exceeds ${MCP_MAX_BUFFER_BYTES} bytes without newline; resetting`,
|
|
67
|
-
},
|
|
68
|
-
}));
|
|
69
|
-
buffer = '';
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// Process complete JSON messages (newline-delimited)
|
|
74
|
-
let lines = buffer.split('\n');
|
|
75
|
-
buffer = lines.pop() || ''; // Keep incomplete line in buffer
|
|
76
|
-
|
|
77
|
-
for (const line of lines) {
|
|
78
|
-
if (line.trim()) {
|
|
79
|
-
try {
|
|
80
|
-
const message = JSON.parse(line);
|
|
81
|
-
const response = await handleMessage(message);
|
|
82
|
-
if (response) {
|
|
83
|
-
console.log(JSON.stringify(response));
|
|
84
|
-
}
|
|
85
|
-
} catch (error) {
|
|
86
|
-
console.error(
|
|
87
|
-
`[${new Date().toISOString()}] ERROR [claude-flow-mcp] Failed to parse:`,
|
|
88
|
-
error instanceof Error ? error.message : String(error)
|
|
89
|
-
);
|
|
90
|
-
// Send parse error response
|
|
91
|
-
console.log(JSON.stringify({
|
|
92
|
-
jsonrpc: '2.0',
|
|
93
|
-
id: null,
|
|
94
|
-
error: { code: -32700, message: 'Parse error' },
|
|
95
|
-
}));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
process.stdin.on('end', () => {
|
|
102
|
-
console.error(
|
|
103
|
-
`[${new Date().toISOString()}] INFO [claude-flow-mcp] (${sessionId}) stdin closed, shutting down...`
|
|
104
|
-
);
|
|
105
|
-
process.exit(0);
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
// Handle process termination
|
|
109
|
-
process.on('SIGINT', () => {
|
|
110
|
-
console.error(`[${new Date().toISOString()}] INFO [claude-flow-mcp] Received SIGINT`);
|
|
111
|
-
process.exit(0);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
process.on('SIGTERM', () => {
|
|
115
|
-
console.error(`[${new Date().toISOString()}] INFO [claude-flow-mcp] Received SIGTERM`);
|
|
116
|
-
process.exit(0);
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Handle MCP message
|
|
121
|
-
*/
|
|
122
|
-
async function handleMessage(message) {
|
|
123
|
-
if (!message.method) {
|
|
124
|
-
return {
|
|
125
|
-
jsonrpc: '2.0',
|
|
126
|
-
id: message.id,
|
|
127
|
-
error: { code: -32600, message: 'Invalid Request: missing method' },
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
const params = message.params || {};
|
|
132
|
-
|
|
133
|
-
try {
|
|
134
|
-
switch (message.method) {
|
|
135
|
-
case 'initialize':
|
|
136
|
-
return {
|
|
137
|
-
jsonrpc: '2.0',
|
|
138
|
-
id: message.id,
|
|
139
|
-
result: {
|
|
140
|
-
protocolVersion: '2024-11-05',
|
|
141
|
-
serverInfo: { name: 'ruflo', version: VERSION },
|
|
142
|
-
capabilities: {
|
|
143
|
-
tools: { listChanged: true },
|
|
144
|
-
resources: { subscribe: true, listChanged: true },
|
|
145
|
-
},
|
|
146
|
-
},
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
case 'tools/list': {
|
|
150
|
-
const tools = listMCPTools();
|
|
151
|
-
return {
|
|
152
|
-
jsonrpc: '2.0',
|
|
153
|
-
id: message.id,
|
|
154
|
-
result: {
|
|
155
|
-
tools: tools.map(tool => ({
|
|
156
|
-
name: tool.name,
|
|
157
|
-
description: tool.description,
|
|
158
|
-
inputSchema: tool.inputSchema,
|
|
159
|
-
})),
|
|
160
|
-
},
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
case 'tools/call': {
|
|
165
|
-
const toolName = params.name;
|
|
166
|
-
const toolParams = params.arguments || {};
|
|
167
|
-
|
|
168
|
-
if (!hasTool(toolName)) {
|
|
169
|
-
return {
|
|
170
|
-
jsonrpc: '2.0',
|
|
171
|
-
id: message.id,
|
|
172
|
-
error: { code: -32601, message: `Tool not found: ${toolName}` },
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
try {
|
|
177
|
-
const result = await callMCPTool(toolName, toolParams, { sessionId });
|
|
178
|
-
return {
|
|
179
|
-
jsonrpc: '2.0',
|
|
180
|
-
id: message.id,
|
|
181
|
-
result: { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] },
|
|
182
|
-
};
|
|
183
|
-
} catch (error) {
|
|
184
|
-
return {
|
|
185
|
-
jsonrpc: '2.0',
|
|
186
|
-
id: message.id,
|
|
187
|
-
error: {
|
|
188
|
-
code: -32603,
|
|
189
|
-
message: error instanceof Error ? error.message : 'Tool execution failed',
|
|
190
|
-
},
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
case 'notifications/initialized':
|
|
196
|
-
console.error(`[${new Date().toISOString()}] INFO [claude-flow-mcp] Client initialized`);
|
|
197
|
-
return null; // No response for notifications
|
|
198
|
-
|
|
199
|
-
case 'ping':
|
|
200
|
-
return {
|
|
201
|
-
jsonrpc: '2.0',
|
|
202
|
-
id: message.id,
|
|
203
|
-
result: {},
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
default:
|
|
207
|
-
return {
|
|
208
|
-
jsonrpc: '2.0',
|
|
209
|
-
id: message.id,
|
|
210
|
-
error: { code: -32601, message: `Method not found: ${message.method}` },
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
} catch (error) {
|
|
214
|
-
console.error(`[${new Date().toISOString()}] ERROR [claude-flow-mcp] ${message.method}:`, error);
|
|
215
|
-
return {
|
|
216
|
-
jsonrpc: '2.0',
|
|
217
|
-
id: message.id,
|
|
218
|
-
error: {
|
|
219
|
-
code: -32603,
|
|
220
|
-
message: error instanceof Error ? error.message : 'Internal error',
|
|
221
|
-
},
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
}
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @claude-flow/cli - MCP Server Entry Point
|
|
4
|
+
*
|
|
5
|
+
* Direct stdio MCP server for Claude Code integration.
|
|
6
|
+
* This entry point handles stdin/stdout directly for MCP protocol
|
|
7
|
+
* without any CLI formatting output that would corrupt the protocol.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { randomUUID } from 'crypto';
|
|
11
|
+
|
|
12
|
+
// Suppress the SPECIFIC cosmetic "[AgentDB Patch] Controller index not found"
|
|
13
|
+
// noise. Tight match (both prefix AND "Controller index not found") so other
|
|
14
|
+
// [AgentDB Patch] warnings about real issues still flow through. Also patch
|
|
15
|
+
// console.log because the underlying call site uses it. See bin/cli.js for
|
|
16
|
+
// the same rationale.
|
|
17
|
+
const _origWarn = console.warn;
|
|
18
|
+
const _origLog = console.log;
|
|
19
|
+
const _isCosmeticAgentdbPatchNoise = (msg) =>
|
|
20
|
+
msg.includes('[AgentDB Patch]') && msg.includes('Controller index not found');
|
|
21
|
+
console.warn = (...args) => {
|
|
22
|
+
if (_isCosmeticAgentdbPatchNoise(String(args[0] ?? ''))) return;
|
|
23
|
+
_origWarn.apply(console, args);
|
|
24
|
+
};
|
|
25
|
+
console.log = (...args) => {
|
|
26
|
+
if (_isCosmeticAgentdbPatchNoise(String(args[0] ?? ''))) return;
|
|
27
|
+
_origLog.apply(console, args);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
import { listMCPTools, callMCPTool, hasTool } from '../dist/src/mcp-client.js';
|
|
31
|
+
|
|
32
|
+
const VERSION = '3.0.0';
|
|
33
|
+
const sessionId = `mcp-${Date.now()}-${randomUUID().slice(0, 8)}`;
|
|
34
|
+
|
|
35
|
+
// Log to stderr (doesn't corrupt stdout for MCP protocol)
|
|
36
|
+
console.error(
|
|
37
|
+
`[${new Date().toISOString()}] INFO [claude-flow-mcp] (${sessionId}) Starting in stdio mode`
|
|
38
|
+
);
|
|
39
|
+
console.error(JSON.stringify({
|
|
40
|
+
arch: process.arch,
|
|
41
|
+
mode: 'mcp-stdio',
|
|
42
|
+
nodeVersion: process.version,
|
|
43
|
+
pid: process.pid,
|
|
44
|
+
platform: process.platform,
|
|
45
|
+
protocol: 'stdio',
|
|
46
|
+
sessionId,
|
|
47
|
+
version: VERSION,
|
|
48
|
+
}));
|
|
49
|
+
|
|
50
|
+
// Handle stdin messages
|
|
51
|
+
// Audit-flagged DoS protection (audit_1776483149979): cap stdin buffer
|
|
52
|
+
// to 10MB. See bin/cli.js for the same protection on the auto-detect path.
|
|
53
|
+
const MCP_MAX_BUFFER_BYTES = 10 * 1024 * 1024;
|
|
54
|
+
let buffer = '';
|
|
55
|
+
|
|
56
|
+
process.stdin.setEncoding('utf8');
|
|
57
|
+
process.stdin.on('data', async (chunk) => {
|
|
58
|
+
buffer += chunk;
|
|
59
|
+
|
|
60
|
+
if (buffer.length > MCP_MAX_BUFFER_BYTES) {
|
|
61
|
+
console.log(JSON.stringify({
|
|
62
|
+
jsonrpc: '2.0',
|
|
63
|
+
id: null,
|
|
64
|
+
error: {
|
|
65
|
+
code: -32700,
|
|
66
|
+
message: `Buffered stdin exceeds ${MCP_MAX_BUFFER_BYTES} bytes without newline; resetting`,
|
|
67
|
+
},
|
|
68
|
+
}));
|
|
69
|
+
buffer = '';
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Process complete JSON messages (newline-delimited)
|
|
74
|
+
let lines = buffer.split('\n');
|
|
75
|
+
buffer = lines.pop() || ''; // Keep incomplete line in buffer
|
|
76
|
+
|
|
77
|
+
for (const line of lines) {
|
|
78
|
+
if (line.trim()) {
|
|
79
|
+
try {
|
|
80
|
+
const message = JSON.parse(line);
|
|
81
|
+
const response = await handleMessage(message);
|
|
82
|
+
if (response) {
|
|
83
|
+
console.log(JSON.stringify(response));
|
|
84
|
+
}
|
|
85
|
+
} catch (error) {
|
|
86
|
+
console.error(
|
|
87
|
+
`[${new Date().toISOString()}] ERROR [claude-flow-mcp] Failed to parse:`,
|
|
88
|
+
error instanceof Error ? error.message : String(error)
|
|
89
|
+
);
|
|
90
|
+
// Send parse error response
|
|
91
|
+
console.log(JSON.stringify({
|
|
92
|
+
jsonrpc: '2.0',
|
|
93
|
+
id: null,
|
|
94
|
+
error: { code: -32700, message: 'Parse error' },
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
process.stdin.on('end', () => {
|
|
102
|
+
console.error(
|
|
103
|
+
`[${new Date().toISOString()}] INFO [claude-flow-mcp] (${sessionId}) stdin closed, shutting down...`
|
|
104
|
+
);
|
|
105
|
+
process.exit(0);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// Handle process termination
|
|
109
|
+
process.on('SIGINT', () => {
|
|
110
|
+
console.error(`[${new Date().toISOString()}] INFO [claude-flow-mcp] Received SIGINT`);
|
|
111
|
+
process.exit(0);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
process.on('SIGTERM', () => {
|
|
115
|
+
console.error(`[${new Date().toISOString()}] INFO [claude-flow-mcp] Received SIGTERM`);
|
|
116
|
+
process.exit(0);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Handle MCP message
|
|
121
|
+
*/
|
|
122
|
+
async function handleMessage(message) {
|
|
123
|
+
if (!message.method) {
|
|
124
|
+
return {
|
|
125
|
+
jsonrpc: '2.0',
|
|
126
|
+
id: message.id,
|
|
127
|
+
error: { code: -32600, message: 'Invalid Request: missing method' },
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const params = message.params || {};
|
|
132
|
+
|
|
133
|
+
try {
|
|
134
|
+
switch (message.method) {
|
|
135
|
+
case 'initialize':
|
|
136
|
+
return {
|
|
137
|
+
jsonrpc: '2.0',
|
|
138
|
+
id: message.id,
|
|
139
|
+
result: {
|
|
140
|
+
protocolVersion: '2024-11-05',
|
|
141
|
+
serverInfo: { name: 'ruflo', version: VERSION },
|
|
142
|
+
capabilities: {
|
|
143
|
+
tools: { listChanged: true },
|
|
144
|
+
resources: { subscribe: true, listChanged: true },
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
case 'tools/list': {
|
|
150
|
+
const tools = listMCPTools();
|
|
151
|
+
return {
|
|
152
|
+
jsonrpc: '2.0',
|
|
153
|
+
id: message.id,
|
|
154
|
+
result: {
|
|
155
|
+
tools: tools.map(tool => ({
|
|
156
|
+
name: tool.name,
|
|
157
|
+
description: tool.description,
|
|
158
|
+
inputSchema: tool.inputSchema,
|
|
159
|
+
})),
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
case 'tools/call': {
|
|
165
|
+
const toolName = params.name;
|
|
166
|
+
const toolParams = params.arguments || {};
|
|
167
|
+
|
|
168
|
+
if (!hasTool(toolName)) {
|
|
169
|
+
return {
|
|
170
|
+
jsonrpc: '2.0',
|
|
171
|
+
id: message.id,
|
|
172
|
+
error: { code: -32601, message: `Tool not found: ${toolName}` },
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
try {
|
|
177
|
+
const result = await callMCPTool(toolName, toolParams, { sessionId });
|
|
178
|
+
return {
|
|
179
|
+
jsonrpc: '2.0',
|
|
180
|
+
id: message.id,
|
|
181
|
+
result: { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] },
|
|
182
|
+
};
|
|
183
|
+
} catch (error) {
|
|
184
|
+
return {
|
|
185
|
+
jsonrpc: '2.0',
|
|
186
|
+
id: message.id,
|
|
187
|
+
error: {
|
|
188
|
+
code: -32603,
|
|
189
|
+
message: error instanceof Error ? error.message : 'Tool execution failed',
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
case 'notifications/initialized':
|
|
196
|
+
console.error(`[${new Date().toISOString()}] INFO [claude-flow-mcp] Client initialized`);
|
|
197
|
+
return null; // No response for notifications
|
|
198
|
+
|
|
199
|
+
case 'ping':
|
|
200
|
+
return {
|
|
201
|
+
jsonrpc: '2.0',
|
|
202
|
+
id: message.id,
|
|
203
|
+
result: {},
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
default:
|
|
207
|
+
return {
|
|
208
|
+
jsonrpc: '2.0',
|
|
209
|
+
id: message.id,
|
|
210
|
+
error: { code: -32601, message: `Method not found: ${message.method}` },
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
} catch (error) {
|
|
214
|
+
console.error(`[${new Date().toISOString()}] ERROR [claude-flow-mcp] ${message.method}:`, error);
|
|
215
|
+
return {
|
|
216
|
+
jsonrpc: '2.0',
|
|
217
|
+
id: message.id,
|
|
218
|
+
error: {
|
|
219
|
+
code: -32603,
|
|
220
|
+
message: error instanceof Error ? error.message : 'Internal error',
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// Preinstall hook — no-op (cache repair removed in 3.1.0-alpha.53)
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Preinstall hook — no-op (cache repair removed in 3.1.0-alpha.53)
|
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
* Security: Addresses prototype pollution, NaN bypass, input validation
|
|
9
9
|
*/
|
|
10
10
|
import { randomUUID } from 'node:crypto';
|
|
11
|
-
import { existsSync, readFileSync,
|
|
11
|
+
import { existsSync, readFileSync, mkdirSync, readdirSync } from 'node:fs';
|
|
12
12
|
import { resolve, join } from 'node:path';
|
|
13
13
|
import { homedir } from 'node:os';
|
|
14
|
+
import { writeFileAtomic } from './fs-secure.js';
|
|
14
15
|
// ── Constants ─────────────────────────────────────────────────
|
|
15
16
|
export const STATE_DIR = '.claude-flow/data';
|
|
16
17
|
export const STATE_FILE = `${STATE_DIR}/autopilot-state.json`;
|
|
@@ -119,9 +120,18 @@ export function saveState(state) {
|
|
|
119
120
|
if (state.history.length > MAX_HISTORY_ENTRIES) {
|
|
120
121
|
state.history = state.history.slice(-MAX_HISTORY_ENTRIES);
|
|
121
122
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
// ruvnet/ruflo#2782: use writeFileAtomic — its temp file is uniquified with
|
|
124
|
+
// pid + timestamp + random suffix, so two concurrent in-process saveState()
|
|
125
|
+
// calls can no longer collide on a shared `.tmp` basename and race one
|
|
126
|
+
// another's renameSync into ENOENT. Related to but distinct from #1637.
|
|
127
|
+
try {
|
|
128
|
+
writeFileAtomic(resolve(STATE_FILE), Buffer.from(JSON.stringify(state, null, 2)));
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// A losing concurrent writer may briefly see ENOENT/EEXIST — the winning
|
|
132
|
+
// writer's payload is on disk, so the state is not lost. Swallow rather
|
|
133
|
+
// than crash the caller (daemon tick, MCP handler).
|
|
134
|
+
}
|
|
125
135
|
}
|
|
126
136
|
export function appendLog(entry) {
|
|
127
137
|
const filePath = resolve(LOG_FILE);
|
|
@@ -142,9 +152,16 @@ export function appendLog(entry) {
|
|
|
142
152
|
log.push(entry);
|
|
143
153
|
if (log.length > MAX_LOG_ENTRIES)
|
|
144
154
|
log = log.slice(-MAX_LOG_ENTRIES);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
renameSync
|
|
155
|
+
// ruvnet/ruflo#2782: same shared `.tmp`-basename race as saveState() above —
|
|
156
|
+
// concurrent appendLog() calls would collide their sentinel temp files and
|
|
157
|
+
// renameSync into ENOENT. writeFileAtomic uses a uniquified temp so callers
|
|
158
|
+
// cannot step on each other.
|
|
159
|
+
try {
|
|
160
|
+
writeFileAtomic(filePath, Buffer.from(JSON.stringify(log, null, 2)));
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
// Log write is best-effort — don't crash the caller on a losing race.
|
|
164
|
+
}
|
|
148
165
|
}
|
|
149
166
|
export function loadLog() {
|
|
150
167
|
const filePath = resolve(LOG_FILE);
|
|
@@ -70,25 +70,25 @@ function resolveApiKey(override) {
|
|
|
70
70
|
* Instructs Sonnet to act as an adversarial reviewer and respond in JSON.
|
|
71
71
|
*/
|
|
72
72
|
function buildCriticSystemPrompt() {
|
|
73
|
-
return `You are an adversarial reviewer of agent answers on the GAIA benchmark. \
|
|
74
|
-
Your job is to find flaws in candidate answers before they are submitted.
|
|
75
|
-
|
|
76
|
-
Given a question, a candidate answer, and a summary of the agent's reasoning \
|
|
77
|
-
trajectory, you must decide whether the candidate answer is correct.
|
|
78
|
-
|
|
79
|
-
Evaluation criteria:
|
|
80
|
-
1. Does the answer directly address what the question asks?
|
|
81
|
-
2. Is there evidence in the trajectory that supports the answer?
|
|
82
|
-
3. Are there obvious flaws (wrong unit, wrong format, missed constraint, \
|
|
83
|
-
fabricated source, off-by-one error, truncation)?
|
|
84
|
-
4. For numeric answers: is the magnitude and unit plausible?
|
|
85
|
-
5. For list answers: are all required items present and correctly ordered?
|
|
86
|
-
|
|
87
|
-
Respond ONLY with a JSON object — no markdown, no prose outside the JSON:
|
|
88
|
-
{"verdict":"pass"|"fail"|"uncertain","reasoning":"<1-3 sentences>","suggestedRevision":"<corrected answer or empty string>"}
|
|
89
|
-
|
|
90
|
-
Use "uncertain" only when you genuinely cannot determine correctness from the \
|
|
91
|
-
available information. Never use "uncertain" to avoid making a decision when \
|
|
73
|
+
return `You are an adversarial reviewer of agent answers on the GAIA benchmark. \
|
|
74
|
+
Your job is to find flaws in candidate answers before they are submitted.
|
|
75
|
+
|
|
76
|
+
Given a question, a candidate answer, and a summary of the agent's reasoning \
|
|
77
|
+
trajectory, you must decide whether the candidate answer is correct.
|
|
78
|
+
|
|
79
|
+
Evaluation criteria:
|
|
80
|
+
1. Does the answer directly address what the question asks?
|
|
81
|
+
2. Is there evidence in the trajectory that supports the answer?
|
|
82
|
+
3. Are there obvious flaws (wrong unit, wrong format, missed constraint, \
|
|
83
|
+
fabricated source, off-by-one error, truncation)?
|
|
84
|
+
4. For numeric answers: is the magnitude and unit plausible?
|
|
85
|
+
5. For list answers: are all required items present and correctly ordered?
|
|
86
|
+
|
|
87
|
+
Respond ONLY with a JSON object — no markdown, no prose outside the JSON:
|
|
88
|
+
{"verdict":"pass"|"fail"|"uncertain","reasoning":"<1-3 sentences>","suggestedRevision":"<corrected answer or empty string>"}
|
|
89
|
+
|
|
90
|
+
Use "uncertain" only when you genuinely cannot determine correctness from the \
|
|
91
|
+
available information. Never use "uncertain" to avoid making a decision when \
|
|
92
92
|
evidence is available.`;
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
@@ -108,11 +108,11 @@ function buildCriticUserMessage(question, candidateAnswer, trajectory) {
|
|
|
108
108
|
const result = s.result ? ` → ${s.result.slice(0, 200)}` : '';
|
|
109
109
|
return `${label}${result}`;
|
|
110
110
|
}).join('\n');
|
|
111
|
-
return `QUESTION: ${question.question}
|
|
112
|
-
|
|
113
|
-
CANDIDATE ANSWER: ${candidateAnswer}
|
|
114
|
-
|
|
115
|
-
AGENT TRAJECTORY (${trajectory.turns} turns, summarised):
|
|
111
|
+
return `QUESTION: ${question.question}
|
|
112
|
+
|
|
113
|
+
CANDIDATE ANSWER: ${candidateAnswer}
|
|
114
|
+
|
|
115
|
+
AGENT TRAJECTORY (${trajectory.turns} turns, summarised):
|
|
116
116
|
${trajectoryText}`;
|
|
117
117
|
}
|
|
118
118
|
/**
|