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,307 @@
1
+ #!/usr/bin/env bash
2
+ # scripts/monitoring/view-alerts.sh - Real-time alert visualization dashboard
3
+ # Phase 1 Sprint 1.1: Alert dashboard
4
+
5
+ set -euo pipefail
6
+
7
+ # ==============================================================================
8
+ # CONFIGURATION
9
+ # ==============================================================================
10
+
11
+ ALERT_LOG_FILE="${ALERT_LOG_FILE:-/dev/shm/cfn-alerts.jsonl}"
12
+ REFRESH_INTERVAL="${REFRESH_INTERVAL:-1}" # Seconds
13
+
14
+ # ==============================================================================
15
+ # DISPLAY FUNCTIONS
16
+ # ==============================================================================
17
+
18
+ # format_alert - Convert alert JSON to human-readable format
19
+ format_alert() {
20
+ local line="$1"
21
+
22
+ # Parse JSON fields
23
+ local timestamp alert_type message severity
24
+
25
+ timestamp=$(echo "$line" | jq -r '.timestamp // "unknown"' 2>/dev/null || echo "unknown")
26
+ alert_type=$(echo "$line" | jq -r '.alert // "unknown"' 2>/dev/null || echo "unknown")
27
+ message=$(echo "$line" | jq -r '.message // "no message"' 2>/dev/null || echo "no message")
28
+ severity=$(echo "$line" | jq -r '.severity // "info"' 2>/dev/null || echo "info")
29
+
30
+ # Format timestamp (remove milliseconds for readability)
31
+ local display_time
32
+ display_time=$(echo "$timestamp" | cut -d'.' -f1 | sed 's/T/ /')
33
+
34
+ # Color-code based on severity
35
+ local color_code reset_code
36
+ reset_code="\033[0m"
37
+
38
+ case "$severity" in
39
+ critical)
40
+ color_code="\033[1;31m" # Bright red
41
+ ;;
42
+ warning)
43
+ color_code="\033[1;33m" # Bright yellow
44
+ ;;
45
+ info)
46
+ color_code="\033[1;36m" # Bright cyan
47
+ ;;
48
+ *)
49
+ color_code="\033[0m" # Default
50
+ ;;
51
+ esac
52
+
53
+ # Format output: [timestamp] [severity] alert_type: message
54
+ echo -e "${color_code}[${display_time}] [${severity^^}] ${alert_type}: ${message}${reset_code}"
55
+ }
56
+
57
+ # show_alert_summary - Display alert statistics
58
+ show_alert_summary() {
59
+ local time_window="${1:-60}" # Minutes
60
+
61
+ echo ""
62
+ echo "=========================================="
63
+ echo "ALERT SUMMARY (Last ${time_window} minutes)"
64
+ echo "=========================================="
65
+
66
+ if [ ! -f "$ALERT_LOG_FILE" ]; then
67
+ echo "No alerts found."
68
+ return
69
+ fi
70
+
71
+ # Get cutoff time
72
+ local cutoff_time
73
+ cutoff_time=$(date -u -d "$time_window minutes ago" +"%Y-%m-%dT%H:%M:%S" 2>/dev/null || \
74
+ date -u -v-"${time_window}M" +"%Y-%m-%dT%H:%M:%S" 2>/dev/null || \
75
+ echo "1970-01-01T00:00:00")
76
+
77
+ # Calculate statistics
78
+ local total_alerts critical_count warning_count info_count
79
+
80
+ total_alerts=$(jq -c --arg cutoff "$cutoff_time" \
81
+ 'select(.timestamp >= $cutoff)' \
82
+ "$ALERT_LOG_FILE" 2>/dev/null | wc -l)
83
+
84
+ critical_count=$(jq -c --arg cutoff "$cutoff_time" \
85
+ 'select(.timestamp >= $cutoff and .severity == "critical")' \
86
+ "$ALERT_LOG_FILE" 2>/dev/null | wc -l)
87
+
88
+ warning_count=$(jq -c --arg cutoff "$cutoff_time" \
89
+ 'select(.timestamp >= $cutoff and .severity == "warning")' \
90
+ "$ALERT_LOG_FILE" 2>/dev/null | wc -l)
91
+
92
+ info_count=$(jq -c --arg cutoff "$cutoff_time" \
93
+ 'select(.timestamp >= $cutoff and .severity == "info")' \
94
+ "$ALERT_LOG_FILE" 2>/dev/null | wc -l)
95
+
96
+ echo "Total Alerts: $total_alerts"
97
+ echo -e " \033[1;31mCritical: $critical_count\033[0m"
98
+ echo -e " \033[1;33mWarning: $warning_count\033[0m"
99
+ echo -e " \033[1;36mInfo: $info_count\033[0m"
100
+
101
+ # Show top alert types
102
+ echo ""
103
+ echo "Top Alert Types:"
104
+ jq -c --arg cutoff "$cutoff_time" \
105
+ 'select(.timestamp >= $cutoff) | .alert' \
106
+ "$ALERT_LOG_FILE" 2>/dev/null | \
107
+ sort | uniq -c | sort -rn | head -5 | \
108
+ awk '{printf " %s: %d\n", $2, $1}'
109
+
110
+ echo "=========================================="
111
+ echo ""
112
+ }
113
+
114
+ # tail_alerts - Live alert stream (like tail -f)
115
+ tail_alerts() {
116
+ echo "[INFO] Watching for alerts (Ctrl+C to exit)..."
117
+ echo ""
118
+
119
+ # Show recent alerts first
120
+ if [ -f "$ALERT_LOG_FILE" ]; then
121
+ tail -n 10 "$ALERT_LOG_FILE" | while IFS= read -r line; do
122
+ format_alert "$line"
123
+ done
124
+ fi
125
+
126
+ # Follow new alerts
127
+ tail -f "$ALERT_LOG_FILE" 2>/dev/null | while IFS= read -r line; do
128
+ format_alert "$line"
129
+ done
130
+ }
131
+
132
+ # show_recent_alerts - Display N most recent alerts
133
+ show_recent_alerts() {
134
+ local count="${1:-20}"
135
+
136
+ if [ ! -f "$ALERT_LOG_FILE" ]; then
137
+ echo "No alerts found."
138
+ return
139
+ fi
140
+
141
+ echo "=========================================="
142
+ echo "Recent Alerts (Last $count)"
143
+ echo "=========================================="
144
+ echo ""
145
+
146
+ tail -n "$count" "$ALERT_LOG_FILE" | while IFS= read -r line; do
147
+ format_alert "$line"
148
+ done
149
+
150
+ echo ""
151
+ }
152
+
153
+ # filter_alerts - Show alerts matching criteria
154
+ filter_alerts() {
155
+ local filter_type="${1:-}"
156
+ local filter_value="${2:-}"
157
+
158
+ if [ -z "$filter_type" ]; then
159
+ echo "Usage: $0 filter <severity|alert|time> <value>" >&2
160
+ exit 1
161
+ fi
162
+
163
+ if [ ! -f "$ALERT_LOG_FILE" ]; then
164
+ echo "No alerts found."
165
+ return
166
+ fi
167
+
168
+ case "$filter_type" in
169
+ severity)
170
+ jq -c --arg sev "$filter_value" \
171
+ 'select(.severity == $sev)' \
172
+ "$ALERT_LOG_FILE" | while IFS= read -r line; do
173
+ format_alert "$line"
174
+ done
175
+ ;;
176
+
177
+ alert)
178
+ jq -c --arg alert "$filter_value" \
179
+ 'select(.alert == $alert)' \
180
+ "$ALERT_LOG_FILE" | while IFS= read -r line; do
181
+ format_alert "$line"
182
+ done
183
+ ;;
184
+
185
+ time)
186
+ # Filter by time range (e.g., "10m", "1h", "30s")
187
+ local minutes
188
+ case "$filter_value" in
189
+ *m) minutes="${filter_value%m}" ;;
190
+ *h) minutes=$((${filter_value%h} * 60)) ;;
191
+ *s) minutes=$((${filter_value%s} / 60)) ;;
192
+ *) minutes="$filter_value" ;;
193
+ esac
194
+
195
+ local cutoff_time
196
+ cutoff_time=$(date -u -d "$minutes minutes ago" +"%Y-%m-%dT%H:%M:%S" 2>/dev/null || \
197
+ date -u -v-"${minutes}M" +"%Y-%m-%dT%H:%M:%S" 2>/dev/null || \
198
+ echo "1970-01-01T00:00:00")
199
+
200
+ jq -c --arg cutoff "$cutoff_time" \
201
+ 'select(.timestamp >= $cutoff)' \
202
+ "$ALERT_LOG_FILE" | while IFS= read -r line; do
203
+ format_alert "$line"
204
+ done
205
+ ;;
206
+
207
+ *)
208
+ echo "[ERROR] Unknown filter type: $filter_type" >&2
209
+ echo "Valid types: severity, alert, time" >&2
210
+ exit 1
211
+ ;;
212
+ esac
213
+ }
214
+
215
+ # interactive_dashboard - Real-time updating dashboard
216
+ interactive_dashboard() {
217
+ while true; do
218
+ clear
219
+ echo "╔═══════════════════════════════════════════════════════════╗"
220
+ echo "║ CLAUDE FLOW NOVICE - ALERT DASHBOARD ║"
221
+ echo "╚═══════════════════════════════════════════════════════════╝"
222
+ echo ""
223
+
224
+ show_alert_summary 60
225
+
226
+ echo ""
227
+ echo "Recent Alerts (Last 10):"
228
+ echo "----------------------------------------"
229
+
230
+ if [ -f "$ALERT_LOG_FILE" ]; then
231
+ tail -n 10 "$ALERT_LOG_FILE" | while IFS= read -r line; do
232
+ format_alert "$line"
233
+ done
234
+ else
235
+ echo "No alerts yet."
236
+ fi
237
+
238
+ echo ""
239
+ echo "Press Ctrl+C to exit | Refreshing every ${REFRESH_INTERVAL}s..."
240
+
241
+ sleep "$REFRESH_INTERVAL"
242
+ done
243
+ }
244
+
245
+ # ==============================================================================
246
+ # MAIN EXECUTION
247
+ # ==============================================================================
248
+
249
+ case "${1:-tail}" in
250
+ tail)
251
+ tail_alerts
252
+ ;;
253
+
254
+ recent)
255
+ show_recent_alerts "${2:-20}"
256
+ ;;
257
+
258
+ summary)
259
+ show_alert_summary "${2:-60}"
260
+ ;;
261
+
262
+ filter)
263
+ filter_alerts "${2:-}" "${3:-}"
264
+ ;;
265
+
266
+ dashboard)
267
+ interactive_dashboard
268
+ ;;
269
+
270
+ help)
271
+ cat << EOF
272
+ Alert Viewer - Real-time alert monitoring and visualization
273
+
274
+ Usage: $0 <command> [options]
275
+
276
+ Commands:
277
+ tail Live alert stream (default)
278
+ recent [N] Show N most recent alerts (default: 20)
279
+ summary [M] Show alert statistics for last M minutes (default: 60)
280
+ filter <type> <value>
281
+ Filter alerts by severity, alert type, or time
282
+ Examples:
283
+ $0 filter severity critical
284
+ $0 filter alert coordination_time_exceeded
285
+ $0 filter time 30m
286
+ dashboard Interactive real-time dashboard
287
+ help Show this help message
288
+
289
+ Environment Variables:
290
+ ALERT_LOG_FILE Path to alert log (default: /dev/shm/cfn-alerts.jsonl)
291
+ REFRESH_INTERVAL Dashboard refresh rate in seconds (default: 1)
292
+
293
+ Examples:
294
+ $0 tail # Live alert stream
295
+ $0 recent 50 # Last 50 alerts
296
+ $0 summary 120 # Stats for last 2 hours
297
+ $0 filter severity critical # Show only critical alerts
298
+ $0 dashboard # Interactive dashboard
299
+ EOF
300
+ ;;
301
+
302
+ *)
303
+ echo "Unknown command: $1" >&2
304
+ echo "Run '$0 help' for usage information" >&2
305
+ exit 1
306
+ ;;
307
+ esac