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,432 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Optimization Testing Script
5
+ *
6
+ * Tests the complete activation script with rollback scenarios
7
+ * Validates all optimization components work correctly
8
+ */
9
+
10
+ import { fileURLToPath } from 'url';
11
+ import { dirname, join } from 'path';
12
+ import { performance } from 'perf_hooks';
13
+ import chalk from 'chalk';
14
+ import ora from 'ora';
15
+
16
+ // Import our optimization modules
17
+ import { UnifiedOptimizationManager } from './unified-activation.js';
18
+ import { ConfigurationValidator } from './config-validator.js';
19
+
20
+ const __filename = fileURLToPath(import.meta.url);
21
+ const __dirname = dirname(__filename);
22
+
23
+ /**
24
+ * Optimization Test Suite
25
+ */
26
+ class OptimizationTestSuite {
27
+ constructor(options = {}) {
28
+ this.options = {
29
+ skipActualActivation: false,
30
+ testRollback: true,
31
+ validateConfigurations: true,
32
+ ...options
33
+ };
34
+
35
+ this.testResults = {
36
+ preValidation: null,
37
+ activation: null,
38
+ postValidation: null,
39
+ rollback: null,
40
+ finalValidation: null
41
+ };
42
+ }
43
+
44
+ /**
45
+ * Run complete test suite
46
+ */
47
+ async runTests() {
48
+ const testStart = performance.now();
49
+ const spinner = ora('๐Ÿงช Starting Optimization Test Suite...').start();
50
+
51
+ try {
52
+ // Test 1: Pre-activation validation
53
+ await this._testPreActivationValidation(spinner);
54
+
55
+ // Test 2: Activation process (optional)
56
+ if (!this.options.skipActualActivation) {
57
+ await this._testActivationProcess(spinner);
58
+
59
+ // Test 3: Post-activation validation
60
+ await this._testPostActivationValidation(spinner);
61
+
62
+ // Test 4: Rollback functionality
63
+ if (this.options.testRollback) {
64
+ await this._testRollbackProcess(spinner);
65
+
66
+ // Test 5: Final validation after rollback
67
+ await this._testFinalValidation(spinner);
68
+ }
69
+ } else {
70
+ await this._testDryRunActivation(spinner);
71
+ }
72
+
73
+ const testTime = performance.now() - testStart;
74
+ spinner.succeed(`โœ… Optimization Test Suite Completed (${testTime.toFixed(0)}ms)`);
75
+
76
+ return {
77
+ success: true,
78
+ testTime,
79
+ results: this.testResults,
80
+ summary: this._generateTestSummary()
81
+ };
82
+
83
+ } catch (error) {
84
+ spinner.fail('โŒ Optimization Test Suite Failed');
85
+ return {
86
+ success: false,
87
+ error: error.message,
88
+ results: this.testResults
89
+ };
90
+ }
91
+ }
92
+
93
+ // Private test methods
94
+
95
+ async _testPreActivationValidation(spinner) {
96
+ spinner.text = '๐Ÿ” Testing pre-activation validation...';
97
+
98
+ try {
99
+ const validator = new ConfigurationValidator();
100
+ const validationResult = await validator.validate();
101
+
102
+ this.testResults.preValidation = {
103
+ success: true,
104
+ ...validationResult
105
+ };
106
+
107
+ console.log(chalk.blue(`โœ“ Pre-activation validation: ${validationResult.success ? 'PASS' : 'CONDITIONAL'}`));
108
+
109
+ } catch (error) {
110
+ this.testResults.preValidation = {
111
+ success: false,
112
+ error: error.message
113
+ };
114
+ console.log(chalk.red('โœ— Pre-activation validation: FAIL'));
115
+ throw error;
116
+ }
117
+ }
118
+
119
+ async _testActivationProcess(spinner) {
120
+ spinner.text = '๐Ÿš€ Testing activation process...';
121
+
122
+ try {
123
+ const manager = new UnifiedOptimizationManager({
124
+ enableRollback: true,
125
+ enableMonitoring: true,
126
+ enableValidation: true,
127
+ backupEnabled: true
128
+ });
129
+
130
+ const activationResult = await manager.activate();
131
+
132
+ this.testResults.activation = {
133
+ success: activationResult.success,
134
+ ...activationResult
135
+ };
136
+
137
+ if (activationResult.success) {
138
+ console.log(chalk.green(`โœ“ Activation process: PASS (${activationResult.activationTime}ms)`));
139
+ } else {
140
+ console.log(chalk.red('โœ— Activation process: FAIL'));
141
+ throw new Error(`Activation failed: ${activationResult.error}`);
142
+ }
143
+
144
+ } catch (error) {
145
+ this.testResults.activation = {
146
+ success: false,
147
+ error: error.message
148
+ };
149
+ console.log(chalk.red('โœ— Activation process: FAIL'));
150
+ throw error;
151
+ }
152
+ }
153
+
154
+ async _testPostActivationValidation(spinner) {
155
+ spinner.text = 'โœ… Testing post-activation validation...';
156
+
157
+ try {
158
+ const validator = new ConfigurationValidator();
159
+ const validationResult = await validator.validate();
160
+
161
+ this.testResults.postValidation = {
162
+ success: true,
163
+ ...validationResult
164
+ };
165
+
166
+ // Check if activation improved configuration
167
+ const preValidation = this.testResults.preValidation;
168
+ const improvement = this._calculateImprovement(preValidation, validationResult);
169
+
170
+ console.log(chalk.green(`โœ“ Post-activation validation: PASS`));
171
+ console.log(chalk.blue(` Improvement: ${improvement.passRateIncrease.toFixed(1)}% better pass rate`));
172
+
173
+ } catch (error) {
174
+ this.testResults.postValidation = {
175
+ success: false,
176
+ error: error.message
177
+ };
178
+ console.log(chalk.red('โœ— Post-activation validation: FAIL'));
179
+ throw error;
180
+ }
181
+ }
182
+
183
+ async _testRollbackProcess(spinner) {
184
+ spinner.text = '๐Ÿ”„ Testing rollback process...';
185
+
186
+ try {
187
+ const manager = new UnifiedOptimizationManager();
188
+ const rollbackResult = await manager.rollback();
189
+
190
+ this.testResults.rollback = {
191
+ success: rollbackResult.success,
192
+ ...rollbackResult
193
+ };
194
+
195
+ if (rollbackResult.success) {
196
+ console.log(chalk.green('โœ“ Rollback process: PASS'));
197
+ } else {
198
+ console.log(chalk.yellow('โš  Rollback process: PARTIAL'));
199
+ console.log(chalk.yellow(` Warning: ${rollbackResult.error}`));
200
+ }
201
+
202
+ } catch (error) {
203
+ this.testResults.rollback = {
204
+ success: false,
205
+ error: error.message
206
+ };
207
+ console.log(chalk.red('โœ— Rollback process: FAIL'));
208
+ // Don't throw here - rollback failure is not critical for testing
209
+ }
210
+ }
211
+
212
+ async _testFinalValidation(spinner) {
213
+ spinner.text = '๐Ÿ Testing final validation after rollback...';
214
+
215
+ try {
216
+ const validator = new ConfigurationValidator();
217
+ const validationResult = await validator.validate();
218
+
219
+ this.testResults.finalValidation = {
220
+ success: true,
221
+ ...validationResult
222
+ };
223
+
224
+ // Check if rollback restored original state
225
+ const preValidation = this.testResults.preValidation;
226
+ const consistency = this._calculateConsistency(preValidation, validationResult);
227
+
228
+ console.log(chalk.green('โœ“ Final validation: PASS'));
229
+ console.log(chalk.blue(` Rollback consistency: ${consistency.consistencyRate.toFixed(1)}%`));
230
+
231
+ } catch (error) {
232
+ this.testResults.finalValidation = {
233
+ success: false,
234
+ error: error.message
235
+ };
236
+ console.log(chalk.red('โœ— Final validation: FAIL'));
237
+ throw error;
238
+ }
239
+ }
240
+
241
+ async _testDryRunActivation(spinner) {
242
+ spinner.text = '๐Ÿงช Testing dry-run activation...';
243
+
244
+ try {
245
+ // Create manager but don't actually activate
246
+ const manager = new UnifiedOptimizationManager({
247
+ enableRollback: true,
248
+ enableMonitoring: false, // Disable to avoid actual changes
249
+ enableValidation: true,
250
+ backupEnabled: false // Disable to avoid creating backups
251
+ });
252
+
253
+ // Test manager initialization and validation
254
+ const status = await manager.getStatus();
255
+
256
+ this.testResults.activation = {
257
+ success: true,
258
+ dryRun: true,
259
+ status
260
+ };
261
+
262
+ console.log(chalk.blue('โœ“ Dry-run activation: PASS'));
263
+
264
+ } catch (error) {
265
+ this.testResults.activation = {
266
+ success: false,
267
+ error: error.message,
268
+ dryRun: true
269
+ };
270
+ console.log(chalk.red('โœ— Dry-run activation: FAIL'));
271
+ throw error;
272
+ }
273
+ }
274
+
275
+ // Helper methods
276
+
277
+ _calculateImprovement(preValidation, postValidation) {
278
+ const prePassRate = preValidation?.report?.summary?.passRate || 0;
279
+ const postPassRate = postValidation?.report?.summary?.passRate || 0;
280
+
281
+ return {
282
+ passRateIncrease: (postPassRate - prePassRate) * 100,
283
+ errorReduction: (preValidation?.report?.overall?.failed || 0) -
284
+ (postValidation?.report?.overall?.failed || 0),
285
+ warningReduction: (preValidation?.report?.overall?.warnings || 0) -
286
+ (postValidation?.report?.overall?.warnings || 0)
287
+ };
288
+ }
289
+
290
+ _calculateConsistency(preValidation, finalValidation) {
291
+ const prePassRate = preValidation?.report?.summary?.passRate || 0;
292
+ const finalPassRate = finalValidation?.report?.summary?.passRate || 0;
293
+
294
+ const consistencyRate = 100 - Math.abs((prePassRate - finalPassRate) * 100);
295
+
296
+ return {
297
+ consistencyRate,
298
+ passDifference: Math.abs(prePassRate - finalPassRate),
299
+ rollbackEffective: consistencyRate > 90
300
+ };
301
+ }
302
+
303
+ _generateTestSummary() {
304
+ const tests = Object.keys(this.testResults);
305
+ const passed = tests.filter(test => this.testResults[test]?.success).length;
306
+ const failed = tests.filter(test => this.testResults[test] && !this.testResults[test].success).length;
307
+ const skipped = tests.filter(test => !this.testResults[test]).length;
308
+
309
+ return {
310
+ total: tests.length,
311
+ passed,
312
+ failed,
313
+ skipped,
314
+ passRate: passed / (tests.length - skipped),
315
+ allPassed: failed === 0,
316
+ recommendations: this._generateRecommendations()
317
+ };
318
+ }
319
+
320
+ _generateRecommendations() {
321
+ const recommendations = [];
322
+
323
+ // Analyze test results to generate recommendations
324
+ if (this.testResults.preValidation && !this.testResults.preValidation.success) {
325
+ recommendations.push({
326
+ type: 'CRITICAL',
327
+ message: 'Pre-activation validation failed',
328
+ action: 'Fix configuration issues before running optimizations'
329
+ });
330
+ }
331
+
332
+ if (this.testResults.activation && !this.testResults.activation.success) {
333
+ recommendations.push({
334
+ type: 'CRITICAL',
335
+ message: 'Activation process failed',
336
+ action: 'Review activation logs and fix underlying issues'
337
+ });
338
+ }
339
+
340
+ if (this.testResults.rollback && !this.testResults.rollback.success) {
341
+ recommendations.push({
342
+ type: 'HIGH',
343
+ message: 'Rollback process failed',
344
+ action: 'Manually restore system state from backups'
345
+ });
346
+ }
347
+
348
+ if (this.testResults.postValidation && this.testResults.preValidation) {
349
+ const improvement = this._calculateImprovement(
350
+ this.testResults.preValidation,
351
+ this.testResults.postValidation
352
+ );
353
+
354
+ if (improvement.passRateIncrease < 5) {
355
+ recommendations.push({
356
+ type: 'MEDIUM',
357
+ message: 'Low optimization improvement detected',
358
+ action: 'Review optimization strategies for better results'
359
+ });
360
+ }
361
+ }
362
+
363
+ if (recommendations.length === 0) {
364
+ recommendations.push({
365
+ type: 'SUCCESS',
366
+ message: 'All tests passed successfully',
367
+ action: 'Optimization system is ready for production use'
368
+ });
369
+ }
370
+
371
+ return recommendations;
372
+ }
373
+ }
374
+
375
+ /**
376
+ * CLI Interface
377
+ */
378
+ async function main() {
379
+ const args = process.argv.slice(2);
380
+
381
+ const testSuite = new OptimizationTestSuite({
382
+ skipActualActivation: args.includes('--dry-run'),
383
+ testRollback: !args.includes('--no-rollback'),
384
+ validateConfigurations: !args.includes('--no-validation')
385
+ });
386
+
387
+ try {
388
+ console.log(chalk.blue('๐Ÿงช Running Optimization Test Suite...'));
389
+ console.log(chalk.gray('This will test activation, validation, and rollback processes\n'));
390
+
391
+ const result = await testSuite.runTests();
392
+
393
+ console.log(chalk.blue('\n๐Ÿ“Š Test Summary:'));
394
+ console.log(` Total Tests: ${result.summary.total}`);
395
+ console.log(` Passed: ${chalk.green(result.summary.passed)}`);
396
+ console.log(` Failed: ${chalk.red(result.summary.failed)}`);
397
+ console.log(` Skipped: ${chalk.yellow(result.summary.skipped)}`);
398
+ console.log(` Pass Rate: ${chalk.blue((result.summary.passRate * 100).toFixed(1))}%`);
399
+ console.log(` Test Time: ${result.testTime.toFixed(0)}ms`);
400
+
401
+ if (result.summary.recommendations.length > 0) {
402
+ console.log(chalk.yellow('\n๐Ÿ“‹ Recommendations:'));
403
+ result.summary.recommendations.forEach(rec => {
404
+ const color = rec.type === 'CRITICAL' ? chalk.red :
405
+ rec.type === 'HIGH' ? chalk.yellow :
406
+ rec.type === 'SUCCESS' ? chalk.green : chalk.blue;
407
+ console.log(color(` ${rec.type}: ${rec.message}`));
408
+ console.log(` Action: ${rec.action}`);
409
+ });
410
+ }
411
+
412
+ if (result.success) {
413
+ console.log(chalk.green('\nโœ… All optimization tests completed successfully!'));
414
+ process.exit(0);
415
+ } else {
416
+ console.log(chalk.red('\nโŒ Some optimization tests failed'));
417
+ process.exit(1);
418
+ }
419
+
420
+ } catch (error) {
421
+ console.error(chalk.red('โŒ Test suite failed:'), error.message);
422
+ process.exit(1);
423
+ }
424
+ }
425
+
426
+ // Export for programmatic use
427
+ export { OptimizationTestSuite };
428
+
429
+ // Run if called directly
430
+ if (import.meta.url === `file://${process.argv[1]}`) {
431
+ main().catch(console.error);
432
+ }