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,502 @@
1
+ #!/usr/bin/env bash
2
+ # Docker/K8s Infrastructure Validation Script
3
+ # Phase 2 Sprint 2.3 - Production Deployment Readiness
4
+ #
5
+ # Validates:
6
+ # - Docker configuration syntax
7
+ # - Kubernetes manifests
8
+ # - tmpfs configuration
9
+ # - Security settings
10
+ # - Resource limits
11
+ # - Network configuration
12
+
13
+ set -euo pipefail
14
+
15
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
17
+ DOCKER_DIR="$PROJECT_ROOT/config/docker"
18
+ K8S_DIR="$PROJECT_ROOT/config/k8s"
19
+
20
+ # Colors for output
21
+ RED='\033[0;31m'
22
+ GREEN='\033[0;32m'
23
+ YELLOW='\033[1;33m'
24
+ NC='\033[0m'
25
+
26
+ # Validation results
27
+ TOTAL_CHECKS=0
28
+ PASSED_CHECKS=0
29
+ FAILED_CHECKS=0
30
+ WARNINGS=0
31
+
32
+ log_info() {
33
+ echo -e "${GREEN}[INFO]${NC} $*"
34
+ }
35
+
36
+ log_warn() {
37
+ echo -e "${YELLOW}[WARN]${NC} $*"
38
+ WARNINGS=$((WARNINGS + 1))
39
+ }
40
+
41
+ log_error() {
42
+ echo -e "${RED}[ERROR]${NC} $*"
43
+ FAILED_CHECKS=$((FAILED_CHECKS + 1))
44
+ }
45
+
46
+ log_pass() {
47
+ echo -e "${GREEN}[PASS]${NC} $*"
48
+ PASSED_CHECKS=$((PASSED_CHECKS + 1))
49
+ }
50
+
51
+ check_result() {
52
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
53
+ if [ $1 -eq 0 ]; then
54
+ log_pass "$2"
55
+ else
56
+ log_error "$2"
57
+ fi
58
+ }
59
+
60
+ # ==============================================================================
61
+ # DOCKER VALIDATION
62
+ # ==============================================================================
63
+
64
+ validate_docker_compose() {
65
+ log_info "Validating Docker Compose configurations..."
66
+
67
+ # Check if docker-compose.yml exists
68
+ if [ ! -f "$DOCKER_DIR/docker-compose.yml" ]; then
69
+ log_error "docker-compose.yml not found"
70
+ return 1
71
+ fi
72
+ log_pass "docker-compose.yml exists"
73
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
74
+
75
+ # Validate YAML syntax
76
+ if command -v docker-compose &> /dev/null; then
77
+ if docker-compose -f "$DOCKER_DIR/docker-compose.yml" config > /dev/null 2>&1; then
78
+ log_pass "docker-compose.yml syntax is valid"
79
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
80
+ else
81
+ log_error "docker-compose.yml has syntax errors"
82
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
83
+ fi
84
+ else
85
+ log_warn "docker-compose not installed, skipping syntax validation"
86
+ fi
87
+
88
+ # Check tmpfs configuration
89
+ if grep -q "tmpfs:" "$DOCKER_DIR/docker-compose.yml"; then
90
+ log_pass "tmpfs configuration found"
91
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
92
+ else
93
+ log_error "tmpfs configuration missing (required for message-bus)"
94
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
95
+ fi
96
+
97
+ # Check shm_size configuration
98
+ if grep -q "shm_size:" "$DOCKER_DIR/docker-compose.yml"; then
99
+ local shm_size=$(grep "shm_size:" "$DOCKER_DIR/docker-compose.yml" | head -1 | awk '{print $2}')
100
+ if [[ "$shm_size" =~ ^[0-9]+[gG]$ ]]; then
101
+ local size_gb=${shm_size//[gG]/}
102
+ if [ "$size_gb" -ge 1 ]; then
103
+ log_pass "shm_size is adequate: $shm_size"
104
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
105
+ else
106
+ log_warn "shm_size may be insufficient: $shm_size (recommend >=1g)"
107
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
108
+ fi
109
+ fi
110
+ else
111
+ log_error "shm_size not configured (required for multi-agent coordination)"
112
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
113
+ fi
114
+
115
+ # Check memory limits
116
+ if grep -q "mem_limit:" "$DOCKER_DIR/docker-compose.yml"; then
117
+ log_pass "Memory limits configured"
118
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
119
+ else
120
+ log_warn "Memory limits not set (recommended for production)"
121
+ fi
122
+
123
+ # Check security settings
124
+ if grep -q "cap_drop:" "$DOCKER_DIR/docker-compose.yml"; then
125
+ log_pass "Security capabilities configured (cap_drop)"
126
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
127
+ else
128
+ log_warn "Security capabilities not configured"
129
+ fi
130
+
131
+ # Check healthcheck
132
+ if grep -q "healthcheck:" "$DOCKER_DIR/docker-compose.yml"; then
133
+ log_pass "Health check configured"
134
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
135
+ else
136
+ log_warn "Health check not configured"
137
+ fi
138
+
139
+ # Check Prometheus integration
140
+ if grep -q "prometheus:" "$DOCKER_DIR/docker-compose.yml"; then
141
+ log_pass "Prometheus monitoring configured"
142
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
143
+ else
144
+ log_error "Prometheus monitoring missing"
145
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
146
+ fi
147
+ }
148
+
149
+ validate_dockerfile() {
150
+ log_info "Validating Dockerfile..."
151
+
152
+ if [ ! -f "$PROJECT_ROOT/Dockerfile" ]; then
153
+ log_error "Dockerfile not found"
154
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
155
+ return 1
156
+ fi
157
+ log_pass "Dockerfile exists"
158
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
159
+
160
+ # Check multi-stage build
161
+ local stage_count=$(grep -c "^FROM" "$PROJECT_ROOT/Dockerfile" || echo "0")
162
+ if [ "$stage_count" -ge 2 ]; then
163
+ log_pass "Multi-stage build configured ($stage_count stages)"
164
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
165
+ else
166
+ log_warn "Single-stage build detected (multi-stage recommended for production)"
167
+ fi
168
+
169
+ # Check non-root user
170
+ if grep -q "USER" "$PROJECT_ROOT/Dockerfile"; then
171
+ log_pass "Non-root user configured"
172
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
173
+ else
174
+ log_error "Container runs as root (security risk)"
175
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
176
+ fi
177
+
178
+ # Check healthcheck
179
+ if grep -q "HEALTHCHECK" "$PROJECT_ROOT/Dockerfile"; then
180
+ log_pass "Dockerfile healthcheck configured"
181
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
182
+ else
183
+ log_warn "No Dockerfile healthcheck"
184
+ fi
185
+
186
+ # Check signal handling
187
+ if grep -q "dumb-init" "$PROJECT_ROOT/Dockerfile" || grep -q "tini" "$PROJECT_ROOT/Dockerfile"; then
188
+ log_pass "Signal handling configured (init system)"
189
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
190
+ else
191
+ log_warn "No init system (signals may not be handled properly)"
192
+ fi
193
+ }
194
+
195
+ validate_stability_test_config() {
196
+ log_info "Validating stability test configuration..."
197
+
198
+ if [ ! -f "$DOCKER_DIR/docker-compose.stability-test.yml" ]; then
199
+ log_error "docker-compose.stability-test.yml not found"
200
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
201
+ return 1
202
+ fi
203
+ log_pass "Stability test configuration exists"
204
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
205
+
206
+ # Check 50-agent configuration
207
+ if grep -q "CFN_MAX_AGENTS=50" "$DOCKER_DIR/docker-compose.stability-test.yml"; then
208
+ log_pass "50-agent load test configured"
209
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
210
+ else
211
+ log_warn "50-agent configuration not found"
212
+ fi
213
+
214
+ # Check 8-hour duration
215
+ if grep -q "TEST_DURATION_HOURS=8" "$DOCKER_DIR/docker-compose.stability-test.yml"; then
216
+ log_pass "8-hour duration configured"
217
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
218
+ else
219
+ log_warn "8-hour test duration not configured"
220
+ fi
221
+
222
+ # Check Prometheus integration
223
+ if grep -q "prometheus:" "$DOCKER_DIR/docker-compose.stability-test.yml"; then
224
+ log_pass "Stability test Prometheus integration configured"
225
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
226
+ else
227
+ log_error "Stability test missing Prometheus"
228
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
229
+ fi
230
+ }
231
+
232
+ # ==============================================================================
233
+ # KUBERNETES VALIDATION
234
+ # ==============================================================================
235
+
236
+ validate_k8s_manifests() {
237
+ log_info "Validating Kubernetes manifests..."
238
+
239
+ if [ ! -d "$K8S_DIR" ]; then
240
+ log_error "Kubernetes configuration directory not found"
241
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
242
+ return 1
243
+ fi
244
+
245
+ # Check ConfigMaps
246
+ local configmap_count=$(find "$K8S_DIR" -name "configmap-*.yaml" | wc -l)
247
+ if [ "$configmap_count" -ge 3 ]; then
248
+ log_pass "ConfigMaps found for all environments ($configmap_count)"
249
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
250
+ else
251
+ log_warn "Insufficient ConfigMaps (found: $configmap_count, expected: >=3)"
252
+ fi
253
+
254
+ # Check production ConfigMap
255
+ if [ -f "$K8S_DIR/configmap-production.yaml" ]; then
256
+ log_pass "Production ConfigMap exists"
257
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
258
+
259
+ # Validate tmpfs configuration
260
+ if grep -q "CFN_BASE_DIR.*shm" "$K8S_DIR/configmap-production.yaml"; then
261
+ log_pass "Production ConfigMap uses tmpfs (/dev/shm)"
262
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
263
+ else
264
+ log_error "Production ConfigMap missing tmpfs configuration"
265
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
266
+ fi
267
+
268
+ # Check agent limits
269
+ if grep -q "CFN_MAX_AGENTS.*500" "$K8S_DIR/configmap-production.yaml"; then
270
+ log_pass "Production ConfigMap supports 500 agents"
271
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
272
+ else
273
+ log_warn "Production agent limit not set to 500"
274
+ fi
275
+
276
+ # Check security settings
277
+ if grep -q "CFN_ENABLE_AGENT_AUTH.*true" "$K8S_DIR/configmap-production.yaml"; then
278
+ log_pass "Production authentication enabled"
279
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
280
+ else
281
+ log_error "Production authentication not enabled"
282
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
283
+ fi
284
+
285
+ if grep -q "CFN_ENABLE_TLS.*true" "$K8S_DIR/configmap-production.yaml"; then
286
+ log_pass "Production TLS enabled"
287
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
288
+ else
289
+ log_error "Production TLS not enabled"
290
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
291
+ fi
292
+ else
293
+ log_error "Production ConfigMap not found"
294
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
295
+ fi
296
+
297
+ # Check Secrets
298
+ local secret_count=$(find "$K8S_DIR" -name "secret-*.yaml" | wc -l)
299
+ if [ "$secret_count" -ge 2 ]; then
300
+ log_pass "Secrets found for production/staging ($secret_count)"
301
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
302
+ else
303
+ log_warn "Insufficient Secrets (found: $secret_count, expected: >=2)"
304
+ fi
305
+
306
+ # Validate YAML syntax if kubectl is available
307
+ if command -v kubectl &> /dev/null; then
308
+ local yaml_valid=true
309
+ for yaml_file in "$K8S_DIR"/*.yaml; do
310
+ if ! kubectl apply --dry-run=client -f "$yaml_file" > /dev/null 2>&1; then
311
+ log_error "Invalid YAML: $(basename "$yaml_file")"
312
+ yaml_valid=false
313
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
314
+ fi
315
+ done
316
+ if [ "$yaml_valid" = true ]; then
317
+ log_pass "All Kubernetes manifests have valid syntax"
318
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
319
+ fi
320
+ else
321
+ log_warn "kubectl not installed, skipping YAML validation"
322
+ fi
323
+ }
324
+
325
+ # ==============================================================================
326
+ # INFRASTRUCTURE REQUIREMENTS
327
+ # ==============================================================================
328
+
329
+ validate_infrastructure_requirements() {
330
+ log_info "Validating infrastructure requirements..."
331
+
332
+ # Check required directories
333
+ local required_dirs=("lib" "scripts" "tests/integration" "config")
334
+ for dir in "${required_dirs[@]}"; do
335
+ if [ -d "$PROJECT_ROOT/$dir" ]; then
336
+ log_pass "Required directory exists: $dir"
337
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
338
+ else
339
+ log_error "Missing required directory: $dir"
340
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
341
+ fi
342
+ done
343
+
344
+ # Check coordination libraries
345
+ local required_libs=("message-bus.sh" "health.sh" "auth.sh")
346
+ for lib in "${required_libs[@]}"; do
347
+ if [ -f "$PROJECT_ROOT/lib/$lib" ]; then
348
+ log_pass "Coordination library exists: $lib"
349
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
350
+ else
351
+ log_error "Missing coordination library: $lib"
352
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
353
+ fi
354
+ done
355
+
356
+ # Check test files
357
+ if [ -f "$PROJECT_ROOT/tests/integration/100-agent-coordination.test.sh" ]; then
358
+ log_pass "100-agent coordination test exists"
359
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
360
+ else
361
+ log_error "100-agent coordination test missing"
362
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
363
+ fi
364
+
365
+ # Check monitoring scripts
366
+ if [ -d "$PROJECT_ROOT/scripts/monitoring" ]; then
367
+ log_pass "Monitoring scripts directory exists"
368
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
369
+ else
370
+ log_warn "Monitoring scripts directory missing"
371
+ fi
372
+ }
373
+
374
+ # ==============================================================================
375
+ # DEPLOYMENT READINESS CHECKS
376
+ # ==============================================================================
377
+
378
+ validate_deployment_readiness() {
379
+ log_info "Validating production deployment readiness..."
380
+
381
+ # Check tmpfs support
382
+ if mountpoint -q /dev/shm 2>/dev/null; then
383
+ log_pass "/dev/shm is mounted (tmpfs available)"
384
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
385
+ else
386
+ log_warn "/dev/shm not mounted (may affect container tmpfs)"
387
+ fi
388
+
389
+ # Check Docker daemon
390
+ if docker info > /dev/null 2>&1; then
391
+ log_pass "Docker daemon is running"
392
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
393
+
394
+ # Check Docker version
395
+ local docker_version=$(docker --version | grep -oP '\d+\.\d+' | head -1)
396
+ local major_version=$(echo "$docker_version" | cut -d. -f1)
397
+ if [ "$major_version" -ge 20 ]; then
398
+ log_pass "Docker version is adequate: $docker_version"
399
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
400
+ else
401
+ log_warn "Docker version may be outdated: $docker_version (recommend >=20.x)"
402
+ fi
403
+ else
404
+ log_error "Docker daemon not running or not accessible"
405
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
406
+ fi
407
+
408
+ # Check disk space
409
+ local available_space=$(df -BG /dev/shm 2>/dev/null | tail -1 | awk '{print $4}' | sed 's/G//')
410
+ if [ -n "$available_space" ] && [ "$available_space" -ge 1 ]; then
411
+ log_pass "Sufficient tmpfs space available: ${available_space}G"
412
+ TOTAL_CHECKS=$((TOTAL_CHECKS + 1))
413
+ else
414
+ log_warn "tmpfs space may be insufficient: ${available_space}G"
415
+ fi
416
+ }
417
+
418
+ # ==============================================================================
419
+ # MAIN EXECUTION
420
+ # ==============================================================================
421
+
422
+ main() {
423
+ echo "================================================================"
424
+ echo "Docker/K8s Infrastructure Validation"
425
+ echo "Phase 2 Sprint 2.3 - Production Deployment Readiness"
426
+ echo "================================================================"
427
+ echo ""
428
+
429
+ validate_docker_compose
430
+ echo ""
431
+
432
+ validate_dockerfile
433
+ echo ""
434
+
435
+ validate_stability_test_config
436
+ echo ""
437
+
438
+ validate_k8s_manifests
439
+ echo ""
440
+
441
+ validate_infrastructure_requirements
442
+ echo ""
443
+
444
+ validate_deployment_readiness
445
+ echo ""
446
+
447
+ # Summary
448
+ echo "================================================================"
449
+ echo "VALIDATION SUMMARY"
450
+ echo "================================================================"
451
+ echo "Total Checks: $TOTAL_CHECKS"
452
+ echo "Passed: ${GREEN}$PASSED_CHECKS${NC}"
453
+ echo "Failed: ${RED}$FAILED_CHECKS${NC}"
454
+ echo "Warnings: ${YELLOW}$WARNINGS${NC}"
455
+ echo ""
456
+
457
+ # Calculate confidence score
458
+ local confidence=0
459
+ if [ "$TOTAL_CHECKS" -gt 0 ]; then
460
+ confidence=$(awk "BEGIN {printf \"%.2f\", ($PASSED_CHECKS / $TOTAL_CHECKS)}")
461
+ fi
462
+
463
+ echo "Deployment Readiness Score: $confidence"
464
+ echo ""
465
+
466
+ # Deployment recommendation
467
+ if (( $(echo "$confidence >= 0.90" | bc -l) )); then
468
+ echo -e "${GREEN}RECOMMENDATION: PRODUCTION READY${NC}"
469
+ echo "Infrastructure meets production deployment criteria"
470
+ elif (( $(echo "$confidence >= 0.75" | bc -l) )); then
471
+ echo -e "${YELLOW}RECOMMENDATION: STAGING READY${NC}"
472
+ echo "Infrastructure suitable for staging, address warnings for production"
473
+ else
474
+ echo -e "${RED}RECOMMENDATION: NOT READY${NC}"
475
+ echo "Critical issues must be resolved before deployment"
476
+ fi
477
+ echo ""
478
+
479
+ # JSON output for automation
480
+ cat > /tmp/deployment-validation-result.json <<EOF
481
+ {
482
+ "timestamp": $(date +%s),
483
+ "total_checks": $TOTAL_CHECKS,
484
+ "passed": $PASSED_CHECKS,
485
+ "failed": $FAILED_CHECKS,
486
+ "warnings": $WARNINGS,
487
+ "confidence_score": $confidence,
488
+ "production_ready": $(if (( $(echo "$confidence >= 0.90" | bc -l) )); then echo "true"; else echo "false"; fi)
489
+ }
490
+ EOF
491
+
492
+ echo "Detailed results saved to: /tmp/deployment-validation-result.json"
493
+
494
+ # Exit with failure if critical issues found
495
+ if [ "$FAILED_CHECKS" -gt 0 ]; then
496
+ exit 1
497
+ fi
498
+
499
+ exit 0
500
+ }
501
+
502
+ main "$@"