@claude-flow/cli 3.42.3 → 3.42.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/analysis/analyze-code-quality.md +178 -178
- package/.claude/agents/analysis/code-analyzer.md +209 -209
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +178 -178
- package/.claude/agents/architecture/arch-system-design.md +156 -156
- package/.claude/agents/architecture/system-design/arch-system-design.md +154 -154
- package/.claude/agents/browser/browser-agent.yaml +182 -182
- package/.claude/agents/consensus/byzantine-coordinator.md +62 -62
- package/.claude/agents/consensus/crdt-synchronizer.md +996 -996
- package/.claude/agents/consensus/gossip-coordinator.md +62 -62
- package/.claude/agents/consensus/performance-benchmarker.md +850 -850
- package/.claude/agents/consensus/quorum-manager.md +822 -822
- package/.claude/agents/consensus/raft-manager.md +62 -62
- package/.claude/agents/consensus/security-manager.md +621 -621
- package/.claude/agents/core/planner.md +374 -374
- package/.claude/agents/custom/test-long-runner.md +44 -44
- package/.claude/agents/data/data-ml-model.md +444 -444
- package/.claude/agents/data/ml/data-ml-model.md +192 -192
- package/.claude/agents/development/backend/dev-backend-api.md +141 -141
- package/.claude/agents/development/dev-backend-api.md +344 -344
- package/.claude/agents/devops/ci-cd/ops-cicd-github.md +163 -163
- package/.claude/agents/devops/ops-cicd-github.md +164 -164
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +173 -173
- package/.claude/agents/documentation/docs-api-openapi.md +354 -354
- 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 +377 -377
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +575 -575
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +437 -437
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +604 -604
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +902 -902
- package/.claude/agents/goal/agent.md +815 -815
- package/.claude/agents/optimization/benchmark-suite.md +664 -664
- package/.claude/agents/optimization/load-balancer.md +430 -430
- package/.claude/agents/optimization/performance-monitor.md +671 -671
- package/.claude/agents/optimization/resource-allocator.md +673 -673
- package/.claude/agents/optimization/topology-optimizer.md +807 -807
- package/.claude/agents/payments/agentic-payments.md +126 -126
- package/.claude/agents/sona/sona-learning-optimizer.md +74 -74
- package/.claude/agents/sparc/architecture.md +698 -698
- package/.claude/agents/sparc/pseudocode.md +519 -519
- package/.claude/agents/sparc/refinement.md +801 -801
- package/.claude/agents/sparc/specification.md +477 -477
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +224 -224
- package/.claude/agents/specialized/spec-mobile-react-native.md +226 -226
- 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 +1126 -1126
- package/.claude/agents/swarm/hierarchical-coordinator.md +709 -709
- package/.claude/agents/swarm/mesh-coordinator.md +962 -962
- package/.claude/agents/templates/automation-smart-agent.md +204 -204
- package/.claude/agents/templates/base-template-generator.md +289 -289
- package/.claude/agents/templates/coordinator-swarm-init.md +89 -89
- package/.claude/agents/templates/github-pr-manager.md +176 -176
- package/.claude/agents/templates/implementer-sparc-coder.md +258 -258
- package/.claude/agents/templates/memory-coordinator.md +186 -186
- package/.claude/agents/templates/orchestrator-task.md +138 -138
- package/.claude/agents/templates/performance-analyzer.md +198 -198
- package/.claude/agents/templates/sparc-coordinator.md +513 -513
- package/.claude/agents/testing/production-validator.md +394 -394
- package/.claude/agents/testing/tdd-london-swarm.md +243 -243
- package/.claude/agents/v3/aidefence-guardian.md +282 -282
- package/.claude/agents/v3/claims-authorizer.md +208 -208
- package/.claude/agents/v3/collective-intelligence-coordinator.md +993 -993
- package/.claude/agents/v3/ddd-domain-expert.md +220 -220
- package/.claude/agents/v3/injection-analyst.md +236 -236
- package/.claude/agents/v3/performance-engineer.md +1233 -1233
- package/.claude/agents/v3/pii-detector.md +151 -151
- package/.claude/agents/v3/reasoningbank-learner.md +213 -213
- package/.claude/agents/v3/security-architect-aidefence.md +410 -410
- package/.claude/agents/v3/security-architect.md +867 -867
- package/.claude/agents/v3/swarm-memory-manager.md +157 -157
- package/.claude/agents/v3/v3-integration-architect.md +205 -205
- package/.claude/commands/agents/README.md +50 -50
- package/.claude/commands/agents/agent-capabilities.md +140 -140
- 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 +216 -216
- package/.claude/commands/agents/health.md +139 -139
- package/.claude/commands/agents/list.md +100 -100
- package/.claude/commands/agents/logs.md +130 -130
- package/.claude/commands/agents/metrics.md +122 -122
- package/.claude/commands/agents/pool.md +127 -127
- package/.claude/commands/agents/spawn.md +140 -140
- package/.claude/commands/agents/status.md +115 -115
- package/.claude/commands/agents/stop.md +102 -102
- 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/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 +339 -339
- 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 +484 -484
- package/.claude/commands/github/swarm-pr.md +287 -287
- package/.claude/commands/github/sync-coordinator.md +302 -302
- 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 +87 -87
- 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 +107 -107
- package/.claude/commands/training/neural-train.md +75 -75
- 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/eval/human-relevance-frozen-v1.json +17 -17
- package/.claude/evolve-proof/generation-0.json +211 -211
- package/.claude/evolve-proof/real-generation-0.json +406 -406
- package/.claude/evolve-proof/real-generation-1.json +406 -406
- package/.claude/helpers/README.md +96 -96
- package/.claude/helpers/adr-compliance.sh +186 -186
- 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/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 +6 -6
- package/.claude/helpers/hook-handler.cjs +606 -606
- package/.claude/helpers/intelligence.cjs +1169 -1169
- 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.js +83 -83
- package/.claude/helpers/metrics-db.mjs +503 -503
- package/.claude/helpers/pattern-consolidator.sh +86 -86
- package/.claude/helpers/perf-worker.sh +160 -160
- package/.claude/helpers/post-commit +16 -16
- package/.claude/helpers/pre-commit +26 -26
- package/.claude/helpers/quick-start.sh +19 -19
- package/.claude/helpers/router.js +105 -105
- package/.claude/helpers/security-scanner.sh +127 -127
- package/.claude/helpers/session.js +157 -157
- package/.claude/helpers/setup-mcp.sh +18 -18
- package/.claude/helpers/standard-checkpoint-hooks.sh +189 -189
- package/.claude/helpers/statusline-hook.sh +21 -21
- package/.claude/helpers/statusline.cjs +1290 -1290
- package/.claude/helpers/statusline.js +340 -340
- 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/proven-config.json +41 -41
- package/.claude/proven-config.manifest.json +37 -37
- package/.claude/proven-config.signed.json +41 -41
- package/.claude/settings.json +182 -182
- 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/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/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/pair-programming/SKILL.md +1202 -1202
- 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/README.md +422 -422
- package/bin/cli.js +338 -338
- package/bin/mcp-server.js +224 -224
- package/bin/preinstall.cjs +2 -2
- package/catalog-manifest.json +2 -2
- package/dist/src/benchmarks/gaia-critic.js +24 -24
- package/dist/src/business-pods/bbs-budget-tracker.js +53 -53
- package/dist/src/commands/completions.js +409 -409
- package/dist/src/commands/daemon.js +44 -44
- package/dist/src/commands/doctor.js +4 -4
- package/dist/src/commands/embeddings.js +26 -26
- package/dist/src/commands/hive-mind.js +97 -97
- package/dist/src/commands/hooks.js +9 -9
- package/dist/src/commands/init.js +75 -75
- package/dist/src/commands/ruvector/backup.js +23 -23
- package/dist/src/commands/ruvector/benchmark.js +31 -31
- package/dist/src/commands/ruvector/import.js +14 -14
- package/dist/src/commands/ruvector/init.js +115 -115
- package/dist/src/commands/ruvector/migrate.js +99 -99
- package/dist/src/commands/ruvector/optimize.js +51 -51
- package/dist/src/commands/ruvector/setup.js +624 -624
- package/dist/src/commands/ruvector/status.js +38 -38
- package/dist/src/config/proven-config.js +2 -2
- package/dist/src/init/claudemd-generator.js +273 -273
- package/dist/src/init/executor.js +453 -453
- package/dist/src/init/helper-signing.js +2 -2
- package/dist/src/init/helpers-generator.js +917 -917
- package/dist/src/init/statusline-generator.js +24 -24
- package/dist/src/mcp-tools/agentdb-tools.js +15 -15
- package/dist/src/mcp-tools/browser-intent-tools.js +19 -19
- package/dist/src/mcp-tools/memory-tools.js +6 -4
- package/dist/src/mcp-tools/seraphina-tools.js +4 -4
- package/dist/src/memory/graph-edge-writer.js +22 -22
- package/dist/src/memory/memory-bridge.js +161 -127
- package/dist/src/memory/memory-initializer.js +416 -416
- package/dist/src/memory/rabitq-index.js +5 -5
- package/dist/src/proxy/verify.js +2 -2
- package/dist/src/runtime/headless.js +28 -28
- package/dist/src/services/distill-tuning.js +7 -7
- package/dist/src/services/headless-worker-executor.js +84 -84
- package/dist/src/services/memory-distillation.js +18 -18
- package/dist/src/transfer/deploy-seraphine.js +23 -23
- package/node_modules/@claude-flow/codex/.agents/skills/github-automation/SKILL.md +32 -32
- package/node_modules/@claude-flow/codex/.agents/skills/memory-management/SKILL.md +45 -45
- package/node_modules/@claude-flow/codex/.agents/skills/performance-analysis/SKILL.md +32 -32
- package/node_modules/@claude-flow/codex/.agents/skills/security-audit/SKILL.md +46 -46
- package/node_modules/@claude-flow/codex/.agents/skills/sparc-methodology/SKILL.md +46 -46
- package/node_modules/@claude-flow/codex/.agents/skills/swarm-orchestration/SKILL.md +53 -53
- package/node_modules/@claude-flow/codex/README.md +1044 -1044
- package/node_modules/@claude-flow/codex/dist/cli.js +0 -0
- package/node_modules/@claude-flow/codex/dist/dual-mode/orchestrator.js +13 -13
- package/node_modules/@claude-flow/codex/dist/generators/agents-md.js +664 -664
- package/node_modules/@claude-flow/codex/dist/generators/config-toml.js +455 -455
- package/node_modules/@claude-flow/codex/dist/generators/skill-md.js +45 -45
- package/node_modules/@claude-flow/codex/dist/initializer.js +167 -167
- package/node_modules/@claude-flow/codex/dist/templates/index.js +15 -15
- package/node_modules/@claude-flow/mcp/README.md +429 -429
- package/node_modules/@claude-flow/plugin-agent-federation/README.md +49 -49
- package/node_modules/@claude-flow/plugin-agent-federation/dist/bin.js +0 -0
- package/node_modules/@claude-flow/security/README.md +292 -292
- package/node_modules/@claude-flow/security/dist/credential-generator.js +9 -9
- package/node_modules/@claude-flow/security/dist/oauth/callback-server.js +9 -9
- package/package.json +181 -181
- package/plugins/ruflo-metaharness/.claude-plugin/plugin.json +32 -32
- package/plugins/ruflo-metaharness/README.md +72 -72
- package/plugins/ruflo-metaharness/agents/metaharness-architect.md +58 -58
- package/plugins/ruflo-metaharness/commands/ruflo-metaharness.md +50 -50
- package/plugins/ruflo-metaharness/scripts/_darwin.mjs +210 -210
- package/plugins/ruflo-metaharness/scripts/_harness.mjs +334 -334
- package/plugins/ruflo-metaharness/scripts/_invoke.mjs +230 -230
- package/plugins/ruflo-metaharness/scripts/_redblue.mjs +143 -143
- package/plugins/ruflo-metaharness/scripts/_similarity.mjs +161 -161
- package/plugins/ruflo-metaharness/scripts/_spike-similarity.mjs +223 -223
- package/plugins/ruflo-metaharness/scripts/audit-list.mjs +158 -158
- package/plugins/ruflo-metaharness/scripts/audit-trend.mjs +272 -272
- package/plugins/ruflo-metaharness/scripts/bench-parse-mcp-scan.mjs +146 -146
- package/plugins/ruflo-metaharness/scripts/bench-recordpair-overhead.mjs +186 -186
- package/plugins/ruflo-metaharness/scripts/bench-similarity.mjs +177 -177
- package/plugins/ruflo-metaharness/scripts/bench.mjs +95 -95
- package/plugins/ruflo-metaharness/scripts/drift-from-history.mjs +363 -363
- package/plugins/ruflo-metaharness/scripts/evolve.mjs +404 -404
- package/plugins/ruflo-metaharness/scripts/genome.mjs +105 -105
- package/plugins/ruflo-metaharness/scripts/gepa.mjs +153 -153
- package/plugins/ruflo-metaharness/scripts/learn.mjs +127 -127
- package/plugins/ruflo-metaharness/scripts/mcp-scan.mjs +110 -110
- package/plugins/ruflo-metaharness/scripts/mint.mjs +126 -126
- package/plugins/ruflo-metaharness/scripts/oia-audit.mjs +228 -228
- package/plugins/ruflo-metaharness/scripts/redblue.mjs +286 -286
- package/plugins/ruflo-metaharness/scripts/router-parallel-analyze.mjs +250 -250
- package/plugins/ruflo-metaharness/scripts/score.mjs +92 -92
- package/plugins/ruflo-metaharness/scripts/security-bench.mjs +174 -174
- package/plugins/ruflo-metaharness/scripts/similarity.mjs +158 -158
- package/plugins/ruflo-metaharness/scripts/smoke.sh +2422 -2422
- package/plugins/ruflo-metaharness/scripts/test-graceful-degradation.mjs +165 -165
- package/plugins/ruflo-metaharness/scripts/test-mcp-tools.mjs +498 -498
- package/plugins/ruflo-metaharness/scripts/test-parallel-pipeline.mjs +204 -204
- package/plugins/ruflo-metaharness/scripts/test-pipeline-roundtrip.mjs +586 -586
- package/plugins/ruflo-metaharness/scripts/test-similarity.mjs +372 -372
- package/plugins/ruflo-metaharness/scripts/test-with-openrouter.mjs +229 -229
- package/plugins/ruflo-metaharness/scripts/threat-model.mjs +62 -62
- package/plugins/ruflo-metaharness/skills/harness-bench/SKILL.md +64 -64
- package/plugins/ruflo-metaharness/skills/harness-drift-from-history/SKILL.md +65 -65
- package/plugins/ruflo-metaharness/skills/harness-evolve/SKILL.md +131 -131
- package/plugins/ruflo-metaharness/skills/harness-genome/SKILL.md +57 -57
- package/plugins/ruflo-metaharness/skills/harness-gepa/SKILL.md +65 -65
- package/plugins/ruflo-metaharness/skills/harness-learn/SKILL.md +65 -65
- package/plugins/ruflo-metaharness/skills/harness-mcp-scan/SKILL.md +49 -49
- package/plugins/ruflo-metaharness/skills/harness-mint/SKILL.md +72 -72
- package/plugins/ruflo-metaharness/skills/harness-oia-audit/SKILL.md +79 -79
- package/plugins/ruflo-metaharness/skills/harness-score/SKILL.md +66 -66
- package/plugins/ruflo-metaharness/skills/harness-security-bench/SKILL.md +101 -101
- package/plugins/ruflo-metaharness/skills/harness-similarity/SKILL.md +67 -67
- package/plugins/ruflo-metaharness/skills/harness-threat-model/SKILL.md +41 -41
- package/scripts/postinstall.cjs +153 -153
- package/dist/src/ruvector/diskann-backend.d.ts +0 -78
- package/dist/src/ruvector/diskann-backend.js +0 -310
|
@@ -1,292 +1,292 @@
|
|
|
1
|
-
# @claude-flow/security
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/@claude-flow/security)
|
|
4
|
-
[](https://www.npmjs.com/package/@claude-flow/security)
|
|
5
|
-
[](https://opensource.org/licenses/MIT)
|
|
6
|
-
[](https://www.typescriptlang.org/)
|
|
7
|
-
[](https://github.com/ruvnet/claude-flow)
|
|
8
|
-
|
|
9
|
-
> Comprehensive security module for Claude Flow V3 - CVE fixes, input validation, path security, and secure credential management.
|
|
10
|
-
|
|
11
|
-
## Features
|
|
12
|
-
|
|
13
|
-
- **CVE Remediation** - Fixes for CVE-2 (Weak Password Hashing), CVE-3 (Hardcoded Credentials), HIGH-1 (Command Injection), HIGH-2 (Path Traversal)
|
|
14
|
-
- **Password Hashing** - Secure bcrypt-based password hashing with configurable rounds (12+ recommended)
|
|
15
|
-
- **Credential Generation** - Cryptographically secure credential and API key generation
|
|
16
|
-
- **Safe Command Execution** - Allowlist-based command execution preventing injection attacks
|
|
17
|
-
- **Path Validation** - Protection against path traversal and symlink attacks
|
|
18
|
-
- **Input Validation** - Zod-based schema validation for all input types
|
|
19
|
-
- **Token Generation** - Secure token creation with HMAC signing
|
|
20
|
-
|
|
21
|
-
## Installation
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npm install @claude-flow/security
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Standalone use (without the Ruflo CLI)
|
|
28
|
-
|
|
29
|
-
This is a plain library — every primitive (`PasswordHasher`,
|
|
30
|
-
`PathValidator`, `SafeExecutor`, `InputValidator`, `CredentialGenerator`)
|
|
31
|
-
is independently importable. No CLI, no MCP server, no daemon. The
|
|
32
|
-
primitives close CVE-2 (weak hashing), CVE-3 (default credentials),
|
|
33
|
-
HIGH-1 (command injection), and HIGH-2 (path traversal) — drop them
|
|
34
|
-
into any Node app that needs to validate at a system boundary.
|
|
35
|
-
|
|
36
|
-
### Recipe — Validate input, hash a password, generate an API key
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
// recipe.mjs
|
|
40
|
-
import {
|
|
41
|
-
InputValidator,
|
|
42
|
-
EmailSchema,
|
|
43
|
-
PasswordHasher,
|
|
44
|
-
createCredentialGenerator,
|
|
45
|
-
} from '@claude-flow/security';
|
|
46
|
-
|
|
47
|
-
// 1. Validate user input at the boundary (Zod schemas, no surprises)
|
|
48
|
-
const email = InputValidator.validate(EmailSchema, 'user@example.com');
|
|
49
|
-
// ↳ throws if invalid; returns the typed value otherwise
|
|
50
|
-
|
|
51
|
-
// 2. Hash a password with bcrypt at the recommended cost (CVE-2)
|
|
52
|
-
// Default policy: ≥8 chars, ≥1 upper, ≥1 lower, ≥1 digit.
|
|
53
|
-
// Tune with new PasswordHasher({ rounds, requireUppercase, ... }).
|
|
54
|
-
const hasher = new PasswordHasher({ rounds: 12 });
|
|
55
|
-
const hash = await hasher.hash('CorrectHorseBatteryStaple9');
|
|
56
|
-
const ok = await hasher.verify('CorrectHorseBatteryStaple9', hash); // true
|
|
57
|
-
|
|
58
|
-
// 3. Generate a high-entropy API key (CVE-3) — uses crypto.randomBytes
|
|
59
|
-
// under the hood and refuses to emit keys below 32 bytes of entropy.
|
|
60
|
-
const creds = createCredentialGenerator();
|
|
61
|
-
const apiKey = creds.generateApiKey('ck_live_');
|
|
62
|
-
console.log(apiKey.keyId, apiKey.key.slice(0, 16) + '…');
|
|
63
|
-
// → 7e2b1a9c-… ck_live_xX9aQ…
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Recipe — Refuse command injection + path traversal
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
import {
|
|
70
|
-
createDevelopmentExecutor,
|
|
71
|
-
createProjectPathValidator,
|
|
72
|
-
} from '@claude-flow/security';
|
|
73
|
-
|
|
74
|
-
// SafeExecutor — only the allow-listed commands ever run (HIGH-1)
|
|
75
|
-
const exec = createDevelopmentExecutor({ projectRoot: process.cwd() });
|
|
76
|
-
const { stdout } = await exec.execute('git', ['status', '--porcelain']);
|
|
77
|
-
|
|
78
|
-
// PathValidator — refuses traversal and symlinks out of the project (HIGH-2)
|
|
79
|
-
const paths = createProjectPathValidator(process.cwd());
|
|
80
|
-
const result = await paths.validate('../../etc/passwd');
|
|
81
|
-
if (!result.isValid) console.log('blocked:', result.errors.join('; '));
|
|
82
|
-
// → blocked: Path traversal pattern detected
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Quick Start
|
|
86
|
-
|
|
87
|
-
```typescript
|
|
88
|
-
import { createSecurityModule } from '@claude-flow/security';
|
|
89
|
-
|
|
90
|
-
// Create a complete security module
|
|
91
|
-
const security = createSecurityModule({
|
|
92
|
-
projectRoot: '/workspaces/project',
|
|
93
|
-
hmacSecret: process.env.HMAC_SECRET!,
|
|
94
|
-
bcryptRounds: 12,
|
|
95
|
-
allowedCommands: ['git', 'npm', 'node']
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
// Hash a password
|
|
99
|
-
const hash = await security.passwordHasher.hash('userPassword123');
|
|
100
|
-
|
|
101
|
-
// Validate a path
|
|
102
|
-
const pathResult = await security.pathValidator.validate('/workspaces/project/src/file.ts');
|
|
103
|
-
|
|
104
|
-
// Execute command safely
|
|
105
|
-
const output = await security.safeExecutor.execute('git', ['status']);
|
|
106
|
-
|
|
107
|
-
// Generate secure credentials
|
|
108
|
-
const creds = await security.credentialGenerator.generate();
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## API Reference
|
|
112
|
-
|
|
113
|
-
### Password Hashing (CVE-2 Fix)
|
|
114
|
-
|
|
115
|
-
```typescript
|
|
116
|
-
import { PasswordHasher, createPasswordHasher } from '@claude-flow/security';
|
|
117
|
-
|
|
118
|
-
const hasher = createPasswordHasher({ rounds: 12 });
|
|
119
|
-
|
|
120
|
-
// Hash password
|
|
121
|
-
const hash = await hasher.hash('password');
|
|
122
|
-
|
|
123
|
-
// Verify password
|
|
124
|
-
const isValid = await hasher.verify('password', hash);
|
|
125
|
-
|
|
126
|
-
// Check if hash needs rehashing
|
|
127
|
-
const needsRehash = hasher.needsRehash(hash);
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Credential Generation (CVE-3 Fix)
|
|
131
|
-
|
|
132
|
-
```typescript
|
|
133
|
-
import { CredentialGenerator, generateCredentials } from '@claude-flow/security';
|
|
134
|
-
|
|
135
|
-
const generator = new CredentialGenerator();
|
|
136
|
-
|
|
137
|
-
// Generate API key
|
|
138
|
-
const apiKey = await generator.generateApiKey({
|
|
139
|
-
prefix: 'cf',
|
|
140
|
-
length: 32
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
// Generate complete credentials
|
|
144
|
-
const creds = generateCredentials({
|
|
145
|
-
includeApiKey: true,
|
|
146
|
-
includeSecret: true
|
|
147
|
-
});
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### Safe Command Execution (HIGH-1 Fix)
|
|
151
|
-
|
|
152
|
-
```typescript
|
|
153
|
-
import { SafeExecutor, createDevelopmentExecutor } from '@claude-flow/security';
|
|
154
|
-
|
|
155
|
-
const executor = createDevelopmentExecutor();
|
|
156
|
-
|
|
157
|
-
// Execute allowed command
|
|
158
|
-
const result = await executor.execute('git', ['status']);
|
|
159
|
-
|
|
160
|
-
// With timeout
|
|
161
|
-
const result2 = await executor.execute('npm', ['install'], {
|
|
162
|
-
timeout: 60000,
|
|
163
|
-
cwd: '/workspaces/project'
|
|
164
|
-
});
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Path Validation (HIGH-2 Fix)
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
import { PathValidator, createProjectPathValidator } from '@claude-flow/security';
|
|
171
|
-
|
|
172
|
-
const validator = createProjectPathValidator('/workspaces/project');
|
|
173
|
-
|
|
174
|
-
// Validate path
|
|
175
|
-
const result = await validator.validate('../../../etc/passwd');
|
|
176
|
-
// { valid: false, reason: 'Path traversal detected' }
|
|
177
|
-
|
|
178
|
-
// Safe path
|
|
179
|
-
const result2 = await validator.validate('/workspaces/project/src/index.ts');
|
|
180
|
-
// { valid: true, normalized: '/workspaces/project/src/index.ts' }
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Input Validation
|
|
184
|
-
|
|
185
|
-
```typescript
|
|
186
|
-
import {
|
|
187
|
-
InputValidator,
|
|
188
|
-
SafeStringSchema,
|
|
189
|
-
EmailSchema,
|
|
190
|
-
PasswordSchema,
|
|
191
|
-
SpawnAgentSchema
|
|
192
|
-
} from '@claude-flow/security';
|
|
193
|
-
|
|
194
|
-
// Validate email
|
|
195
|
-
const email = EmailSchema.parse('user@example.com');
|
|
196
|
-
|
|
197
|
-
// Validate password
|
|
198
|
-
const password = PasswordSchema.parse('SecurePass123!');
|
|
199
|
-
|
|
200
|
-
// Validate agent spawn request
|
|
201
|
-
const agentRequest = SpawnAgentSchema.parse({
|
|
202
|
-
type: 'coder',
|
|
203
|
-
name: 'code-agent-1'
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
// Sanitize HTML
|
|
207
|
-
import { sanitizeHtml } from '@claude-flow/security';
|
|
208
|
-
const safe = sanitizeHtml('<script>alert("xss")</script>Hello');
|
|
209
|
-
// 'Hello'
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Token Generation
|
|
213
|
-
|
|
214
|
-
```typescript
|
|
215
|
-
import { TokenGenerator, quickGenerate } from '@claude-flow/security';
|
|
216
|
-
|
|
217
|
-
const generator = new TokenGenerator({
|
|
218
|
-
hmacSecret: process.env.HMAC_SECRET!
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
// Generate signed token
|
|
222
|
-
const token = await generator.generate({
|
|
223
|
-
type: 'session',
|
|
224
|
-
expiresIn: 3600
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
// Verify token
|
|
228
|
-
const verified = await generator.verify(token);
|
|
229
|
-
|
|
230
|
-
// Quick generation
|
|
231
|
-
const sessionToken = quickGenerate.sessionToken();
|
|
232
|
-
const verificationCode = quickGenerate.verificationCode();
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
## Security Constants
|
|
236
|
-
|
|
237
|
-
```typescript
|
|
238
|
-
import {
|
|
239
|
-
MIN_BCRYPT_ROUNDS, // 12
|
|
240
|
-
MAX_BCRYPT_ROUNDS, // 14
|
|
241
|
-
MIN_PASSWORD_LENGTH, // 8
|
|
242
|
-
MAX_PASSWORD_LENGTH, // 72 (bcrypt limit)
|
|
243
|
-
DEFAULT_TOKEN_EXPIRATION, // 3600 (1 hour)
|
|
244
|
-
DEFAULT_SESSION_EXPIRATION // 86400 (24 hours)
|
|
245
|
-
} from '@claude-flow/security';
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
## Security Audit
|
|
249
|
-
|
|
250
|
-
```typescript
|
|
251
|
-
import { auditSecurityConfig } from '@claude-flow/security';
|
|
252
|
-
|
|
253
|
-
const warnings = auditSecurityConfig({
|
|
254
|
-
bcryptRounds: 10,
|
|
255
|
-
hmacSecret: 'short'
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
// ['bcryptRounds (10) below recommended minimum (12)',
|
|
259
|
-
// 'hmacSecret should be at least 32 characters']
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
## Validation Schemas
|
|
263
|
-
|
|
264
|
-
| Schema | Description |
|
|
265
|
-
|--------|-------------|
|
|
266
|
-
| `SafeStringSchema` | Basic safe string with length limits |
|
|
267
|
-
| `IdentifierSchema` | Alphanumeric identifiers |
|
|
268
|
-
| `FilenameSchema` | Safe filenames |
|
|
269
|
-
| `EmailSchema` | Email addresses |
|
|
270
|
-
| `PasswordSchema` | Secure passwords |
|
|
271
|
-
| `UUIDSchema` | UUID v4 format |
|
|
272
|
-
| `HttpsUrlSchema` | HTTPS URLs only |
|
|
273
|
-
| `SemverSchema` | Semantic versions |
|
|
274
|
-
| `PortSchema` | Valid port numbers |
|
|
275
|
-
| `IPv4Schema` | IPv4 addresses |
|
|
276
|
-
| `SpawnAgentSchema` | Agent spawn requests |
|
|
277
|
-
| `TaskInputSchema` | Task definitions |
|
|
278
|
-
| `SecurityConfigSchema` | Security configuration |
|
|
279
|
-
|
|
280
|
-
## Dependencies
|
|
281
|
-
|
|
282
|
-
- `bcrypt` - Password hashing
|
|
283
|
-
- `zod` - Schema validation
|
|
284
|
-
|
|
285
|
-
## Related Packages
|
|
286
|
-
|
|
287
|
-
- [@claude-flow/shared](../shared) - Shared types and utilities
|
|
288
|
-
- [@claude-flow/swarm](../swarm) - Swarm coordination (secure agent spawning)
|
|
289
|
-
|
|
290
|
-
## License
|
|
291
|
-
|
|
292
|
-
MIT
|
|
1
|
+
# @claude-flow/security
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@claude-flow/security)
|
|
4
|
+
[](https://www.npmjs.com/package/@claude-flow/security)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://www.typescriptlang.org/)
|
|
7
|
+
[](https://github.com/ruvnet/claude-flow)
|
|
8
|
+
|
|
9
|
+
> Comprehensive security module for Claude Flow V3 - CVE fixes, input validation, path security, and secure credential management.
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- **CVE Remediation** - Fixes for CVE-2 (Weak Password Hashing), CVE-3 (Hardcoded Credentials), HIGH-1 (Command Injection), HIGH-2 (Path Traversal)
|
|
14
|
+
- **Password Hashing** - Secure bcrypt-based password hashing with configurable rounds (12+ recommended)
|
|
15
|
+
- **Credential Generation** - Cryptographically secure credential and API key generation
|
|
16
|
+
- **Safe Command Execution** - Allowlist-based command execution preventing injection attacks
|
|
17
|
+
- **Path Validation** - Protection against path traversal and symlink attacks
|
|
18
|
+
- **Input Validation** - Zod-based schema validation for all input types
|
|
19
|
+
- **Token Generation** - Secure token creation with HMAC signing
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install @claude-flow/security
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Standalone use (without the Ruflo CLI)
|
|
28
|
+
|
|
29
|
+
This is a plain library — every primitive (`PasswordHasher`,
|
|
30
|
+
`PathValidator`, `SafeExecutor`, `InputValidator`, `CredentialGenerator`)
|
|
31
|
+
is independently importable. No CLI, no MCP server, no daemon. The
|
|
32
|
+
primitives close CVE-2 (weak hashing), CVE-3 (default credentials),
|
|
33
|
+
HIGH-1 (command injection), and HIGH-2 (path traversal) — drop them
|
|
34
|
+
into any Node app that needs to validate at a system boundary.
|
|
35
|
+
|
|
36
|
+
### Recipe — Validate input, hash a password, generate an API key
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// recipe.mjs
|
|
40
|
+
import {
|
|
41
|
+
InputValidator,
|
|
42
|
+
EmailSchema,
|
|
43
|
+
PasswordHasher,
|
|
44
|
+
createCredentialGenerator,
|
|
45
|
+
} from '@claude-flow/security';
|
|
46
|
+
|
|
47
|
+
// 1. Validate user input at the boundary (Zod schemas, no surprises)
|
|
48
|
+
const email = InputValidator.validate(EmailSchema, 'user@example.com');
|
|
49
|
+
// ↳ throws if invalid; returns the typed value otherwise
|
|
50
|
+
|
|
51
|
+
// 2. Hash a password with bcrypt at the recommended cost (CVE-2)
|
|
52
|
+
// Default policy: ≥8 chars, ≥1 upper, ≥1 lower, ≥1 digit.
|
|
53
|
+
// Tune with new PasswordHasher({ rounds, requireUppercase, ... }).
|
|
54
|
+
const hasher = new PasswordHasher({ rounds: 12 });
|
|
55
|
+
const hash = await hasher.hash('CorrectHorseBatteryStaple9');
|
|
56
|
+
const ok = await hasher.verify('CorrectHorseBatteryStaple9', hash); // true
|
|
57
|
+
|
|
58
|
+
// 3. Generate a high-entropy API key (CVE-3) — uses crypto.randomBytes
|
|
59
|
+
// under the hood and refuses to emit keys below 32 bytes of entropy.
|
|
60
|
+
const creds = createCredentialGenerator();
|
|
61
|
+
const apiKey = creds.generateApiKey('ck_live_');
|
|
62
|
+
console.log(apiKey.keyId, apiKey.key.slice(0, 16) + '…');
|
|
63
|
+
// → 7e2b1a9c-… ck_live_xX9aQ…
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Recipe — Refuse command injection + path traversal
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import {
|
|
70
|
+
createDevelopmentExecutor,
|
|
71
|
+
createProjectPathValidator,
|
|
72
|
+
} from '@claude-flow/security';
|
|
73
|
+
|
|
74
|
+
// SafeExecutor — only the allow-listed commands ever run (HIGH-1)
|
|
75
|
+
const exec = createDevelopmentExecutor({ projectRoot: process.cwd() });
|
|
76
|
+
const { stdout } = await exec.execute('git', ['status', '--porcelain']);
|
|
77
|
+
|
|
78
|
+
// PathValidator — refuses traversal and symlinks out of the project (HIGH-2)
|
|
79
|
+
const paths = createProjectPathValidator(process.cwd());
|
|
80
|
+
const result = await paths.validate('../../etc/passwd');
|
|
81
|
+
if (!result.isValid) console.log('blocked:', result.errors.join('; '));
|
|
82
|
+
// → blocked: Path traversal pattern detected
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Quick Start
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import { createSecurityModule } from '@claude-flow/security';
|
|
89
|
+
|
|
90
|
+
// Create a complete security module
|
|
91
|
+
const security = createSecurityModule({
|
|
92
|
+
projectRoot: '/workspaces/project',
|
|
93
|
+
hmacSecret: process.env.HMAC_SECRET!,
|
|
94
|
+
bcryptRounds: 12,
|
|
95
|
+
allowedCommands: ['git', 'npm', 'node']
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// Hash a password
|
|
99
|
+
const hash = await security.passwordHasher.hash('userPassword123');
|
|
100
|
+
|
|
101
|
+
// Validate a path
|
|
102
|
+
const pathResult = await security.pathValidator.validate('/workspaces/project/src/file.ts');
|
|
103
|
+
|
|
104
|
+
// Execute command safely
|
|
105
|
+
const output = await security.safeExecutor.execute('git', ['status']);
|
|
106
|
+
|
|
107
|
+
// Generate secure credentials
|
|
108
|
+
const creds = await security.credentialGenerator.generate();
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## API Reference
|
|
112
|
+
|
|
113
|
+
### Password Hashing (CVE-2 Fix)
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
import { PasswordHasher, createPasswordHasher } from '@claude-flow/security';
|
|
117
|
+
|
|
118
|
+
const hasher = createPasswordHasher({ rounds: 12 });
|
|
119
|
+
|
|
120
|
+
// Hash password
|
|
121
|
+
const hash = await hasher.hash('password');
|
|
122
|
+
|
|
123
|
+
// Verify password
|
|
124
|
+
const isValid = await hasher.verify('password', hash);
|
|
125
|
+
|
|
126
|
+
// Check if hash needs rehashing
|
|
127
|
+
const needsRehash = hasher.needsRehash(hash);
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Credential Generation (CVE-3 Fix)
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
import { CredentialGenerator, generateCredentials } from '@claude-flow/security';
|
|
134
|
+
|
|
135
|
+
const generator = new CredentialGenerator();
|
|
136
|
+
|
|
137
|
+
// Generate API key
|
|
138
|
+
const apiKey = await generator.generateApiKey({
|
|
139
|
+
prefix: 'cf',
|
|
140
|
+
length: 32
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Generate complete credentials
|
|
144
|
+
const creds = generateCredentials({
|
|
145
|
+
includeApiKey: true,
|
|
146
|
+
includeSecret: true
|
|
147
|
+
});
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Safe Command Execution (HIGH-1 Fix)
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
import { SafeExecutor, createDevelopmentExecutor } from '@claude-flow/security';
|
|
154
|
+
|
|
155
|
+
const executor = createDevelopmentExecutor();
|
|
156
|
+
|
|
157
|
+
// Execute allowed command
|
|
158
|
+
const result = await executor.execute('git', ['status']);
|
|
159
|
+
|
|
160
|
+
// With timeout
|
|
161
|
+
const result2 = await executor.execute('npm', ['install'], {
|
|
162
|
+
timeout: 60000,
|
|
163
|
+
cwd: '/workspaces/project'
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Path Validation (HIGH-2 Fix)
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
import { PathValidator, createProjectPathValidator } from '@claude-flow/security';
|
|
171
|
+
|
|
172
|
+
const validator = createProjectPathValidator('/workspaces/project');
|
|
173
|
+
|
|
174
|
+
// Validate path
|
|
175
|
+
const result = await validator.validate('../../../etc/passwd');
|
|
176
|
+
// { valid: false, reason: 'Path traversal detected' }
|
|
177
|
+
|
|
178
|
+
// Safe path
|
|
179
|
+
const result2 = await validator.validate('/workspaces/project/src/index.ts');
|
|
180
|
+
// { valid: true, normalized: '/workspaces/project/src/index.ts' }
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Input Validation
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import {
|
|
187
|
+
InputValidator,
|
|
188
|
+
SafeStringSchema,
|
|
189
|
+
EmailSchema,
|
|
190
|
+
PasswordSchema,
|
|
191
|
+
SpawnAgentSchema
|
|
192
|
+
} from '@claude-flow/security';
|
|
193
|
+
|
|
194
|
+
// Validate email
|
|
195
|
+
const email = EmailSchema.parse('user@example.com');
|
|
196
|
+
|
|
197
|
+
// Validate password
|
|
198
|
+
const password = PasswordSchema.parse('SecurePass123!');
|
|
199
|
+
|
|
200
|
+
// Validate agent spawn request
|
|
201
|
+
const agentRequest = SpawnAgentSchema.parse({
|
|
202
|
+
type: 'coder',
|
|
203
|
+
name: 'code-agent-1'
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
// Sanitize HTML
|
|
207
|
+
import { sanitizeHtml } from '@claude-flow/security';
|
|
208
|
+
const safe = sanitizeHtml('<script>alert("xss")</script>Hello');
|
|
209
|
+
// 'Hello'
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Token Generation
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
import { TokenGenerator, quickGenerate } from '@claude-flow/security';
|
|
216
|
+
|
|
217
|
+
const generator = new TokenGenerator({
|
|
218
|
+
hmacSecret: process.env.HMAC_SECRET!
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
// Generate signed token
|
|
222
|
+
const token = await generator.generate({
|
|
223
|
+
type: 'session',
|
|
224
|
+
expiresIn: 3600
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
// Verify token
|
|
228
|
+
const verified = await generator.verify(token);
|
|
229
|
+
|
|
230
|
+
// Quick generation
|
|
231
|
+
const sessionToken = quickGenerate.sessionToken();
|
|
232
|
+
const verificationCode = quickGenerate.verificationCode();
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Security Constants
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
import {
|
|
239
|
+
MIN_BCRYPT_ROUNDS, // 12
|
|
240
|
+
MAX_BCRYPT_ROUNDS, // 14
|
|
241
|
+
MIN_PASSWORD_LENGTH, // 8
|
|
242
|
+
MAX_PASSWORD_LENGTH, // 72 (bcrypt limit)
|
|
243
|
+
DEFAULT_TOKEN_EXPIRATION, // 3600 (1 hour)
|
|
244
|
+
DEFAULT_SESSION_EXPIRATION // 86400 (24 hours)
|
|
245
|
+
} from '@claude-flow/security';
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Security Audit
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
import { auditSecurityConfig } from '@claude-flow/security';
|
|
252
|
+
|
|
253
|
+
const warnings = auditSecurityConfig({
|
|
254
|
+
bcryptRounds: 10,
|
|
255
|
+
hmacSecret: 'short'
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// ['bcryptRounds (10) below recommended minimum (12)',
|
|
259
|
+
// 'hmacSecret should be at least 32 characters']
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Validation Schemas
|
|
263
|
+
|
|
264
|
+
| Schema | Description |
|
|
265
|
+
|--------|-------------|
|
|
266
|
+
| `SafeStringSchema` | Basic safe string with length limits |
|
|
267
|
+
| `IdentifierSchema` | Alphanumeric identifiers |
|
|
268
|
+
| `FilenameSchema` | Safe filenames |
|
|
269
|
+
| `EmailSchema` | Email addresses |
|
|
270
|
+
| `PasswordSchema` | Secure passwords |
|
|
271
|
+
| `UUIDSchema` | UUID v4 format |
|
|
272
|
+
| `HttpsUrlSchema` | HTTPS URLs only |
|
|
273
|
+
| `SemverSchema` | Semantic versions |
|
|
274
|
+
| `PortSchema` | Valid port numbers |
|
|
275
|
+
| `IPv4Schema` | IPv4 addresses |
|
|
276
|
+
| `SpawnAgentSchema` | Agent spawn requests |
|
|
277
|
+
| `TaskInputSchema` | Task definitions |
|
|
278
|
+
| `SecurityConfigSchema` | Security configuration |
|
|
279
|
+
|
|
280
|
+
## Dependencies
|
|
281
|
+
|
|
282
|
+
- `bcrypt` - Password hashing
|
|
283
|
+
- `zod` - Schema validation
|
|
284
|
+
|
|
285
|
+
## Related Packages
|
|
286
|
+
|
|
287
|
+
- [@claude-flow/shared](../shared) - Shared types and utilities
|
|
288
|
+
- [@claude-flow/swarm](../swarm) - Swarm coordination (secure agent spawning)
|
|
289
|
+
|
|
290
|
+
## License
|
|
291
|
+
|
|
292
|
+
MIT
|
|
@@ -223,15 +223,15 @@ export class CredentialGenerator {
|
|
|
223
223
|
* @returns Environment variable export script
|
|
224
224
|
*/
|
|
225
225
|
createEnvScript(credentials) {
|
|
226
|
-
return `# Claude Flow V3 - Generated Credentials
|
|
227
|
-
# Generated: ${credentials.generatedAt.toISOString()}
|
|
228
|
-
# IMPORTANT: Store these securely and delete this file after use
|
|
229
|
-
|
|
230
|
-
export CLAUDE_FLOW_ADMIN_PASSWORD="${credentials.adminPassword}"
|
|
231
|
-
export CLAUDE_FLOW_SERVICE_PASSWORD="${credentials.servicePassword}"
|
|
232
|
-
export CLAUDE_FLOW_JWT_SECRET="${credentials.jwtSecret}"
|
|
233
|
-
export CLAUDE_FLOW_SESSION_SECRET="${credentials.sessionSecret}"
|
|
234
|
-
export CLAUDE_FLOW_ENCRYPTION_KEY="${credentials.encryptionKey}"
|
|
226
|
+
return `# Claude Flow V3 - Generated Credentials
|
|
227
|
+
# Generated: ${credentials.generatedAt.toISOString()}
|
|
228
|
+
# IMPORTANT: Store these securely and delete this file after use
|
|
229
|
+
|
|
230
|
+
export CLAUDE_FLOW_ADMIN_PASSWORD="${credentials.adminPassword}"
|
|
231
|
+
export CLAUDE_FLOW_SERVICE_PASSWORD="${credentials.servicePassword}"
|
|
232
|
+
export CLAUDE_FLOW_JWT_SECRET="${credentials.jwtSecret}"
|
|
233
|
+
export CLAUDE_FLOW_SESSION_SECRET="${credentials.sessionSecret}"
|
|
234
|
+
export CLAUDE_FLOW_ENCRYPTION_KEY="${credentials.encryptionKey}"
|
|
235
235
|
`;
|
|
236
236
|
}
|
|
237
237
|
/**
|
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
* @module v3/security/oauth/callback-server
|
|
8
8
|
*/
|
|
9
9
|
import { createServer } from 'node:http';
|
|
10
|
-
const SUCCESS_PAGE = `<html>
|
|
11
|
-
<body style="background:#0a0a0a; color:#f5f5f5; font-family:sans-serif;
|
|
12
|
-
display:flex; align-items:center; justify-content:center;
|
|
13
|
-
height:100vh; margin:0;">
|
|
14
|
-
<div style="text-align:center;">
|
|
15
|
-
<h1>✓ ruflo login successful</h1>
|
|
16
|
-
<p>You can close this tab and return to your terminal.</p>
|
|
17
|
-
</div>
|
|
18
|
-
</body>
|
|
10
|
+
const SUCCESS_PAGE = `<html>
|
|
11
|
+
<body style="background:#0a0a0a; color:#f5f5f5; font-family:sans-serif;
|
|
12
|
+
display:flex; align-items:center; justify-content:center;
|
|
13
|
+
height:100vh; margin:0;">
|
|
14
|
+
<div style="text-align:center;">
|
|
15
|
+
<h1>✓ ruflo login successful</h1>
|
|
16
|
+
<p>You can close this tab and return to your terminal.</p>
|
|
17
|
+
</div>
|
|
18
|
+
</body>
|
|
19
19
|
</html>`;
|
|
20
20
|
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes, matches meta-proxy's CALLBACK_TIMEOUT
|
|
21
21
|
export class CallbackTimeoutError extends Error {
|