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,166 +1,166 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* ruflo-hook.cjs — cross-platform Node.js port of ruflo-hook.sh (#2132)
|
|
4
|
-
*
|
|
5
|
-
* The bash shim (ruflo-hook.sh) works on Mac/Linux but fails on native
|
|
6
|
-
* Windows (exit 126 — "cannot execute binary file"). This .cjs shim
|
|
7
|
-
* provides identical behaviour via Node.js child_process so Windows users
|
|
8
|
-
* get working hooks without WSL or Git Bash.
|
|
9
|
-
*
|
|
10
|
-
* Mac/Linux continue to use ruflo-hook.sh via the plugin hooks.json files
|
|
11
|
-
* (unchanged). On Windows, ruflo init writes a .claude/settings.json that
|
|
12
|
-
* overrides those entries with node-based equivalents pointing here.
|
|
13
|
-
*
|
|
14
|
-
* Behaviour mirrors ruflo-hook.sh:
|
|
15
|
-
* 1. Reads hook JSON payload from stdin.
|
|
16
|
-
* 2. Prefers a locally installed `ruflo` or `claude-flow` binary.
|
|
17
|
-
* 3. Falls back to `npx --prefer-offline ruflo@latest`.
|
|
18
|
-
* 4. Always exits 0 — hook subcommands are best-effort telemetry.
|
|
19
|
-
* 5. Swallows all stderr — nothing should surface to Claude Code.
|
|
20
|
-
*
|
|
21
|
-
* Usage: node ruflo-hook.cjs <hook-subcommand> [args...]
|
|
22
|
-
* e.g. node ruflo-hook.cjs post-edit --file "x.ts" --train-patterns
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
'use strict';
|
|
26
|
-
|
|
27
|
-
const { spawnSync, execSync } = require('child_process');
|
|
28
|
-
const fs = require('fs');
|
|
29
|
-
const path = require('path');
|
|
30
|
-
|
|
31
|
-
/** Exit 0 unconditionally — hooks must never block a turn */
|
|
32
|
-
function done() {
|
|
33
|
-
process.exit(0);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/** Resolve stdin to a JSON object, or null if not parseable */
|
|
37
|
-
function readStdinJson() {
|
|
38
|
-
try {
|
|
39
|
-
let buf = '';
|
|
40
|
-
// Read synchronously — hooks fire synchronously in Claude Code
|
|
41
|
-
const fd = fs.openSync('/dev/stdin', 'r');
|
|
42
|
-
const chunk = Buffer.alloc(64 * 1024);
|
|
43
|
-
let bytesRead;
|
|
44
|
-
while ((bytesRead = fs.readSync(fd, chunk, 0, chunk.length, null)) > 0) {
|
|
45
|
-
buf += chunk.slice(0, bytesRead).toString('utf8');
|
|
46
|
-
}
|
|
47
|
-
fs.closeSync(fd);
|
|
48
|
-
return buf.trim() ? JSON.parse(buf) : null;
|
|
49
|
-
} catch {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/** Read stdin via process.stdin in sync mode (Windows-safe alternative) */
|
|
55
|
-
function readStdinSync() {
|
|
56
|
-
try {
|
|
57
|
-
// On Windows /dev/stdin doesn't exist; use fd 0 directly
|
|
58
|
-
const chunk = Buffer.alloc(64 * 1024);
|
|
59
|
-
let buf = '';
|
|
60
|
-
let bytesRead;
|
|
61
|
-
while (true) {
|
|
62
|
-
try {
|
|
63
|
-
bytesRead = fs.readSync(0 /* STDIN_FILENO */, chunk, 0, chunk.length, null);
|
|
64
|
-
if (bytesRead === 0) break;
|
|
65
|
-
buf += chunk.slice(0, bytesRead).toString('utf8');
|
|
66
|
-
} catch {
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return buf.trim() ? JSON.parse(buf) : null;
|
|
71
|
-
} catch {
|
|
72
|
-
return null;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/** Check if a binary is available on PATH */
|
|
77
|
-
function commandExists(cmd) {
|
|
78
|
-
try {
|
|
79
|
-
const result = execSync(
|
|
80
|
-
process.platform === 'win32' ? `where ${cmd}` : `command -v ${cmd}`,
|
|
81
|
-
{ encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }
|
|
82
|
-
);
|
|
83
|
-
return result.trim().length > 0;
|
|
84
|
-
} catch {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/** Build the argv for the ruflo/claude-flow/npx invocation */
|
|
90
|
-
function buildArgs(subcommand, extraArgs) {
|
|
91
|
-
// The `hooks` word is prepended here, matching ruflo-hook.sh convention.
|
|
92
|
-
return ['hooks', subcommand, ...extraArgs];
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Spawn the CLI with the hook subcommand.
|
|
97
|
-
* Passes the raw stdin payload as the child's stdin so the CLI can read
|
|
98
|
-
* the hook event JSON if needed (same as the bash pipe).
|
|
99
|
-
*
|
|
100
|
-
* Returns true on success (exit 0), false otherwise.
|
|
101
|
-
*/
|
|
102
|
-
function invokeHook(bin, binArgs, hookArgs, stdinData) {
|
|
103
|
-
const args = [...binArgs, ...hookArgs];
|
|
104
|
-
|
|
105
|
-
// On Windows, shell: true is needed to resolve .cmd shims in node_modules
|
|
106
|
-
const useShell = process.platform === 'win32';
|
|
107
|
-
|
|
108
|
-
const result = spawnSync(bin, args, {
|
|
109
|
-
shell: useShell,
|
|
110
|
-
input: stdinData || '',
|
|
111
|
-
encoding: 'utf8',
|
|
112
|
-
stdio: ['pipe', 'ignore', 'ignore'], // swallow all output
|
|
113
|
-
timeout: 30_000,
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
return result.status === 0;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function main() {
|
|
120
|
-
const args = process.argv.slice(2);
|
|
121
|
-
if (args.length === 0) {
|
|
122
|
-
// No subcommand — no-op, same as bash version
|
|
123
|
-
done();
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
const [subcommand, ...rest] = args;
|
|
127
|
-
|
|
128
|
-
// Read stdin (the hook event payload) — best effort
|
|
129
|
-
let stdinData = '';
|
|
130
|
-
try {
|
|
131
|
-
stdinData = fs.readFileSync(0 /* fd 0 = stdin */, 'utf8');
|
|
132
|
-
} catch {
|
|
133
|
-
// stdin may not be available when invoked directly for testing
|
|
134
|
-
stdinData = '';
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const hookArgs = buildArgs(subcommand, rest);
|
|
138
|
-
|
|
139
|
-
// Priority 1: locally installed ruflo binary
|
|
140
|
-
if (commandExists('ruflo')) {
|
|
141
|
-
invokeHook('ruflo', [], hookArgs, stdinData);
|
|
142
|
-
done();
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Priority 2: locally installed claude-flow binary
|
|
146
|
-
if (commandExists('claude-flow')) {
|
|
147
|
-
invokeHook('claude-flow', [], hookArgs, stdinData);
|
|
148
|
-
done();
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// Priority 3: npx --prefer-offline fallback (avoids cold registry resolve).
|
|
152
|
-
//
|
|
153
|
-
// SKIP this when RUFLO_HOOK_SKIP_NPX=1 — used by CI smokes that test
|
|
154
|
-
// the shim's *control flow* without exercising npm install network paths.
|
|
155
|
-
// Without the skip, npx can take 30+s on a cold runner (no warm cache,
|
|
156
|
-
// no offline tarball), exceeding the smoke's 15s timeout and producing
|
|
157
|
-
// a spurious failure even though the shim itself works correctly.
|
|
158
|
-
// The bash version doesn't hit this because it backgrounded the work.
|
|
159
|
-
if (process.env.RUFLO_HOOK_SKIP_NPX !== '1') {
|
|
160
|
-
invokeHook('npx', ['--prefer-offline', '--yes', 'ruflo@latest'], hookArgs, stdinData);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
done();
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
main();
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* ruflo-hook.cjs — cross-platform Node.js port of ruflo-hook.sh (#2132)
|
|
4
|
+
*
|
|
5
|
+
* The bash shim (ruflo-hook.sh) works on Mac/Linux but fails on native
|
|
6
|
+
* Windows (exit 126 — "cannot execute binary file"). This .cjs shim
|
|
7
|
+
* provides identical behaviour via Node.js child_process so Windows users
|
|
8
|
+
* get working hooks without WSL or Git Bash.
|
|
9
|
+
*
|
|
10
|
+
* Mac/Linux continue to use ruflo-hook.sh via the plugin hooks.json files
|
|
11
|
+
* (unchanged). On Windows, ruflo init writes a .claude/settings.json that
|
|
12
|
+
* overrides those entries with node-based equivalents pointing here.
|
|
13
|
+
*
|
|
14
|
+
* Behaviour mirrors ruflo-hook.sh:
|
|
15
|
+
* 1. Reads hook JSON payload from stdin.
|
|
16
|
+
* 2. Prefers a locally installed `ruflo` or `claude-flow` binary.
|
|
17
|
+
* 3. Falls back to `npx --prefer-offline ruflo@latest`.
|
|
18
|
+
* 4. Always exits 0 — hook subcommands are best-effort telemetry.
|
|
19
|
+
* 5. Swallows all stderr — nothing should surface to Claude Code.
|
|
20
|
+
*
|
|
21
|
+
* Usage: node ruflo-hook.cjs <hook-subcommand> [args...]
|
|
22
|
+
* e.g. node ruflo-hook.cjs post-edit --file "x.ts" --train-patterns
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
'use strict';
|
|
26
|
+
|
|
27
|
+
const { spawnSync, execSync } = require('child_process');
|
|
28
|
+
const fs = require('fs');
|
|
29
|
+
const path = require('path');
|
|
30
|
+
|
|
31
|
+
/** Exit 0 unconditionally — hooks must never block a turn */
|
|
32
|
+
function done() {
|
|
33
|
+
process.exit(0);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Resolve stdin to a JSON object, or null if not parseable */
|
|
37
|
+
function readStdinJson() {
|
|
38
|
+
try {
|
|
39
|
+
let buf = '';
|
|
40
|
+
// Read synchronously — hooks fire synchronously in Claude Code
|
|
41
|
+
const fd = fs.openSync('/dev/stdin', 'r');
|
|
42
|
+
const chunk = Buffer.alloc(64 * 1024);
|
|
43
|
+
let bytesRead;
|
|
44
|
+
while ((bytesRead = fs.readSync(fd, chunk, 0, chunk.length, null)) > 0) {
|
|
45
|
+
buf += chunk.slice(0, bytesRead).toString('utf8');
|
|
46
|
+
}
|
|
47
|
+
fs.closeSync(fd);
|
|
48
|
+
return buf.trim() ? JSON.parse(buf) : null;
|
|
49
|
+
} catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Read stdin via process.stdin in sync mode (Windows-safe alternative) */
|
|
55
|
+
function readStdinSync() {
|
|
56
|
+
try {
|
|
57
|
+
// On Windows /dev/stdin doesn't exist; use fd 0 directly
|
|
58
|
+
const chunk = Buffer.alloc(64 * 1024);
|
|
59
|
+
let buf = '';
|
|
60
|
+
let bytesRead;
|
|
61
|
+
while (true) {
|
|
62
|
+
try {
|
|
63
|
+
bytesRead = fs.readSync(0 /* STDIN_FILENO */, chunk, 0, chunk.length, null);
|
|
64
|
+
if (bytesRead === 0) break;
|
|
65
|
+
buf += chunk.slice(0, bytesRead).toString('utf8');
|
|
66
|
+
} catch {
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return buf.trim() ? JSON.parse(buf) : null;
|
|
71
|
+
} catch {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** Check if a binary is available on PATH */
|
|
77
|
+
function commandExists(cmd) {
|
|
78
|
+
try {
|
|
79
|
+
const result = execSync(
|
|
80
|
+
process.platform === 'win32' ? `where ${cmd}` : `command -v ${cmd}`,
|
|
81
|
+
{ encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }
|
|
82
|
+
);
|
|
83
|
+
return result.trim().length > 0;
|
|
84
|
+
} catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Build the argv for the ruflo/claude-flow/npx invocation */
|
|
90
|
+
function buildArgs(subcommand, extraArgs) {
|
|
91
|
+
// The `hooks` word is prepended here, matching ruflo-hook.sh convention.
|
|
92
|
+
return ['hooks', subcommand, ...extraArgs];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Spawn the CLI with the hook subcommand.
|
|
97
|
+
* Passes the raw stdin payload as the child's stdin so the CLI can read
|
|
98
|
+
* the hook event JSON if needed (same as the bash pipe).
|
|
99
|
+
*
|
|
100
|
+
* Returns true on success (exit 0), false otherwise.
|
|
101
|
+
*/
|
|
102
|
+
function invokeHook(bin, binArgs, hookArgs, stdinData) {
|
|
103
|
+
const args = [...binArgs, ...hookArgs];
|
|
104
|
+
|
|
105
|
+
// On Windows, shell: true is needed to resolve .cmd shims in node_modules
|
|
106
|
+
const useShell = process.platform === 'win32';
|
|
107
|
+
|
|
108
|
+
const result = spawnSync(bin, args, {
|
|
109
|
+
shell: useShell,
|
|
110
|
+
input: stdinData || '',
|
|
111
|
+
encoding: 'utf8',
|
|
112
|
+
stdio: ['pipe', 'ignore', 'ignore'], // swallow all output
|
|
113
|
+
timeout: 30_000,
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
return result.status === 0;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function main() {
|
|
120
|
+
const args = process.argv.slice(2);
|
|
121
|
+
if (args.length === 0) {
|
|
122
|
+
// No subcommand — no-op, same as bash version
|
|
123
|
+
done();
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const [subcommand, ...rest] = args;
|
|
127
|
+
|
|
128
|
+
// Read stdin (the hook event payload) — best effort
|
|
129
|
+
let stdinData = '';
|
|
130
|
+
try {
|
|
131
|
+
stdinData = fs.readFileSync(0 /* fd 0 = stdin */, 'utf8');
|
|
132
|
+
} catch {
|
|
133
|
+
// stdin may not be available when invoked directly for testing
|
|
134
|
+
stdinData = '';
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const hookArgs = buildArgs(subcommand, rest);
|
|
138
|
+
|
|
139
|
+
// Priority 1: locally installed ruflo binary
|
|
140
|
+
if (commandExists('ruflo')) {
|
|
141
|
+
invokeHook('ruflo', [], hookArgs, stdinData);
|
|
142
|
+
done();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Priority 2: locally installed claude-flow binary
|
|
146
|
+
if (commandExists('claude-flow')) {
|
|
147
|
+
invokeHook('claude-flow', [], hookArgs, stdinData);
|
|
148
|
+
done();
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Priority 3: npx --prefer-offline fallback (avoids cold registry resolve).
|
|
152
|
+
//
|
|
153
|
+
// SKIP this when RUFLO_HOOK_SKIP_NPX=1 — used by CI smokes that test
|
|
154
|
+
// the shim's *control flow* without exercising npm install network paths.
|
|
155
|
+
// Without the skip, npx can take 30+s on a cold runner (no warm cache,
|
|
156
|
+
// no offline tarball), exceeding the smoke's 15s timeout and producing
|
|
157
|
+
// a spurious failure even though the shim itself works correctly.
|
|
158
|
+
// The bash version doesn't hit this because it backgrounded the work.
|
|
159
|
+
if (process.env.RUFLO_HOOK_SKIP_NPX !== '1') {
|
|
160
|
+
invokeHook('npx', ['--prefer-offline', '--yes', 'ruflo@latest'], hookArgs, stdinData);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
done();
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
main();
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# ruflo-hook.sh — resilient invoker for ruflo CLI hook subcommands (#1921).
|
|
3
|
-
#
|
|
4
|
-
# Hooks fire on EVERY PreToolUse / PostToolUse / Stop. A bare
|
|
5
|
-
# `npx <pkg>@alpha hooks …` re-resolves the @alpha dist-tag and re-installs
|
|
6
|
-
# from cold cache on every fire, and when the install crashes (e.g. an
|
|
7
|
-
# arborist `Invalid Version` on npm 10.8.x) the user sees a hook error in
|
|
8
|
-
# Claude Code after every turn. This shim:
|
|
9
|
-
# 1. prefers an already-installed `ruflo` / `claude-flow` binary (no npx,
|
|
10
|
-
# no install) — the common case for plugin users;
|
|
11
|
-
# 2. falls back to `npx --prefer-offline` so a populated npx cache is
|
|
12
|
-
# reused instead of a fresh registry resolve;
|
|
13
|
-
# 3. ALWAYS exits 0 — hook subcommands are best-effort telemetry/learning;
|
|
14
|
-
# a failure must never surface an error or block a turn.
|
|
15
|
-
#
|
|
16
|
-
# stdin (the hook event JSON) is passed through to the CLI unchanged.
|
|
17
|
-
# Usage: ruflo-hook.sh <hook-subcommand> [args…] (the literal `hooks`
|
|
18
|
-
# word is prepended here, so callers pass e.g. `post-edit -f "$FILE" -s true`).
|
|
19
|
-
|
|
20
|
-
# Swallow all diagnostics — nothing this script prints should reach the host.
|
|
21
|
-
# stdout is silenced too because Cursor (#2613) imports Claude Code hooks under
|
|
22
|
-
# its stricter `preToolUse` contract that requires valid-JSON stdout and
|
|
23
|
-
# fail-closes on any other text. Claude Code doesn't consume this stdout either,
|
|
24
|
-
# so redirecting it is a pure cleanup with no functional cost.
|
|
25
|
-
exec 1>/dev/null 2>/dev/null
|
|
26
|
-
|
|
27
|
-
# Bound every hook process. A partially initialized native embedding pool can
|
|
28
|
-
# otherwise keep a logically completed Stop hook alive indefinitely (#2691).
|
|
29
|
-
run() {
|
|
30
|
-
"$@" &
|
|
31
|
-
child=$!
|
|
32
|
-
(
|
|
33
|
-
sleep 15
|
|
34
|
-
kill -TERM "$child" 2>/dev/null || true
|
|
35
|
-
sleep 1
|
|
36
|
-
kill -KILL "$child" 2>/dev/null || true
|
|
37
|
-
) &
|
|
38
|
-
watchdog=$!
|
|
39
|
-
wait "$child" 2>/dev/null || true
|
|
40
|
-
kill "$watchdog" 2>/dev/null || true
|
|
41
|
-
wait "$watchdog" 2>/dev/null || true
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
if command -v ruflo >/dev/null 2>&1; then
|
|
45
|
-
run ruflo hooks "$@"
|
|
46
|
-
elif command -v claude-flow >/dev/null 2>&1; then
|
|
47
|
-
run claude-flow hooks "$@"
|
|
48
|
-
else
|
|
49
|
-
run npx --prefer-offline --yes ruflo@latest hooks "$@"
|
|
50
|
-
fi
|
|
51
|
-
|
|
52
|
-
exit 0
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# ruflo-hook.sh — resilient invoker for ruflo CLI hook subcommands (#1921).
|
|
3
|
+
#
|
|
4
|
+
# Hooks fire on EVERY PreToolUse / PostToolUse / Stop. A bare
|
|
5
|
+
# `npx <pkg>@alpha hooks …` re-resolves the @alpha dist-tag and re-installs
|
|
6
|
+
# from cold cache on every fire, and when the install crashes (e.g. an
|
|
7
|
+
# arborist `Invalid Version` on npm 10.8.x) the user sees a hook error in
|
|
8
|
+
# Claude Code after every turn. This shim:
|
|
9
|
+
# 1. prefers an already-installed `ruflo` / `claude-flow` binary (no npx,
|
|
10
|
+
# no install) — the common case for plugin users;
|
|
11
|
+
# 2. falls back to `npx --prefer-offline` so a populated npx cache is
|
|
12
|
+
# reused instead of a fresh registry resolve;
|
|
13
|
+
# 3. ALWAYS exits 0 — hook subcommands are best-effort telemetry/learning;
|
|
14
|
+
# a failure must never surface an error or block a turn.
|
|
15
|
+
#
|
|
16
|
+
# stdin (the hook event JSON) is passed through to the CLI unchanged.
|
|
17
|
+
# Usage: ruflo-hook.sh <hook-subcommand> [args…] (the literal `hooks`
|
|
18
|
+
# word is prepended here, so callers pass e.g. `post-edit -f "$FILE" -s true`).
|
|
19
|
+
|
|
20
|
+
# Swallow all diagnostics — nothing this script prints should reach the host.
|
|
21
|
+
# stdout is silenced too because Cursor (#2613) imports Claude Code hooks under
|
|
22
|
+
# its stricter `preToolUse` contract that requires valid-JSON stdout and
|
|
23
|
+
# fail-closes on any other text. Claude Code doesn't consume this stdout either,
|
|
24
|
+
# so redirecting it is a pure cleanup with no functional cost.
|
|
25
|
+
exec 1>/dev/null 2>/dev/null
|
|
26
|
+
|
|
27
|
+
# Bound every hook process. A partially initialized native embedding pool can
|
|
28
|
+
# otherwise keep a logically completed Stop hook alive indefinitely (#2691).
|
|
29
|
+
run() {
|
|
30
|
+
"$@" &
|
|
31
|
+
child=$!
|
|
32
|
+
(
|
|
33
|
+
sleep 15
|
|
34
|
+
kill -TERM "$child" 2>/dev/null || true
|
|
35
|
+
sleep 1
|
|
36
|
+
kill -KILL "$child" 2>/dev/null || true
|
|
37
|
+
) &
|
|
38
|
+
watchdog=$!
|
|
39
|
+
wait "$child" 2>/dev/null || true
|
|
40
|
+
kill "$watchdog" 2>/dev/null || true
|
|
41
|
+
wait "$watchdog" 2>/dev/null || true
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if command -v ruflo >/dev/null 2>&1; then
|
|
45
|
+
run ruflo hooks "$@"
|
|
46
|
+
elif command -v claude-flow >/dev/null 2>&1; then
|
|
47
|
+
run claude-flow hooks "$@"
|
|
48
|
+
else
|
|
49
|
+
run npx --prefer-offline --yes ruflo@latest hooks "$@"
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
exit 0
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Claude Flow Plugin Uninstallation Script
|
|
3
|
-
|
|
4
|
-
set -e
|
|
5
|
-
|
|
6
|
-
RED='\033[0;31m'
|
|
7
|
-
GREEN='\033[0;32m'
|
|
8
|
-
YELLOW='\033[1;33m'
|
|
9
|
-
NC='\033[0m'
|
|
10
|
-
|
|
11
|
-
info() { echo -e "${GREEN}ℹ${NC} $1"; }
|
|
12
|
-
warning() { echo -e "${YELLOW}⚠${NC} $1"; }
|
|
13
|
-
|
|
14
|
-
echo -e "${RED}═══════════════════════════════════════════════════${NC}"
|
|
15
|
-
echo -e "${RED} Claude Flow Plugin Uninstaller${NC}"
|
|
16
|
-
echo -e "${RED}═══════════════════════════════════════════════════${NC}"
|
|
17
|
-
echo ""
|
|
18
|
-
|
|
19
|
-
warning "This will remove Claude Flow commands, agents, and configuration."
|
|
20
|
-
read -p "Continue? (y/n): " CONFIRM
|
|
21
|
-
|
|
22
|
-
if [ "$CONFIRM" != "y" ]; then
|
|
23
|
-
echo "Uninstallation cancelled."
|
|
24
|
-
exit 0
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
info "Removing commands..."
|
|
28
|
-
find ~/.claude/commands -name "*coordination*" -o -name "*sparc*" -o -name "*github*" -o -name "*hive-mind*" 2>/dev/null | xargs rm -f
|
|
29
|
-
|
|
30
|
-
info "Removing agents..."
|
|
31
|
-
find ~/.claude/agents -name "*coordinator*" -o -name "*swarm*" 2>/dev/null | xargs rm -f
|
|
32
|
-
|
|
33
|
-
warning "MCP servers NOT removed from settings.json"
|
|
34
|
-
echo "Please manually remove from ~/.claude/settings.json if desired"
|
|
35
|
-
|
|
36
|
-
echo -e "${GREEN}✓ Uninstallation complete${NC}"
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Claude Flow Plugin Uninstallation Script
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
RED='\033[0;31m'
|
|
7
|
+
GREEN='\033[0;32m'
|
|
8
|
+
YELLOW='\033[1;33m'
|
|
9
|
+
NC='\033[0m'
|
|
10
|
+
|
|
11
|
+
info() { echo -e "${GREEN}ℹ${NC} $1"; }
|
|
12
|
+
warning() { echo -e "${YELLOW}⚠${NC} $1"; }
|
|
13
|
+
|
|
14
|
+
echo -e "${RED}═══════════════════════════════════════════════════${NC}"
|
|
15
|
+
echo -e "${RED} Claude Flow Plugin Uninstaller${NC}"
|
|
16
|
+
echo -e "${RED}═══════════════════════════════════════════════════${NC}"
|
|
17
|
+
echo ""
|
|
18
|
+
|
|
19
|
+
warning "This will remove Claude Flow commands, agents, and configuration."
|
|
20
|
+
read -p "Continue? (y/n): " CONFIRM
|
|
21
|
+
|
|
22
|
+
if [ "$CONFIRM" != "y" ]; then
|
|
23
|
+
echo "Uninstallation cancelled."
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
info "Removing commands..."
|
|
28
|
+
find ~/.claude/commands -name "*coordination*" -o -name "*sparc*" -o -name "*github*" -o -name "*hive-mind*" 2>/dev/null | xargs rm -f
|
|
29
|
+
|
|
30
|
+
info "Removing agents..."
|
|
31
|
+
find ~/.claude/agents -name "*coordinator*" -o -name "*swarm*" 2>/dev/null | xargs rm -f
|
|
32
|
+
|
|
33
|
+
warning "MCP servers NOT removed from settings.json"
|
|
34
|
+
echo "Please manually remove from ~/.claude/settings.json if desired"
|
|
35
|
+
|
|
36
|
+
echo -e "${GREEN}✓ Uninstallation complete${NC}"
|