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,420 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # cleanup-blocking-coordination.sh
4
+ # Sprint 3.2: Auto-Recovery Mechanisms - High-Performance Cleanup Script
5
+ #
6
+ # Performance Optimized Version:
7
+ # - Target: <5s for 10,000 coordinators (2,000 coordinators/sec)
8
+ # - Strategy: Lua script execution for atomic, server-side batch processing
9
+ # - Fallback: Original sequential bash implementation if Lua fails
10
+ #
11
+ # Finds and removes stale blocking coordinator state from Redis.
12
+ # Stale detection: Heartbeat age >10 minutes (600 seconds)
13
+ #
14
+ # Features:
15
+ # - Uses Redis SCAN (not KEYS) to prevent DoS in production
16
+ # - Lua script for 50-60x performance improvement
17
+ # - Dry-run mode for testing: --dry-run flag
18
+ # - Logs to ~/.claude-flow/logs/blocking-cleanup.log
19
+ # - Exit codes: 0 (success), 1 (Redis connection failed), 2 (cleanup errors)
20
+ # - Cleanup categories: heartbeats, ACKs, signals, idempotency, activity
21
+ #
22
+ # Usage:
23
+ # ./scripts/cleanup-blocking-coordination.sh # Production cleanup
24
+ # ./scripts/cleanup-blocking-coordination.sh --dry-run # Test mode
25
+ # ./scripts/cleanup-blocking-coordination.sh --fallback # Force bash implementation
26
+ #
27
+ # Scheduled execution:
28
+ # - systemd timer: Every 5 minutes (systemd/cleanup-blocking-coordination.timer)
29
+ # - cron: */5 * * * * (cron.d/cleanup-blocking-coordination)
30
+ # - npm: npm run cleanup:blocking
31
+ #
32
+
33
+ set -euo pipefail
34
+
35
+ # ===== CONFIGURATION =====
36
+
37
+ # Stale threshold: 10 minutes = 600 seconds
38
+ STALE_THRESHOLD_SECONDS=600
39
+
40
+ # Log file location
41
+ LOG_DIR="${HOME}/.claude-flow/logs"
42
+ LOG_FILE="${LOG_DIR}/blocking-cleanup.log"
43
+
44
+ # Redis connection (uses environment variables or defaults)
45
+ REDIS_HOST="${REDIS_HOST:-127.0.0.1}"
46
+ REDIS_PORT="${REDIS_PORT:-6379}"
47
+ REDIS_PASSWORD="${REDIS_PASSWORD:-}"
48
+ REDIS_DB="${REDIS_DB:-0}"
49
+
50
+ # Script directory (for Lua script location)
51
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
52
+ LUA_SCRIPT="${SCRIPT_DIR}/redis-lua/cleanup-blocking-coordination.lua"
53
+
54
+ # Dry-run mode flag
55
+ DRY_RUN=false
56
+
57
+ # Force fallback to bash implementation
58
+ FORCE_FALLBACK=false
59
+
60
+ # Metrics counters
61
+ TOTAL_COORDINATORS_CHECKED=0
62
+ STALE_COORDINATORS_FOUND=0
63
+ KEYS_DELETED=0
64
+ CLEANUP_ERRORS=0
65
+ EXECUTION_TIME_MS=0
66
+
67
+ # ===== HELPER FUNCTIONS =====
68
+
69
+ # Log with timestamp
70
+ log() {
71
+ local level="$1"
72
+ shift
73
+ local message="$*"
74
+ local timestamp
75
+ timestamp=$(date '+%Y-%m-%d %H:%M:%S')
76
+ echo "[${timestamp}] [${level}] ${message}" | tee -a "${LOG_FILE}"
77
+ }
78
+
79
+ # Redis command wrapper with authentication
80
+ redis_cmd() {
81
+ if [ -n "${REDIS_PASSWORD}" ]; then
82
+ redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -a "${REDIS_PASSWORD}" -n "${REDIS_DB}" "$@" 2>/dev/null
83
+ else
84
+ redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -n "${REDIS_DB}" "$@" 2>/dev/null
85
+ fi
86
+ }
87
+
88
+ # Redis EVAL wrapper for Lua script execution
89
+ redis_eval_lua() {
90
+ local lua_script="$1"
91
+ local num_keys="$2"
92
+ shift 2
93
+ local args=("$@")
94
+
95
+ if [ -n "${REDIS_PASSWORD}" ]; then
96
+ redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -a "${REDIS_PASSWORD}" -n "${REDIS_DB}" --eval "${lua_script}" "${num_keys}" "${args[@]}" 2>/dev/null
97
+ else
98
+ redis-cli -h "${REDIS_HOST}" -p "${REDIS_PORT}" -n "${REDIS_DB}" --eval "${lua_script}" "${num_keys}" "${args[@]}" 2>/dev/null
99
+ fi
100
+ }
101
+
102
+ # High-performance Lua-based cleanup
103
+ cleanup_lua() {
104
+ log "INFO" "Using high-performance Lua script for cleanup"
105
+
106
+ # Check if Lua script exists
107
+ if [ ! -f "${LUA_SCRIPT}" ]; then
108
+ log "ERROR" "Lua script not found: ${LUA_SCRIPT}"
109
+ log "INFO" "Falling back to bash implementation"
110
+ return 1
111
+ fi
112
+
113
+ # Execute Lua script
114
+ local dry_run_flag=0
115
+ if [ "${DRY_RUN}" = true ]; then
116
+ dry_run_flag=1
117
+ fi
118
+
119
+ local start_time
120
+ start_time=$(date +%s%3N)
121
+
122
+ local lua_result
123
+ lua_result=$(redis_eval_lua "${LUA_SCRIPT}" 0 "${STALE_THRESHOLD_SECONDS}" "${dry_run_flag}") || {
124
+ log "ERROR" "Lua script execution failed"
125
+ return 1
126
+ }
127
+
128
+ local end_time
129
+ end_time=$(date +%s%3N)
130
+ EXECUTION_TIME_MS=$((end_time - start_time))
131
+
132
+ # Parse JSON result
133
+ if command -v jq >/dev/null 2>&1; then
134
+ TOTAL_COORDINATORS_CHECKED=$(echo "${lua_result}" | jq -r '.totalCoordinatorsChecked')
135
+ STALE_COORDINATORS_FOUND=$(echo "${lua_result}" | jq -r '.staleCoordinatorsFound')
136
+ KEYS_DELETED=$(echo "${lua_result}" | jq -r '.keysDeleted')
137
+ local lua_execution_time_ms
138
+ lua_execution_time_ms=$(echo "${lua_result}" | jq -r '.executionTimeMs')
139
+
140
+ log "INFO" "Lua script execution time: ${lua_execution_time_ms}ms (server-side)"
141
+ log "INFO" "Total round-trip time: ${EXECUTION_TIME_MS}ms (including network)"
142
+
143
+ # Log stale coordinator IDs if any found
144
+ local stale_ids
145
+ stale_ids=$(echo "${lua_result}" | jq -r '.staleCoordinatorIds[]' 2>/dev/null || echo "")
146
+ if [ -n "${stale_ids}" ]; then
147
+ log "DEBUG" "Stale coordinator IDs: ${stale_ids}"
148
+ fi
149
+ else
150
+ log "WARN" "jq not found, cannot parse Lua script output"
151
+ log "INFO" "Raw output: ${lua_result}"
152
+ return 1
153
+ fi
154
+
155
+ return 0
156
+ }
157
+
158
+ # Redis SCAN wrapper (non-blocking alternative to KEYS)
159
+ redis_scan() {
160
+ local pattern="$1"
161
+ local cursor=0
162
+ local keys=()
163
+
164
+ while true; do
165
+ # SCAN returns: [cursor, [key1, key2, ...]]
166
+ local result
167
+ result=$(redis_cmd SCAN "${cursor}" MATCH "${pattern}" COUNT 100)
168
+
169
+ # Extract new cursor (first line)
170
+ cursor=$(echo "${result}" | head -n 1)
171
+
172
+ # Extract keys (remaining lines)
173
+ local batch_keys
174
+ batch_keys=$(echo "${result}" | tail -n +2)
175
+
176
+ # Add to results
177
+ if [ -n "${batch_keys}" ]; then
178
+ keys+=( ${batch_keys} )
179
+ fi
180
+
181
+ # Check if scan is complete
182
+ if [ "${cursor}" = "0" ]; then
183
+ break
184
+ fi
185
+ done
186
+
187
+ # Return unique keys (SCAN may return duplicates)
188
+ printf '%s\n' "${keys[@]}" | sort -u
189
+ }
190
+
191
+ # Get current Unix timestamp
192
+ current_timestamp() {
193
+ date +%s
194
+ }
195
+
196
+ # Calculate age of heartbeat in seconds
197
+ get_heartbeat_age() {
198
+ local heartbeat_key="$1"
199
+
200
+ # Get heartbeat timestamp from Redis
201
+ local heartbeat_value
202
+ heartbeat_value=$(redis_cmd GET "${heartbeat_key}")
203
+
204
+ if [ -z "${heartbeat_value}" ]; then
205
+ echo "-1" # Heartbeat not found
206
+ return
207
+ fi
208
+
209
+ # Parse JSON to extract timestamp (format: {"coordinatorId":"...","timestamp":1234567890,...})
210
+ local heartbeat_timestamp
211
+ heartbeat_timestamp=$(echo "${heartbeat_value}" | grep -oP '(?<="timestamp":)\d+' || echo "0")
212
+
213
+ if [ "${heartbeat_timestamp}" = "0" ]; then
214
+ echo "-1" # Invalid timestamp
215
+ return
216
+ fi
217
+
218
+ # Calculate age
219
+ local now
220
+ now=$(current_timestamp)
221
+ local age=$((now - heartbeat_timestamp / 1000)) # Convert ms to seconds
222
+
223
+ echo "${age}"
224
+ }
225
+
226
+ # Cleanup coordinator state (bash fallback implementation)
227
+ cleanup_coordinator() {
228
+ local coordinator_id="$1"
229
+ local age_seconds="$2"
230
+
231
+ log "INFO" "Cleaning up stale coordinator: ${coordinator_id} (age: ${age_seconds}s, threshold: ${STALE_THRESHOLD_SECONDS}s)"
232
+
233
+ local keys_to_delete=()
234
+
235
+ # 1. Heartbeat key
236
+ keys_to_delete+=( "blocking:heartbeat:${coordinator_id}" )
237
+
238
+ # 2. Signal ACK keys (blocking:ack:coordinatorId:*)
239
+ local ack_keys
240
+ ack_keys=$(redis_scan "blocking:ack:${coordinator_id}:*")
241
+ if [ -n "${ack_keys}" ]; then
242
+ while IFS= read -r key; do
243
+ keys_to_delete+=( "${key}" )
244
+ done <<< "${ack_keys}"
245
+ fi
246
+
247
+ # 3. Signal key (blocking:signal:coordinatorId)
248
+ keys_to_delete+=( "blocking:signal:${coordinator_id}" )
249
+
250
+ # 4. Idempotency keys (blocking:idempotency:*coordinatorId*)
251
+ local idempotency_keys
252
+ idempotency_keys=$(redis_scan "blocking:idempotency:*${coordinator_id}*")
253
+ if [ -n "${idempotency_keys}" ]; then
254
+ while IFS= read -r key; do
255
+ keys_to_delete+=( "${key}" )
256
+ done <<< "${idempotency_keys}"
257
+ fi
258
+
259
+ # 5. Activity tracking key
260
+ keys_to_delete+=( "coordinator:activity:${coordinator_id}" )
261
+
262
+ # Log keys to delete
263
+ local key_count=${#keys_to_delete[@]}
264
+ log "DEBUG" "Found ${key_count} keys to delete for coordinator ${coordinator_id}"
265
+
266
+ if [ "${DRY_RUN}" = true ]; then
267
+ log "INFO" "[DRY-RUN] Would delete ${key_count} keys for coordinator ${coordinator_id}"
268
+ for key in "${keys_to_delete[@]}"; do
269
+ log "DEBUG" "[DRY-RUN] Would delete: ${key}"
270
+ done
271
+ else
272
+ # Delete keys in batch
273
+ if [ ${key_count} -gt 0 ]; then
274
+ redis_cmd DEL "${keys_to_delete[@]}" >/dev/null || {
275
+ log "ERROR" "Failed to delete keys for coordinator ${coordinator_id}"
276
+ CLEANUP_ERRORS=$((CLEANUP_ERRORS + 1))
277
+ return 1
278
+ }
279
+
280
+ KEYS_DELETED=$((KEYS_DELETED + key_count))
281
+ log "INFO" "Deleted ${key_count} keys for coordinator ${coordinator_id}"
282
+ fi
283
+ fi
284
+
285
+ STALE_COORDINATORS_FOUND=$((STALE_COORDINATORS_FOUND + 1))
286
+ return 0
287
+ }
288
+
289
+ # Bash fallback cleanup implementation
290
+ cleanup_bash() {
291
+ log "INFO" "Using bash fallback implementation for cleanup"
292
+
293
+ local start_time
294
+ start_time=$(date +%s%3N)
295
+
296
+ # Find all blocking:heartbeat:* keys using SCAN
297
+ log "INFO" "Scanning for blocking coordinator heartbeats..."
298
+
299
+ local heartbeat_keys
300
+ heartbeat_keys=$(redis_scan "blocking:heartbeat:*")
301
+
302
+ if [ -z "${heartbeat_keys}" ]; then
303
+ log "INFO" "No coordinator heartbeats found"
304
+ log "INFO" "Cleanup complete (nothing to do)"
305
+ return 0
306
+ fi
307
+
308
+ # Process each heartbeat
309
+ while IFS= read -r heartbeat_key; do
310
+ TOTAL_COORDINATORS_CHECKED=$((TOTAL_COORDINATORS_CHECKED + 1))
311
+
312
+ # Extract coordinator ID from key: blocking:heartbeat:{coordinatorId}
313
+ local coordinator_id
314
+ coordinator_id=$(echo "${heartbeat_key}" | sed 's/^blocking:heartbeat://')
315
+
316
+ log "DEBUG" "Checking coordinator: ${coordinator_id}"
317
+
318
+ # Get heartbeat age
319
+ local age_seconds
320
+ age_seconds=$(get_heartbeat_age "${heartbeat_key}")
321
+
322
+ if [ "${age_seconds}" = "-1" ]; then
323
+ log "WARN" "Invalid or missing heartbeat for coordinator: ${coordinator_id}"
324
+ continue
325
+ fi
326
+
327
+ # Check if stale
328
+ if [ "${age_seconds}" -gt "${STALE_THRESHOLD_SECONDS}" ]; then
329
+ log "WARN" "Stale coordinator detected: ${coordinator_id} (age: ${age_seconds}s)"
330
+ cleanup_coordinator "${coordinator_id}" "${age_seconds}" || true
331
+ else
332
+ log "DEBUG" "Coordinator active: ${coordinator_id} (age: ${age_seconds}s)"
333
+ fi
334
+ done <<< "${heartbeat_keys}"
335
+
336
+ local end_time
337
+ end_time=$(date +%s%3N)
338
+ EXECUTION_TIME_MS=$((end_time - start_time))
339
+
340
+ log "INFO" "Bash fallback execution time: ${EXECUTION_TIME_MS}ms"
341
+
342
+ return 0
343
+ }
344
+
345
+ # ===== MAIN EXECUTION =====
346
+
347
+ main() {
348
+ # Parse command line arguments
349
+ while [[ $# -gt 0 ]]; do
350
+ case $1 in
351
+ --dry-run)
352
+ DRY_RUN=true
353
+ shift
354
+ ;;
355
+ --fallback)
356
+ FORCE_FALLBACK=true
357
+ shift
358
+ ;;
359
+ *)
360
+ echo "Unknown option: $1"
361
+ echo "Usage: $0 [--dry-run] [--fallback]"
362
+ exit 2
363
+ ;;
364
+ esac
365
+ done
366
+
367
+ # Create log directory if it doesn't exist
368
+ mkdir -p "${LOG_DIR}"
369
+
370
+ # Start cleanup
371
+ log "INFO" "========================================"
372
+ log "INFO" "Blocking Coordination Cleanup Started"
373
+ log "INFO" "Dry-run mode: ${DRY_RUN}"
374
+ log "INFO" "Stale threshold: ${STALE_THRESHOLD_SECONDS}s"
375
+ log "INFO" "Force fallback: ${FORCE_FALLBACK}"
376
+ log "INFO" "========================================"
377
+
378
+ # Check Redis connection
379
+ if ! redis_cmd PING >/dev/null 2>&1; then
380
+ log "ERROR" "Redis connection failed (host: ${REDIS_HOST}, port: ${REDIS_PORT})"
381
+ log "ERROR" "Cleanup aborted"
382
+ exit 1
383
+ fi
384
+
385
+ log "INFO" "Redis connection established"
386
+
387
+ # Execute cleanup: Try Lua first, fallback to bash if needed
388
+ if [ "${FORCE_FALLBACK}" = true ]; then
389
+ log "INFO" "Fallback mode forced via --fallback flag"
390
+ cleanup_bash
391
+ else
392
+ if ! cleanup_lua; then
393
+ log "WARN" "Lua cleanup failed, falling back to bash implementation"
394
+ cleanup_bash
395
+ fi
396
+ fi
397
+
398
+ # Log summary
399
+ log "INFO" "========================================"
400
+ log "INFO" "Cleanup Summary:"
401
+ log "INFO" " Total coordinators checked: ${TOTAL_COORDINATORS_CHECKED}"
402
+ log "INFO" " Stale coordinators found: ${STALE_COORDINATORS_FOUND}"
403
+ log "INFO" " Keys deleted: ${KEYS_DELETED}"
404
+ log "INFO" " Cleanup errors: ${CLEANUP_ERRORS}"
405
+ log "INFO" " Execution time: ${EXECUTION_TIME_MS}ms"
406
+ log "INFO" " Performance: $(awk "BEGIN {printf \"%.2f\", ${TOTAL_COORDINATORS_CHECKED} / (${EXECUTION_TIME_MS} / 1000.0)}" 2>/dev/null || echo "N/A") coordinators/sec"
407
+ log "INFO" "========================================"
408
+
409
+ # Exit code based on errors
410
+ if [ ${CLEANUP_ERRORS} -gt 0 ]; then
411
+ log "ERROR" "Cleanup completed with ${CLEANUP_ERRORS} errors"
412
+ exit 2
413
+ else
414
+ log "INFO" "Cleanup completed successfully"
415
+ exit 0
416
+ fi
417
+ }
418
+
419
+ # Execute main function
420
+ main "$@"
@@ -0,0 +1,59 @@
1
+ #!/bin/bash
2
+ # Cleanup Idle Claude Sessions
3
+ # Kills Claude processes with 0% CPU (idle/orphaned) older than 30 minutes
4
+ # Safe for automated execution - preserves active sessions
5
+
6
+ set -e
7
+
8
+ LOGFILE="${HOME}/.claude-flow/logs/session-cleanup.log"
9
+ mkdir -p "$(dirname "$LOGFILE")"
10
+
11
+ log() {
12
+ echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" | tee -a "$LOGFILE"
13
+ }
14
+
15
+ log "=== Starting Idle Session Cleanup ==="
16
+
17
+ # Get list of idle Claude sessions (0% CPU), excluding this script and bash processes
18
+ IDLE_PIDS=$(ps -eo pid,%cpu,etime,cmd | grep claude | grep -v grep | grep -v "cleanup-idle-sessions" | grep -v "^[[:space:]]*[0-9]*[[:space:]]*0.0.*bash" | awk '$2 == 0.0 {print $1}' || true)
19
+
20
+ if [ -z "$IDLE_PIDS" ]; then
21
+ log "No idle sessions found. All sessions active."
22
+ exit 0
23
+ fi
24
+
25
+ # Count idle sessions
26
+ IDLE_COUNT=$(echo "$IDLE_PIDS" | wc -l)
27
+ log "Found $IDLE_COUNT idle Claude session(s)"
28
+
29
+ # Get memory before cleanup
30
+ BEFORE_MEM=$(ps aux | grep -E '(claude|node)' | grep -v grep | grep -v snapfuse | awk '{sum+=$6} END {printf "%.1f", sum/1024/1024}')
31
+ log "Memory before cleanup: ${BEFORE_MEM}GB"
32
+
33
+ # Kill idle sessions
34
+ for PID in $IDLE_PIDS; do
35
+ # Get process details before killing
36
+ DETAILS=$(ps -eo pid,etime,cputime,%cpu,%mem,rss,cmd | grep "^${PID}" | head -1 || echo "N/A")
37
+ log "Killing idle session: $DETAILS"
38
+
39
+ kill -9 "$PID" 2>/dev/null || log " Warning: Could not kill PID $PID (already terminated?)"
40
+ done
41
+
42
+ # Wait for processes to terminate
43
+ sleep 2
44
+
45
+ # Get memory after cleanup
46
+ AFTER_MEM=$(ps aux | grep -E '(claude|node)' | grep -v grep | grep -v snapfuse | awk '{sum+=$6} END {printf "%.1f", sum/1024/1024}')
47
+ FREED_MEM=$(echo "$BEFORE_MEM - $AFTER_MEM" | bc)
48
+ log "Memory after cleanup: ${AFTER_MEM}GB"
49
+ log "Memory freed: ${FREED_MEM}GB"
50
+
51
+ # Get remaining active sessions
52
+ ACTIVE_COUNT=$(ps aux | grep claude | grep -v grep | wc -l)
53
+ log "Active sessions remaining: $ACTIVE_COUNT"
54
+
55
+ log "=== Cleanup Complete ==="
56
+ log ""
57
+
58
+ # Return summary
59
+ echo "{\"idle_killed\": $IDLE_COUNT, \"active_remaining\": $ACTIVE_COUNT, \"memory_freed_gb\": $FREED_MEM}"
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Standardized build metrics collection
4
+ * Usage: node scripts/collect-build-metrics.js [--json]
5
+ *
6
+ * Prevents ambiguous metrics like Sprint 7.1's "691 files compiled"
7
+ * See CLAUDE.md Section 11 for reporting standards
8
+ */
9
+
10
+ import { execSync } from 'child_process';
11
+ import { existsSync } from 'fs';
12
+
13
+ function countFiles(pattern, dir = 'src') {
14
+ try {
15
+ const cmd = `find ${dir} -name "${pattern}" 2>/dev/null | wc -l`;
16
+ return parseInt(execSync(cmd, { encoding: 'utf8' }).trim());
17
+ } catch {
18
+ return 0;
19
+ }
20
+ }
21
+
22
+ function collectMetrics() {
23
+ const metrics = {
24
+ source_files: {
25
+ typescript: countFiles('*.ts') + countFiles('*.tsx'),
26
+ javascript: countFiles('*.js'),
27
+ jsx: countFiles('*.jsx')
28
+ },
29
+ output_files: {
30
+ javascript: countFiles('*.js', '.claude-flow-novice/dist') || countFiles('*.js', 'dist'),
31
+ sourcemaps: countFiles('*.map', '.claude-flow-novice/dist') || countFiles('*.map', 'dist')
32
+ },
33
+ dist_exists: existsSync('.claude-flow-novice/dist') || existsSync('dist')
34
+ };
35
+
36
+ if (metrics.source_files.typescript > 0 && metrics.output_files.javascript > 0) {
37
+ metrics.compilation_ratio =
38
+ ((metrics.output_files.javascript * 100) / metrics.source_files.typescript).toFixed(1) + '%';
39
+ }
40
+
41
+ return metrics;
42
+ }
43
+
44
+ const metrics = collectMetrics();
45
+
46
+ if (process.argv.includes('--json')) {
47
+ console.log(JSON.stringify(metrics, null, 2));
48
+ } else {
49
+ console.log('šŸ“Š Build Metrics Report');
50
+ console.log('═'.repeat(50));
51
+ console.log(`\nSource Files:`);
52
+ console.log(` TypeScript: ${metrics.source_files.typescript} files`);
53
+ console.log(` JavaScript: ${metrics.source_files.javascript} files`);
54
+ console.log(`\nOutput Files (dist/):`);
55
+ console.log(` JavaScript: ${metrics.output_files.javascript} files`);
56
+ console.log(` Source Maps: ${metrics.output_files.sourcemaps} files`);
57
+ if (metrics.compilation_ratio) {
58
+ console.log(`\nCompilation Ratio: ${metrics.compilation_ratio}`);
59
+ console.log(`(Lower ratio = better tree-shaking)`);
60
+ }
61
+
62
+ if (!metrics.dist_exists) {
63
+ console.log('\nāš ļø Warning: dist/ directory not found. Run build first.');
64
+ }
65
+ }
@@ -0,0 +1,79 @@
1
+ # Demo and Performance Scripts
2
+
3
+ This directory contains demonstration and performance analysis scripts for the claude-flow-novice framework.
4
+
5
+ ## Demo Scripts
6
+
7
+ ### Swarm Coordination Demos
8
+ - **autoscaling-demo-simplified.js** - Simplified autoscaling demonstration
9
+ - **test-autoscaling-demo.js** - Autoscaling test scenarios
10
+ - **demo-multi-swarm-coordination.js** - Multi-swarm coordination patterns
11
+ - **demo-production-deployment.js** - Production deployment workflows
12
+ - **demo-visualization-system.js** - Visualization system capabilities
13
+
14
+ ### Dashboard and Monitoring
15
+ - **comprehensive-dashboard-test.js** - Complete dashboard functionality test
16
+
17
+ ## Performance Analysis
18
+
19
+ ### Analysis Tools
20
+ - **performance-analysis.js** - Main performance analysis tool (ES modules)
21
+ - **performance-analysis.cjs** - Performance analysis tool (CommonJS)
22
+
23
+ ### Confidence Metrics
24
+ - **confidence-log.js** - Confidence metric logging
25
+ - **confidence-report.js** - Confidence report generation
26
+
27
+ ## Usage
28
+
29
+ ### Running Demo Scripts
30
+ ```bash
31
+ # Swarm coordination demo
32
+ node scripts/demo/demo-multi-swarm-coordination.js
33
+
34
+ # Production deployment demo
35
+ node scripts/demo/demo-production-deployment.js
36
+
37
+ # Visualization system demo
38
+ node scripts/demo/demo-visualization-system.js
39
+
40
+ # Autoscaling demo
41
+ node scripts/demo/autoscaling-demo-simplified.js
42
+ ```
43
+
44
+ ### Running Performance Analysis
45
+ ```bash
46
+ # ES module version
47
+ node scripts/demo/performance-analysis.js
48
+
49
+ # CommonJS version
50
+ node scripts/demo/performance-analysis.cjs
51
+ ```
52
+
53
+ ### Monitoring and Confidence
54
+ ```bash
55
+ # Generate confidence logs
56
+ node scripts/demo/confidence-log.js
57
+
58
+ # Generate confidence reports
59
+ node scripts/demo/confidence-report.js
60
+
61
+ # Dashboard test
62
+ node scripts/demo/comprehensive-dashboard-test.js
63
+ ```
64
+
65
+ ## Purpose
66
+
67
+ These scripts demonstrate:
68
+ 1. **Swarm Orchestration** - Multi-agent coordination patterns
69
+ 2. **Performance Profiling** - System performance analysis
70
+ 3. **Confidence Metrics** - Agent confidence tracking and reporting
71
+ 4. **Visualization** - Dashboard and monitoring capabilities
72
+ 5. **Production Workflows** - Deployment and scaling patterns
73
+
74
+ ## Notes
75
+
76
+ - Demo scripts are for demonstration and testing purposes
77
+ - Performance scripts analyze system metrics and agent efficiency
78
+ - Confidence scripts track and report agent confidence scores
79
+ - All scripts use the production swarm infrastructure