claude-flow-novice 2.2.4 → 2.2.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.
Files changed (288) hide show
  1. package/package.json +9 -8
  2. package/scripts/.claude-flow/metrics/agent-metrics.json +1 -0
  3. package/scripts/.claude-flow/metrics/performance.json +9 -0
  4. package/scripts/.claude-flow/metrics/task-metrics.json +10 -0
  5. package/scripts/CLEANUP_OPTIMIZATION_REPORT.json +312 -0
  6. package/scripts/CLEANUP_PERFORMANCE_OPTIMIZATION.md +387 -0
  7. package/scripts/CLEANUP_QUICK_START.md +268 -0
  8. package/scripts/CLEANUP_TEST_RESULTS.md +205 -0
  9. package/scripts/README.md +339 -0
  10. package/scripts/ace-query.sh +384 -0
  11. package/scripts/agent-token-analysis.js +430 -0
  12. package/scripts/auto-setup.js +332 -0
  13. package/scripts/build/README.md +167 -0
  14. package/scripts/build/build-config.js +27 -0
  15. package/scripts/build/build-prompt-copier.sh +30 -0
  16. package/scripts/build/performance-monitor.js +869 -0
  17. package/scripts/build/prepare-publish.js +150 -0
  18. package/scripts/build/typescript-fixer.js +621 -0
  19. package/scripts/build/unified-builder.sh +428 -0
  20. package/scripts/build/update-bin-version.js +32 -0
  21. package/scripts/build/validate-agents.js +238 -0
  22. package/scripts/build-index.js +43 -0
  23. package/scripts/build-orchestrator.js +320 -0
  24. package/scripts/check-routing-stats.cjs +122 -0
  25. package/scripts/ci-validation.js +375 -0
  26. package/scripts/cleanup-blocking-coordination.sh +420 -0
  27. package/scripts/cleanup-idle-sessions.sh +59 -0
  28. package/scripts/collect-build-metrics.js +65 -0
  29. package/scripts/demo/README.md +79 -0
  30. package/scripts/demo/autoscaling-demo-simplified.js +963 -0
  31. package/scripts/demo/comprehensive-dashboard-test.js +693 -0
  32. package/scripts/demo/confidence-log.js +87 -0
  33. package/scripts/demo/confidence-report.js +82 -0
  34. package/scripts/demo/demo-multi-swarm-coordination.js +325 -0
  35. package/scripts/demo/demo-production-deployment.js +399 -0
  36. package/scripts/demo/demo-visualization-system.js +149 -0
  37. package/scripts/demo/performance-analysis.cjs +71 -0
  38. package/scripts/demo/performance-analysis.js +71 -0
  39. package/scripts/demo/test-autoscaling-demo.js +314 -0
  40. package/scripts/dependency-optimizer.js +349 -0
  41. package/scripts/dependency-security-assessment.js +331 -0
  42. package/scripts/deploy-sdk.sh +176 -0
  43. package/scripts/deployment-readiness-report.json +179 -0
  44. package/scripts/dev/README.md +264 -0
  45. package/scripts/dev/claude-flow-wrapper.sh +35 -0
  46. package/scripts/dev/claude-monitor.py +419 -0
  47. package/scripts/dev/claude-sparc.sh +562 -0
  48. package/scripts/dev/claude-wrapper.sh +17 -0
  49. package/scripts/dev/demo-phase3-compliance.js +172 -0
  50. package/scripts/dev/demo-task-system.ts +224 -0
  51. package/scripts/dev/deployment-validator.js +315 -0
  52. package/scripts/dev/spawn-claude-terminal.sh +32 -0
  53. package/scripts/dev/start-portal.sh +506 -0
  54. package/scripts/dev/start-web-ui.js +15 -0
  55. package/scripts/dev/stop-portal.sh +311 -0
  56. package/scripts/dev/validate-examples.ts +288 -0
  57. package/scripts/dev/validate-phase2.cjs +451 -0
  58. package/scripts/dev/validate-phase2.js +785 -0
  59. package/scripts/dev/validate-phase3.cjs +208 -0
  60. package/scripts/dev/validate-security-remediation.js +1 -0
  61. package/scripts/ecosystem.config.cjs +90 -0
  62. package/scripts/fix-js-extensions.js +167 -0
  63. package/scripts/generate-basic-types.js +73 -0
  64. package/scripts/generate-changelog.js +318 -0
  65. package/scripts/git-hooks/pre-commit.sh +143 -0
  66. package/scripts/health-checks.js +634 -0
  67. package/scripts/hook-wrapper.sh +54 -0
  68. package/scripts/install/README.md +375 -0
  69. package/scripts/install/REDIS_SETUP_VALIDATION.json +245 -0
  70. package/scripts/install/check-prerequisites.js +303 -0
  71. package/scripts/install/config-wizard.js +606 -0
  72. package/scripts/install/dependency-checker.js +385 -0
  73. package/scripts/install/health-check.js +765 -0
  74. package/scripts/install/install.js +256 -0
  75. package/scripts/install/installation-benchmark.js +461 -0
  76. package/scripts/install/quick-install.js +720 -0
  77. package/scripts/install/quick-start-wizard.js +295 -0
  78. package/scripts/install/redis-cli.js +289 -0
  79. package/scripts/install/redis-install-guides.md +407 -0
  80. package/scripts/install/redis-setup.js +559 -0
  81. package/scripts/install/redis-test.js +278 -0
  82. package/scripts/install/service-manager.js +672 -0
  83. package/scripts/install/setup.js +832 -0
  84. package/scripts/install/uninstall.js +526 -0
  85. package/scripts/install/update.js +461 -0
  86. package/scripts/install-pre-commit-hook.sh +127 -0
  87. package/scripts/legacy/README.md +272 -0
  88. package/scripts/legacy/batch-fix-ts.sh +54 -0
  89. package/scripts/legacy/build-migration.sh +105 -0
  90. package/scripts/legacy/build-monitor.js +209 -0
  91. package/scripts/legacy/build-with-filter.sh +84 -0
  92. package/scripts/legacy/build-workaround.sh +71 -0
  93. package/scripts/legacy/fix-ts-advanced.js +358 -0
  94. package/scripts/legacy/fix-ts-final.sh +50 -0
  95. package/scripts/legacy/fix-ts-targeted.sh +49 -0
  96. package/scripts/legacy/fix-typescript-errors.js +305 -0
  97. package/scripts/legacy/force-build.sh +63 -0
  98. package/scripts/legacy/optimize-performance.js +400 -0
  99. package/scripts/legacy/performance-monitor.js +263 -0
  100. package/scripts/legacy/performance-monitoring.js +532 -0
  101. package/scripts/legacy/performance-test-runner.js +645 -0
  102. package/scripts/legacy/quick-fix-ts.js +281 -0
  103. package/scripts/legacy/safe-build.sh +63 -0
  104. package/scripts/memory-monitor-coordinator.js +322 -0
  105. package/scripts/migrate-to-sdk.sh +520 -0
  106. package/scripts/migration/QUICK-START.md +189 -0
  107. package/scripts/migration/QUICK-START.md.backup-1760135091363 +189 -0
  108. package/scripts/migration/README.md +464 -0
  109. package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md +500 -0
  110. package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md.backup-1760135091348 +500 -0
  111. package/scripts/migration/UPDATE-PATHS-README.md +464 -0
  112. package/scripts/migration/UPDATE-PATHS-README.md.backup-1760135091337 +464 -0
  113. package/scripts/migration/example-patterns.json +19 -0
  114. package/scripts/migration/install-arm64.js +78 -0
  115. package/scripts/migration/install.js +83 -0
  116. package/scripts/migration/migrate-hooks.js +173 -0
  117. package/scripts/migration/migration-examples.ts +318 -0
  118. package/scripts/migration/reorganize-workspace.js +504 -0
  119. package/scripts/migration/test-update-paths.js +359 -0
  120. package/scripts/migration/update-paths.js +664 -0
  121. package/scripts/migration/validate-migration.js +647 -0
  122. package/scripts/monitor-loop.sh +65 -0
  123. package/scripts/monitor-memory.sh +47 -0
  124. package/scripts/monitor-migration.js +339 -0
  125. package/scripts/monitor.py +43 -0
  126. package/scripts/monitoring/README.md +178 -0
  127. package/scripts/monitoring/alert-monitor.sh +220 -0
  128. package/scripts/monitoring/analyze-resources.sh +199 -0
  129. package/scripts/monitoring/dashboards/rate-limiting-dashboard.json +211 -0
  130. package/scripts/monitoring/dynamic-monitor.sh +85 -0
  131. package/scripts/monitoring/launch-stability-test.sh +184 -0
  132. package/scripts/monitoring/monitor-test.sh +93 -0
  133. package/scripts/monitoring/pre-test-validation.sh +208 -0
  134. package/scripts/monitoring/quick-test-alerting.sh +118 -0
  135. package/scripts/monitoring/quick-test-rate-limiting.sh +206 -0
  136. package/scripts/monitoring/rate-limiting-monitor.sh +380 -0
  137. package/scripts/monitoring/resource-monitor.sh +126 -0
  138. package/scripts/monitoring/stability-monitor.js +429 -0
  139. package/scripts/monitoring/test-monitor-quick.sh +54 -0
  140. package/scripts/monitoring/view-alerts.sh +307 -0
  141. package/scripts/npm-metrics-collector.js +482 -0
  142. package/scripts/npm-package-validation.cjs +299 -0
  143. package/scripts/optimization/build-optimizer.js +438 -0
  144. package/scripts/optimization/config-validator.js +761 -0
  145. package/scripts/optimization/test-optimization.js +432 -0
  146. package/scripts/optimization/unified-activation.js +839 -0
  147. package/scripts/optimize-package-swarm.js +54 -0
  148. package/scripts/performance/ACTIVATION_COMMANDS.md +292 -0
  149. package/scripts/performance/sqlite-enhanced-activation.sh +583 -0
  150. package/scripts/performance/test-enhanced-backend.sh +504 -0
  151. package/scripts/performance-monitor.js +644 -0
  152. package/scripts/performance-test-runner.js +698 -0
  153. package/scripts/post-deployment-monitoring.js +350 -0
  154. package/scripts/post-edit-pipeline.js +2091 -0
  155. package/scripts/post-install-claude-md.js +78 -0
  156. package/scripts/postinstall.js +79 -0
  157. package/scripts/pre-publish-validation.cjs +212 -0
  158. package/scripts/pre-publish-validation.js +429 -0
  159. package/scripts/redis-lua/cleanup-blocking-coordination.lua +198 -0
  160. package/scripts/release-announcement.js +425 -0
  161. package/scripts/release-notification.js +248 -0
  162. package/scripts/release-rollback.js +376 -0
  163. package/scripts/release-validation.js +460 -0
  164. package/scripts/rollback-sdk.sh +66 -0
  165. package/scripts/run-production-validation.ts +590 -0
  166. package/scripts/run-stability-validation.sh +687 -0
  167. package/scripts/security/README.md +339 -0
  168. package/scripts/security/deployment-validation.cjs +279 -0
  169. package/scripts/security/envelope-encryption-confidence-report.cjs +422 -0
  170. package/scripts/security/install-git-hooks.sh +132 -0
  171. package/scripts/security/install-git-secrets.sh +295 -0
  172. package/scripts/security/rotate-api-keys.js +469 -0
  173. package/scripts/security/ruv-swarm-safe.js +74 -0
  174. package/scripts/security/security-audit.cjs +538 -0
  175. package/scripts/security/setup-redis-auth.sh +397 -0
  176. package/scripts/security/validate-envelope-encryption.cjs +340 -0
  177. package/scripts/security-scan.js +492 -0
  178. package/scripts/src/web/frontend/.claude-flow/metrics/agent-metrics.json +1 -0
  179. package/scripts/src/web/frontend/.claude-flow/metrics/performance.json +9 -0
  180. package/scripts/src/web/frontend/.claude-flow/metrics/task-metrics.json +10 -0
  181. package/scripts/switch-api.sh +158 -0
  182. package/scripts/sync-agents.js +290 -0
  183. package/scripts/test/50-agent-test.js +625 -0
  184. package/scripts/test/NEW_STABILITY_TEST_GUIDE.md +407 -0
  185. package/scripts/test/README.md +236 -0
  186. package/scripts/test/STABILITY_TEST_EXAMPLE.md +347 -0
  187. package/scripts/test/STABILITY_TEST_README.md +480 -0
  188. package/scripts/test/agent-worker.js +309 -0
  189. package/scripts/test/ai-coordination-test.js +650 -0
  190. package/scripts/test/ai-mesh-coordination-test.js +416 -0
  191. package/scripts/test/check-links.ts +274 -0
  192. package/scripts/test/check-performance-regression.ts +168 -0
  193. package/scripts/test/cli-agent-coordination-test.js +313 -0
  194. package/scripts/test/coordinator-multilingual-test.js +396 -0
  195. package/scripts/test/coordinator-transparency-demo.js +585 -0
  196. package/scripts/test/coverage-report.ts +692 -0
  197. package/scripts/test/generate-swarm-tests.js +633 -0
  198. package/scripts/test/integration-test-validation.cjs +253 -0
  199. package/scripts/test/load-test-swarm.js +576 -0
  200. package/scripts/test/mesh-coordination-zero-overlap-test.js +740 -0
  201. package/scripts/test/multilingual-hello-world-test.js +390 -0
  202. package/scripts/test/quick-multilingual-demo.js +464 -0
  203. package/scripts/test/real-agent-test.js +312 -0
  204. package/scripts/test/run-phase3-compliance-tests.js +427 -0
  205. package/scripts/test/run-stability-test-examples.sh +292 -0
  206. package/scripts/test/stability-results/stability-metrics.jsonl +83 -0
  207. package/scripts/test/stability-results/stability-test-report.json +128 -0
  208. package/scripts/test/stability-results/stability-test.log +1827 -0
  209. package/scripts/test/stability-test-50-agents.js +734 -0
  210. package/scripts/test/test-batch-tasks.ts +29 -0
  211. package/scripts/test/test-byzantine-resolution.js +246 -0
  212. package/scripts/test/test-claude-spawn-options.sh +63 -0
  213. package/scripts/test/test-cli-wizard.js +331 -0
  214. package/scripts/test/test-comprehensive.js +401 -0
  215. package/scripts/test/test-coordination-features.ts +238 -0
  216. package/scripts/test/test-fallback-systems.js +276 -0
  217. package/scripts/test/test-init-command.ts +302 -0
  218. package/scripts/test/test-mcp.ts +251 -0
  219. package/scripts/test/test-runner.ts +568 -0
  220. package/scripts/test/test-swarm-integration.sh +92 -0
  221. package/scripts/test/test-swarm.ts +142 -0
  222. package/scripts/test/validation-summary.ts +408 -0
  223. package/scripts/test-cleanup-performance.sh +416 -0
  224. package/scripts/test-dashboard-auth.cjs +203 -0
  225. package/scripts/test-docker-deployment.sh +207 -0
  226. package/scripts/test-npm-package.cjs +167 -0
  227. package/scripts/test-provider-routing.cjs +226 -0
  228. package/scripts/test-routing-telemetry.cjs +147 -0
  229. package/scripts/test-runner.cjs +154 -0
  230. package/scripts/test-zai-10k.cjs +81 -0
  231. package/scripts/test-zai-api.cjs +191 -0
  232. package/scripts/test-zai-diagnostic.cjs +151 -0
  233. package/scripts/test-zai-final.cjs +128 -0
  234. package/scripts/test-zai-with-env.cjs +85 -0
  235. package/scripts/utils/README.md +261 -0
  236. package/scripts/utils/clean-build-artifacts.sh +94 -0
  237. package/scripts/utils/cleanup-root.sh +69 -0
  238. package/scripts/utils/fix-cliffy-imports.js +307 -0
  239. package/scripts/utils/fix-duplicate-imports.js +114 -0
  240. package/scripts/utils/fix-error-handling.cjs +70 -0
  241. package/scripts/utils/fix-import-paths.js +104 -0
  242. package/scripts/utils/fix-imports.js +116 -0
  243. package/scripts/utils/fix-shebang.js +78 -0
  244. package/scripts/utils/fix-test-modules.js +27 -0
  245. package/scripts/utils/fix-timezone-issue-246.js +200 -0
  246. package/scripts/utils/fix-ts-comprehensive.py +182 -0
  247. package/scripts/utils/fix-ts-targeted-batch.js +250 -0
  248. package/scripts/utils/remove-benchmark-conflicts.sh +140 -0
  249. package/scripts/utils/simple-test-fixer.js +190 -0
  250. package/scripts/utils/validate-metrics-structure.cjs +144 -0
  251. package/scripts/validate-agent-hooks.js +506 -0
  252. package/scripts/validate-changelog.js +241 -0
  253. package/scripts/validate-coordination-cli.js +69 -0
  254. package/scripts/validate-coordination-toggle-integration.cjs +501 -0
  255. package/scripts/validate-docker-infrastructure.sh +502 -0
  256. package/scripts/validate-entry-points.js +300 -0
  257. package/scripts/validate-stage3-performance.ts +377 -0
  258. package/scripts/validate-template-bundling.js +180 -0
  259. package/scripts/validation/README.md +33 -0
  260. package/scripts/validation/acl-security-validation.cjs +214 -0
  261. package/scripts/validation/acl-security-validation.js +402 -0
  262. package/scripts/validation/byzantine-verification.js +407 -0
  263. package/scripts/validation/final-phase-2-consensus.cjs +219 -0
  264. package/scripts/validation/final-security-validation.js +791 -0
  265. package/scripts/validation/final-wasm-validation.cjs +840 -0
  266. package/scripts/validation/integration-test-analysis.js +105 -0
  267. package/scripts/validation/phase-0-comprehensive-validation.js +474 -0
  268. package/scripts/validation/phase-0-consensus-report.js +139 -0
  269. package/scripts/validation/phase-0-final-report.js +112 -0
  270. package/scripts/validation/phase-0-redis-consensus-report.js +129 -0
  271. package/scripts/validation/phase-0-validation-improved.js +490 -0
  272. package/scripts/validation/phase-0-validation-test.js +65 -0
  273. package/scripts/validation/phase-1-consensus-report.cjs +342 -0
  274. package/scripts/validation/phase-1-consensus-validation.cjs +551 -0
  275. package/scripts/validation/phase-1-consensus-validation.js +551 -0
  276. package/scripts/validation/phase-2-consensus-report.cjs +186 -0
  277. package/scripts/validation/phase-2-validation.cjs +171 -0
  278. package/scripts/validation/phase-2-validation.js +171 -0
  279. package/scripts/validation/phase-4-consensus-report.js +181 -0
  280. package/scripts/validation/phase-4-final-validation.js +351 -0
  281. package/scripts/validation/phase-5-consensus-report.cjs +113 -0
  282. package/scripts/validation/phase-5-consensus-report.js +113 -0
  283. package/scripts/validation/security-analysis.js +49 -0
  284. package/scripts/validation/security-validation.js +492 -0
  285. package/scripts/validation/simple-security-validation.js +464 -0
  286. package/scripts/verify-installation.js +112 -0
  287. package/scripts/verify-mcp-server.js +86 -0
  288. package/scripts/verify-sdk-phase1.cjs +293 -0
@@ -0,0 +1,397 @@
1
+ #!/bin/bash
2
+
3
+ # Setup Redis Authentication
4
+ # Configures Redis with secure password and proper authentication
5
+
6
+ set -e
7
+
8
+ echo "🔐 Setting up Redis Authentication"
9
+ echo ""
10
+
11
+ # Colors for output
12
+ RED='\033[0;31m'
13
+ GREEN='\033[0;32m'
14
+ YELLOW='\033[1;33m'
15
+ BLUE='\033[0;34m'
16
+ NC='\033[0m' # No Color
17
+
18
+ # Configuration
19
+ REDIS_CONF="/etc/redis/redis.conf"
20
+ REDIS_CONF_LOCAL="$HOME/.redis/redis.conf"
21
+ REDIS_CONF_WSL="/mnt/c/ProgramData/Redis/redis.conf"
22
+ MIN_PASSWORD_LENGTH=32
23
+
24
+ # Detect Redis configuration file location
25
+ if [ -f "$REDIS_CONF" ]; then
26
+ REDIS_CONFIG_FILE="$REDIS_CONF"
27
+ elif [ -f "$REDIS_CONF_LOCAL" ]; then
28
+ REDIS_CONFIG_FILE="$REDIS_CONF_LOCAL"
29
+ elif [ -f "$REDIS_CONF_WSL" ]; then
30
+ REDIS_CONFIG_FILE="$REDIS_CONF_WSL"
31
+ else
32
+ echo -e "${YELLOW}⚠️ Redis configuration file not found in standard locations${NC}"
33
+ echo " Please specify the path to redis.conf:"
34
+ read -p " Path: " REDIS_CONFIG_FILE
35
+
36
+ if [ ! -f "$REDIS_CONFIG_FILE" ]; then
37
+ echo -e "${RED}❌ File not found: $REDIS_CONFIG_FILE${NC}"
38
+ exit 1
39
+ fi
40
+ fi
41
+
42
+ echo -e "${BLUE}📁 Using Redis config: $REDIS_CONFIG_FILE${NC}"
43
+
44
+ # Check if .env exists
45
+ if [ ! -f ".env" ]; then
46
+ echo -e "${RED}❌ .env file not found${NC}"
47
+ echo " Run from the project root directory"
48
+ exit 1
49
+ fi
50
+
51
+ # Check if REDIS_PASSWORD is already set in .env
52
+ CURRENT_PASSWORD=$(grep "^REDIS_PASSWORD=" .env 2>/dev/null | cut -d= -f2- | tr -d '\r\n')
53
+
54
+ if [ -n "$CURRENT_PASSWORD" ] && [ ${#CURRENT_PASSWORD} -ge $MIN_PASSWORD_LENGTH ]; then
55
+ echo -e "${GREEN}✅ REDIS_PASSWORD already configured in .env${NC}"
56
+ echo " Length: ${#CURRENT_PASSWORD} characters"
57
+
58
+ read -p "Generate new password? (yes/no): " REGENERATE
59
+ if [ "$REGENERATE" != "yes" ]; then
60
+ REDIS_PASSWORD="$CURRENT_PASSWORD"
61
+ else
62
+ # Generate new secure password
63
+ REDIS_PASSWORD=$(openssl rand -base64 48 | tr -d '\n' | head -c 64)
64
+ echo -e "${BLUE}🔑 Generated new secure password (64 characters)${NC}"
65
+ fi
66
+ else
67
+ echo -e "${YELLOW}⚠️ REDIS_PASSWORD not configured or too weak${NC}"
68
+
69
+ # Generate secure password
70
+ REDIS_PASSWORD=$(openssl rand -base64 48 | tr -d '\n' | head -c 64)
71
+ echo -e "${BLUE}🔑 Generated secure password (64 characters)${NC}"
72
+ fi
73
+
74
+ # Update .env file
75
+ echo -e "${BLUE}💾 Updating .env file...${NC}"
76
+
77
+ # Backup .env
78
+ cp .env .env.backup.$(date +%s)
79
+ echo -e "${GREEN}✅ Backed up .env${NC}"
80
+
81
+ # Update or add REDIS_PASSWORD
82
+ if grep -q "^REDIS_PASSWORD=" .env; then
83
+ # Update existing
84
+ sed -i.bak "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=$REDIS_PASSWORD|" .env
85
+ else
86
+ # Add new
87
+ echo "" >> .env
88
+ echo "# Redis Authentication (auto-generated)" >> .env
89
+ echo "REDIS_PASSWORD=$REDIS_PASSWORD" >> .env
90
+ fi
91
+
92
+ # Set secure permissions
93
+ chmod 600 .env
94
+ echo -e "${GREEN}✅ Set .env permissions to 600${NC}"
95
+
96
+ # Update Redis configuration
97
+ echo -e "${BLUE}🔧 Configuring Redis...${NC}"
98
+
99
+ # Check if we have write permission
100
+ if [ ! -w "$REDIS_CONFIG_FILE" ]; then
101
+ echo -e "${YELLOW}⚠️ No write permission for $REDIS_CONFIG_FILE${NC}"
102
+ echo " You'll need to update Redis config manually with sudo/admin"
103
+ echo ""
104
+ echo -e "${BLUE}Manual Configuration:${NC}"
105
+ echo " 1. Edit $REDIS_CONFIG_FILE"
106
+ echo " 2. Add or update: requirepass $REDIS_PASSWORD"
107
+ echo " 3. Restart Redis"
108
+ echo ""
109
+
110
+ # Save password to temporary file for manual setup
111
+ TEMP_PASSWORD_FILE="memory/security/redis-password.txt"
112
+ mkdir -p "memory/security"
113
+ echo "$REDIS_PASSWORD" > "$TEMP_PASSWORD_FILE"
114
+ chmod 600 "$TEMP_PASSWORD_FILE"
115
+
116
+ echo -e "${GREEN}✅ Password saved to: $TEMP_PASSWORD_FILE${NC}"
117
+ echo " (delete after manual configuration)"
118
+
119
+ exit 0
120
+ fi
121
+
122
+ # Backup Redis config
123
+ cp "$REDIS_CONFIG_FILE" "${REDIS_CONFIG_FILE}.backup.$(date +%s)"
124
+ echo -e "${GREEN}✅ Backed up Redis config${NC}"
125
+
126
+ # Update requirepass in redis.conf
127
+ if grep -q "^requirepass" "$REDIS_CONFIG_FILE"; then
128
+ # Update existing
129
+ sed -i.bak "s|^requirepass.*|requirepass $REDIS_PASSWORD|" "$REDIS_CONFIG_FILE"
130
+ elif grep -q "^# requirepass" "$REDIS_CONFIG_FILE"; then
131
+ # Uncomment and update
132
+ sed -i.bak "s|^# requirepass.*|requirepass $REDIS_PASSWORD|" "$REDIS_CONFIG_FILE"
133
+ else
134
+ # Add new
135
+ echo "" >> "$REDIS_CONFIG_FILE"
136
+ echo "# Redis Authentication - Auto-configured by Claude Flow Novice" >> "$REDIS_CONFIG_FILE"
137
+ echo "requirepass $REDIS_PASSWORD" >> "$REDIS_CONFIG_FILE"
138
+ fi
139
+
140
+ echo -e "${GREEN}✅ Updated Redis configuration${NC}"
141
+
142
+ # Additional security settings
143
+ echo -e "${BLUE}🔒 Applying additional security settings...${NC}"
144
+
145
+ # Disable dangerous commands
146
+ DANGEROUS_COMMANDS="FLUSHDB FLUSHALL KEYS CONFIG SHUTDOWN DEBUG"
147
+ for cmd in $DANGEROUS_COMMANDS; do
148
+ if ! grep -q "rename-command $cmd" "$REDIS_CONFIG_FILE"; then
149
+ echo "rename-command $cmd \"\"" >> "$REDIS_CONFIG_FILE"
150
+ fi
151
+ done
152
+
153
+ echo -e "${GREEN}✅ Disabled dangerous Redis commands${NC}"
154
+
155
+ # Bind to localhost only (unless already configured for network)
156
+ if grep -q "^bind 127.0.0.1" "$REDIS_CONFIG_FILE"; then
157
+ echo -e "${GREEN}✅ Redis already bound to localhost${NC}"
158
+ elif grep -q "^bind 0.0.0.0" "$REDIS_CONFIG_FILE"; then
159
+ echo -e "${YELLOW}⚠️ Redis is bound to all interfaces (0.0.0.0)${NC}"
160
+ echo " Consider binding to localhost only for security"
161
+ read -p " Bind to localhost only? (yes/no): " BIND_LOCALHOST
162
+ if [ "$BIND_LOCALHOST" = "yes" ]; then
163
+ sed -i.bak "s|^bind 0.0.0.0|bind 127.0.0.1|" "$REDIS_CONFIG_FILE"
164
+ echo -e "${GREEN}✅ Updated bind to localhost${NC}"
165
+ fi
166
+ else
167
+ echo "bind 127.0.0.1" >> "$REDIS_CONFIG_FILE"
168
+ echo -e "${GREEN}✅ Configured bind to localhost${NC}"
169
+ fi
170
+
171
+ # Enable protected mode
172
+ if ! grep -q "^protected-mode yes" "$REDIS_CONFIG_FILE"; then
173
+ echo "protected-mode yes" >> "$REDIS_CONFIG_FILE"
174
+ echo -e "${GREEN}✅ Enabled protected mode${NC}"
175
+ fi
176
+
177
+ # Restart Redis
178
+ echo ""
179
+ echo -e "${BLUE}🔄 Restarting Redis...${NC}"
180
+
181
+ # Detect init system
182
+ if command -v systemctl &> /dev/null; then
183
+ # systemd
184
+ if sudo systemctl restart redis 2>/dev/null || sudo systemctl restart redis-server 2>/dev/null; then
185
+ echo -e "${GREEN}✅ Redis restarted successfully${NC}"
186
+ else
187
+ echo -e "${YELLOW}⚠️ Failed to restart Redis automatically${NC}"
188
+ echo " Please restart Redis manually"
189
+ fi
190
+ elif command -v service &> /dev/null; then
191
+ # SysV init
192
+ if sudo service redis restart 2>/dev/null || sudo service redis-server restart 2>/dev/null; then
193
+ echo -e "${GREEN}✅ Redis restarted successfully${NC}"
194
+ else
195
+ echo -e "${YELLOW}⚠️ Failed to restart Redis automatically${NC}"
196
+ echo " Please restart Redis manually"
197
+ fi
198
+ else
199
+ echo -e "${YELLOW}⚠️ Could not detect init system${NC}"
200
+ echo " Please restart Redis manually"
201
+ fi
202
+
203
+ # Test connection
204
+ echo ""
205
+ echo -e "${BLUE}🧪 Testing Redis authentication...${NC}"
206
+
207
+ if redis-cli -a "$REDIS_PASSWORD" ping 2>/dev/null | grep -q "PONG"; then
208
+ echo -e "${GREEN}✅ Redis authentication test successful${NC}"
209
+ else
210
+ echo -e "${RED}❌ Redis authentication test failed${NC}"
211
+ echo " Check Redis logs for errors"
212
+ echo " Verify password in .env matches redis.conf"
213
+ fi
214
+
215
+ # Cleanup backup files
216
+ rm -f "${REDIS_CONFIG_FILE}.bak"
217
+
218
+ # Create documentation
219
+ echo ""
220
+ echo -e "${BLUE}📚 Creating documentation...${NC}"
221
+
222
+ mkdir -p docs/security
223
+
224
+ cat > "docs/security/REDIS_AUTHENTICATION.md" << 'EOF'
225
+ # Redis Authentication Setup
226
+
227
+ This document describes the Redis authentication configuration for Claude Flow Novice.
228
+
229
+ ## Configuration
230
+
231
+ Redis is configured with:
232
+
233
+ - **Password Authentication**: 64-character secure password
234
+ - **Bind Address**: localhost (127.0.0.1) - not accessible from network
235
+ - **Protected Mode**: Enabled
236
+ - **Dangerous Commands**: Disabled (FLUSHDB, FLUSHALL, CONFIG, etc.)
237
+
238
+ ## Password Storage
239
+
240
+ The Redis password is stored in:
241
+
242
+ 1. `.env` file (chmod 600)
243
+ 2. Environment variable `REDIS_PASSWORD`
244
+
245
+ ## Connecting to Redis
246
+
247
+ ### From Application
248
+
249
+ ```javascript
250
+ const redis = require('redis');
251
+ const client = redis.createClient({
252
+ host: 'localhost',
253
+ port: 6379,
254
+ password: process.env.REDIS_PASSWORD
255
+ });
256
+ ```
257
+
258
+ ### From Redis CLI
259
+
260
+ ```bash
261
+ redis-cli -a "$REDIS_PASSWORD"
262
+ ```
263
+
264
+ Or set the environment variable:
265
+
266
+ ```bash
267
+ export REDIS_PASSWORD=$(grep REDIS_PASSWORD .env | cut -d= -f2)
268
+ redis-cli -a "$REDIS_PASSWORD"
269
+ ```
270
+
271
+ ## Security Best Practices
272
+
273
+ 1. **Never commit `.env`** to version control
274
+ 2. **Rotate password every 90 days**: `node scripts/security/rotate-api-keys.js --key=REDIS_PASSWORD --auto`
275
+ 3. **Use TLS** for production Redis connections
276
+ 4. **Firewall rules** to restrict Redis port (6379)
277
+ 5. **Monitor** Redis logs for authentication failures
278
+
279
+ ## Troubleshooting
280
+
281
+ ### Authentication Failed
282
+
283
+ 1. Check password in `.env`:
284
+ ```bash
285
+ grep REDIS_PASSWORD .env
286
+ ```
287
+
288
+ 2. Check Redis config:
289
+ ```bash
290
+ sudo grep requirepass /etc/redis/redis.conf
291
+ ```
292
+
293
+ 3. Verify they match
294
+
295
+ ### Connection Refused
296
+
297
+ 1. Check Redis is running:
298
+ ```bash
299
+ sudo systemctl status redis
300
+ # or
301
+ sudo service redis status
302
+ ```
303
+
304
+ 2. Check bind address:
305
+ ```bash
306
+ sudo grep bind /etc/redis/redis.conf
307
+ ```
308
+
309
+ 3. Restart Redis:
310
+ ```bash
311
+ sudo systemctl restart redis
312
+ ```
313
+
314
+ ## Rotating the Password
315
+
316
+ ### Automated
317
+
318
+ ```bash
319
+ node scripts/security/rotate-api-keys.js --key=REDIS_PASSWORD --auto
320
+ ```
321
+
322
+ ### Manual
323
+
324
+ 1. Generate new password:
325
+ ```bash
326
+ openssl rand -base64 48 | head -c 64
327
+ ```
328
+
329
+ 2. Update `.env`:
330
+ ```
331
+ REDIS_PASSWORD=new-password-here
332
+ ```
333
+
334
+ 3. Update Redis config:
335
+ ```bash
336
+ sudo sed -i 's/^requirepass.*/requirepass new-password-here/' /etc/redis/redis.conf
337
+ ```
338
+
339
+ 4. Restart Redis:
340
+ ```bash
341
+ sudo systemctl restart redis
342
+ ```
343
+
344
+ 5. Test connection:
345
+ ```bash
346
+ redis-cli -a "new-password-here" ping
347
+ ```
348
+
349
+ ## Configuration Files
350
+
351
+ - **Application Config**: `.env` (chmod 600)
352
+ - **Redis Config**: `/etc/redis/redis.conf` (or platform-specific)
353
+ - **Backup Location**: `memory/security/` (chmod 700)
354
+
355
+ ## Security Audit
356
+
357
+ Run security audit to check Redis authentication:
358
+
359
+ ```bash
360
+ node scripts/security/security-audit.js
361
+ ```
362
+
363
+ ## Support
364
+
365
+ For issues with Redis authentication:
366
+
367
+ - Check logs: `sudo tail -f /var/log/redis/redis-server.log`
368
+ - Verify config: `redis-cli CONFIG GET requirepass` (after auth)
369
+ - Test connection: `redis-cli -a "$REDIS_PASSWORD" ping`
370
+ EOF
371
+
372
+ echo -e "${GREEN}✅ Documentation created at docs/security/REDIS_AUTHENTICATION.md${NC}"
373
+
374
+ # Summary
375
+ echo ""
376
+ echo -e "${GREEN}════════════════════════════════════════════════════════${NC}"
377
+ echo -e "${GREEN}✅ Redis Authentication Setup Complete!${NC}"
378
+ echo -e "${GREEN}════════════════════════════════════════════════════════${NC}"
379
+ echo ""
380
+ echo -e "${BLUE}Configuration Summary:${NC}"
381
+ echo " ✅ Password length: ${#REDIS_PASSWORD} characters"
382
+ echo " ✅ .env file permissions: 600"
383
+ echo " ✅ Redis config updated"
384
+ echo " ✅ Dangerous commands disabled"
385
+ echo " ✅ Protected mode enabled"
386
+ echo " ✅ Bound to localhost"
387
+ echo ""
388
+ echo -e "${BLUE}Next Steps:${NC}"
389
+ echo " 1. Test application with new Redis authentication"
390
+ echo " 2. Rotate password every 90 days"
391
+ echo " 3. Review docs/security/REDIS_AUTHENTICATION.md"
392
+ echo " 4. Set up monitoring for failed auth attempts"
393
+ echo ""
394
+ echo -e "${YELLOW}⚠️ IMPORTANT: Keep your .env file secure!${NC}"
395
+ echo ""
396
+
397
+ exit 0