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,314 @@
1
+ /**
2
+ * Auto-Scaling Engine Demo and Test
3
+ * Demonstrates the Phase 2 Auto-Scaling Engine capabilities
4
+ */
5
+
6
+ import AutoScalingEngine from './src/autoscaling/index.js';
7
+ import Redis from 'ioredis';
8
+
9
+ class AutoScalingDemo {
10
+ constructor() {
11
+ this.redis = new Redis();
12
+ this.engine = null;
13
+ this.demoMetrics = {
14
+ startTime: Date.now(),
15
+ tasksSubmitted: 0,
16
+ scaleEvents: 0,
17
+ efficiencyMeasurements: []
18
+ };
19
+ }
20
+
21
+ async runDemo() {
22
+ console.log('🚀 Phase 2 Auto-Scaling Engine Demo');
23
+ console.log('=====================================');
24
+
25
+ try {
26
+ // Initialize and start the engine
27
+ await this.initializeEngine();
28
+
29
+ // Run demonstration scenarios
30
+ await this.demonstrateBasicScaling();
31
+ await this.demonstratePredictiveScaling();
32
+ await this.demonstrateResourceOptimization();
33
+ await this.demonstratePerformanceBenchmarking();
34
+
35
+ // Generate final report
36
+ await this.generateDemoReport();
37
+
38
+ } catch (error) {
39
+ console.error('Demo failed:', error);
40
+ } finally {
41
+ await this.cleanup();
42
+ }
43
+ }
44
+
45
+ async initializeEngine() {
46
+ console.log('\n📋 Initializing Auto-Scaling Engine...');
47
+
48
+ this.engine = AutoScalingEngine.createDevelopment(); // Use development config
49
+
50
+ // Set up event listeners
51
+ this.engine.on('started', () => {
52
+ console.log('✅ Engine started successfully');
53
+ });
54
+
55
+ this.engine.on('taskAssigned', (data) => {
56
+ console.log(`📝 Task assigned: ${data.task.id} → Agent ${data.agent.id}`);
57
+ });
58
+
59
+ this.engine.on('scaleUp', (data) => {
60
+ console.log(`⬆️ Scale up: +${data.agentsAdded} agents (Pool: ${data.newPoolSize})`);
61
+ this.demoMetrics.scaleEvents++;
62
+ });
63
+
64
+ this.engine.on('scaleDown', (data) => {
65
+ console.log(`⬇️ Scale down: -${data.agentsRemoved} agents (Pool: ${data.newPoolSize})`);
66
+ this.demoMetrics.scaleEvents++;
67
+ });
68
+
69
+ this.engine.on('benchmarkUpdate', (data) => {
70
+ const efficiency = (data.results.efficiency * 100).toFixed(1);
71
+ const utilization = (data.results.utilization * 100).toFixed(1);
72
+ console.log(`📊 Performance: Efficiency ${efficiency}%, Utilization ${utilization}%`);
73
+ this.demoMetrics.efficiencyMeasurements.push({
74
+ timestamp: Date.now(),
75
+ efficiency: data.results.efficiency,
76
+ utilization: data.results.utilization
77
+ });
78
+ });
79
+
80
+ await this.engine.start();
81
+ console.log('✅ Engine initialized and started');
82
+ }
83
+
84
+ async demonstrateBasicScaling() {
85
+ console.log('\n🔧 Demonstrating Basic Reactive Scaling...');
86
+ console.log('-------------------------------------------');
87
+
88
+ // Submit a burst of tasks to trigger scale-up
89
+ const taskBurst = 8;
90
+ console.log(`Submitting ${taskBurst} tasks to trigger scale-up...`);
91
+
92
+ for (let i = 0; i < taskBurst; i++) {
93
+ const task = {
94
+ id: `basic_task_${i}`,
95
+ type: 'computation',
96
+ priority: 'normal',
97
+ resources: {
98
+ cpu: 15,
99
+ memory: 50,
100
+ duration: 30000
101
+ }
102
+ };
103
+
104
+ try {
105
+ await this.engine.submitTask(task);
106
+ this.demoMetrics.tasksSubmitted++;
107
+ await this.sleep(500); // Small delay between submissions
108
+ } catch (error) {
109
+ console.error(`Task ${i} failed:`, error.message);
110
+ }
111
+ }
112
+
113
+ console.log('Waiting for scaling decisions...');
114
+ await this.sleep(10000); // Wait for scaling to occur
115
+ }
116
+
117
+ async demonstratePredictiveScaling() {
118
+ console.log('\n🔮 Demonstrating Predictive Scaling...');
119
+ console.log('-----------------------------------');
120
+
121
+ // Submit tasks with varying patterns to test prediction
122
+ const patterns = [
123
+ { count: 3, interval: 1000, priority: 'high' }, // High frequency burst
124
+ { count: 2, interval: 2000, priority: 'normal' }, // Medium frequency
125
+ { count: 4, interval: 500, priority: 'low' } // Low priority burst
126
+ ];
127
+
128
+ for (const pattern of patterns) {
129
+ console.log(`Submitting ${pattern.count} ${pattern.priority} priority tasks...`);
130
+
131
+ for (let i = 0; i < pattern.count; i++) {
132
+ const task = {
133
+ id: `predictive_task_${Date.now()}_${i}`,
134
+ type: 'analysis',
135
+ priority: pattern.priority,
136
+ resources: {
137
+ cpu: pattern.priority === 'high' ? 25 : 10,
138
+ memory: pattern.priority === 'high' ? 100 : 40,
139
+ duration: pattern.priority === 'high' ? 20000 : 45000
140
+ }
141
+ };
142
+
143
+ try {
144
+ await this.engine.submitTask(task);
145
+ this.demoMetrics.tasksSubmitted++;
146
+ await this.sleep(pattern.interval);
147
+ } catch (error) {
148
+ console.error(`Predictive task failed:`, error.message);
149
+ }
150
+ }
151
+
152
+ await this.sleep(5000); // Wait for prediction analysis
153
+ }
154
+ }
155
+
156
+ async demonstrateResourceOptimization() {
157
+ console.log('\n⚡ Demonstrating Resource Optimization...');
158
+ console.log('---------------------------------------');
159
+
160
+ // Submit tasks with different resource requirements
161
+ const resourceIntensiveTasks = [
162
+ {
163
+ id: 'cpu_intensive_1',
164
+ type: 'cpu_intensive',
165
+ priority: 'high',
166
+ resources: { cpu: 40, memory: 30, duration: 25000 }
167
+ },
168
+ {
169
+ id: 'memory_intensive_1',
170
+ type: 'memory_intensive',
171
+ priority: 'normal',
172
+ resources: { cpu: 10, memory: 150, duration: 35000 }
173
+ },
174
+ {
175
+ id: 'balanced_task_1',
176
+ type: 'balanced',
177
+ priority: 'normal',
178
+ resources: { cpu: 20, memory: 60, duration: 20000 }
179
+ }
180
+ ];
181
+
182
+ console.log('Submitting tasks with varying resource requirements...');
183
+
184
+ for (const task of resourceIntensiveTasks) {
185
+ try {
186
+ const result = await this.engine.submitTask(task);
187
+ console.log(`✅ Optimized assignment: ${task.id} → ${result.agentId}`);
188
+ this.demoMetrics.tasksSubmitted++;
189
+ } catch (error) {
190
+ console.error(`Resource optimization failed for ${task.id}:`, error.message);
191
+ }
192
+ }
193
+
194
+ // Wait for optimization to complete
195
+ await this.sleep(8000);
196
+ }
197
+
198
+ async demonstratePerformanceBenchmarking() {
199
+ console.log('\n📈 Demonstrating Performance Benchmarking...');
200
+ console.log('------------------------------------------');
201
+
202
+ // Get current performance metrics
203
+ const status = await this.engine.getStatus();
204
+
205
+ console.log('Current Performance Metrics:');
206
+ console.log(` • Pool Size: ${status.components.poolManager?.poolSize || 'N/A'}`);
207
+ console.log(` • Active Agents: ${status.components.poolManager?.activeAgents || 'N/A'}`);
208
+ console.log(` • Efficiency: ${((status.components.performanceBenchmark?.efficiency || 0) * 100).toFixed(1)}%`);
209
+ console.log(` • Utilization: ${((status.components.performanceBenchmark?.utilization || 0) * 100).toFixed(1)}%`);
210
+ console.log(` • Response Time Score: ${((status.components.performanceBenchmark?.responseTime || 0) * 100).toFixed(1)}%`);
211
+ console.log(` • Scaling Performance: ${((status.components.performanceBenchmark?.scalingPerformance || 0) * 100).toFixed(1)}%`);
212
+
213
+ // Test performance targets
214
+ const targets = {
215
+ efficiency: 0.40, // 40% target
216
+ utilization: 0.85, // 85% target
217
+ responseTime: 0.80 // 80% score target
218
+ };
219
+
220
+ console.log('\nTarget Achievement Analysis:');
221
+ for (const [metric, target] of Object.entries(targets)) {
222
+ const current = status.components.performanceBenchmark?.[metric] || 0;
223
+ const achieved = current >= target;
224
+ const percentage = (current * 100).toFixed(1);
225
+ const targetPercentage = (target * 100).toFixed(1);
226
+
227
+ console.log(` • ${metric}: ${percentage}% (Target: ${targetPercentage}%) ${achieved ? '✅' : '❌'}`);
228
+ }
229
+
230
+ await this.sleep(5000);
231
+ }
232
+
233
+ async generateDemoReport() {
234
+ console.log('\n📊 Demo Performance Report');
235
+ console.log('===========================');
236
+
237
+ const runtime = Date.now() - this.demoMetrics.startTime;
238
+ const minutes = Math.floor(runtime / 60000);
239
+ const seconds = Math.floor((runtime % 60000) / 1000);
240
+
241
+ console.log(`Runtime: ${minutes}m ${seconds}s`);
242
+ console.log(`Tasks Submitted: ${this.demoMetrics.tasksSubmitted}`);
243
+ console.log(`Scale Events: ${this.demoMetrics.scaleEvents}`);
244
+
245
+ if (this.demoMetrics.efficiencyMeasurements.length > 0) {
246
+ const avgEfficiency = this.demoMetrics.efficiencyMeasurements
247
+ .reduce((sum, m) => sum + m.efficiency, 0) / this.demoMetrics.efficiencyMeasurements.length;
248
+ const avgUtilization = this.demoMetrics.efficiencyMeasurements
249
+ .reduce((sum, m) => sum + m.utilization, 0) / this.demoMetrics.efficiencyMeasurements.length;
250
+
251
+ console.log(`Average Efficiency: ${(avgEfficiency * 100).toFixed(1)}%`);
252
+ console.log(`Average Utilization: ${(avgUtilization * 100).toFixed(1)}%`);
253
+
254
+ // Check if targets were met
255
+ const efficiencyTargetMet = avgEfficiency >= 0.40;
256
+ const utilizationTargetMet = avgUtilization >= 0.85;
257
+
258
+ console.log('\nTarget Achievement:');
259
+ console.log(` • 40%+ Efficiency: ${efficiencyTargetMet ? '✅ ACHIEVED' : '❌ NOT ACHIEVED'}`);
260
+ console.log(` • 85%+ Utilization: ${utilizationTargetMet ? '✅ ACHIEVED' : '❌ NOT ACHIEVED'}`);
261
+ }
262
+
263
+ // Get final engine status
264
+ const finalStatus = await this.engine.getStatus();
265
+ console.log('\nFinal System State:');
266
+ console.log(` • Pool Size: ${finalStatus.components.poolManager?.poolSize || 'N/A'}`);
267
+ console.log(` • Total Tasks Processed: ${finalStatus.metrics.totalTasksProcessed}`);
268
+ console.log(` • Total Scale Events: ${finalStatus.metrics.totalScaleEvents}`);
269
+
270
+ console.log('\n✅ Demo completed successfully!');
271
+ }
272
+
273
+ async cleanup() {
274
+ console.log('\n🧹 Cleaning up...');
275
+
276
+ if (this.engine) {
277
+ await this.engine.stop();
278
+ }
279
+
280
+ if (this.redis) {
281
+ await this.redis.quit();
282
+ }
283
+
284
+ console.log('✅ Cleanup completed');
285
+ }
286
+
287
+ sleep(ms) {
288
+ return new Promise(resolve => setTimeout(resolve, ms));
289
+ }
290
+ }
291
+
292
+ // Run the demo
293
+ async function main() {
294
+ const demo = new AutoScalingDemo();
295
+ await demo.runDemo();
296
+ }
297
+
298
+ // Handle graceful shutdown
299
+ process.on('SIGINT', async () => {
300
+ console.log('\n🛑 Received SIGINT, shutting down gracefully...');
301
+ process.exit(0);
302
+ });
303
+
304
+ process.on('SIGTERM', async () => {
305
+ console.log('\n🛑 Received SIGTERM, shutting down gracefully...');
306
+ process.exit(0);
307
+ });
308
+
309
+ // Run if this file is executed directly
310
+ if (require.main === module) {
311
+ main().catch(console.error);
312
+ }
313
+
314
+ export default AutoScalingDemo;
@@ -0,0 +1,349 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Dependency Optimizer
4
+ *
5
+ * Analyzes and optimizes npm dependencies for production readiness
6
+ */
7
+
8
+ import { execSync } from 'child_process';
9
+ import fs from 'fs/promises';
10
+ import path from 'path';
11
+ import { fileURLToPath } from 'url';
12
+
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = path.dirname(__filename);
15
+ const rootDir = path.join(__dirname, '..');
16
+
17
+ class DependencyOptimizer {
18
+ constructor() {
19
+ this.packageJson = null;
20
+ this.findings = {
21
+ production: [],
22
+ devDependencies: [],
23
+ optimization: [],
24
+ security: []
25
+ };
26
+ }
27
+
28
+ async optimize() {
29
+ console.log('🔧 Dependency Optimizer');
30
+ console.log('='.repeat(60));
31
+
32
+ try {
33
+ await this.loadPackageJson();
34
+ await this.analyzeDependencies();
35
+ await this.checkSecurity();
36
+ await this.optimizeTree();
37
+ await this.generateReport();
38
+
39
+ return 0;
40
+ } catch (error) {
41
+ console.error(`❌ Optimization failed: ${error.message}`);
42
+ return 1;
43
+ }
44
+ }
45
+
46
+ async loadPackageJson() {
47
+ console.log('\n📦 Loading package.json...');
48
+ const packagePath = path.join(rootDir, 'package.json');
49
+ const content = await fs.readFile(packagePath, 'utf8');
50
+ this.packageJson = JSON.parse(content);
51
+ console.log(`✅ Loaded: ${this.packageJson.name}@${this.packageJson.version}`);
52
+ }
53
+
54
+ async analyzeDependencies() {
55
+ console.log('\n🔍 Analyzing dependencies...');
56
+
57
+ const prodCount = Object.keys(this.packageJson.dependencies || {}).length;
58
+ const devCount = Object.keys(this.packageJson.devDependencies || {}).length;
59
+
60
+ console.log(` Production: ${prodCount} packages`);
61
+ console.log(` Development: ${devCount} packages`);
62
+
63
+ // Check for misplaced dependencies
64
+ await this.checkMisplacedDependencies();
65
+
66
+ // Check for unused dependencies
67
+ await this.checkUnusedDependencies();
68
+
69
+ // Check for duplicate dependencies
70
+ await this.checkDuplicates();
71
+
72
+ // Check for outdated dependencies
73
+ await this.checkOutdated();
74
+ }
75
+
76
+ async checkMisplacedDependencies() {
77
+ console.log('\n Checking for misplaced dependencies...');
78
+
79
+ const buildTools = [
80
+ '@babel/core', '@babel/preset-env', '@swc/cli', '@swc/core',
81
+ 'typescript', 'ts-jest', 'babel-jest', 'jest', 'eslint', 'prettier'
82
+ ];
83
+
84
+ const misplaced = [];
85
+
86
+ for (const tool of buildTools) {
87
+ if (this.packageJson.dependencies && this.packageJson.dependencies[tool]) {
88
+ misplaced.push({
89
+ package: tool,
90
+ type: 'build-tool-in-production',
91
+ recommendation: `Move ${tool} to devDependencies`
92
+ });
93
+ }
94
+ }
95
+
96
+ if (misplaced.length > 0) {
97
+ this.findings.production.push(...misplaced);
98
+ console.log(` ⚠️ ${misplaced.length} misplaced dependencies found`);
99
+ } else {
100
+ console.log(' ✅ All dependencies correctly placed');
101
+ }
102
+ }
103
+
104
+ async checkUnusedDependencies() {
105
+ console.log('\n Checking for unused dependencies...');
106
+
107
+ try {
108
+ // This is a basic check - a full check would require tools like depcheck
109
+ console.log(' ℹ️ Run `npx depcheck` for comprehensive unused dependency analysis');
110
+ } catch (error) {
111
+ console.log(' ⚠️ Could not check for unused dependencies');
112
+ }
113
+ }
114
+
115
+ async checkDuplicates() {
116
+ console.log('\n Checking for duplicate dependencies...');
117
+
118
+ try {
119
+ const output = this.runCommand('npm dedupe --dry-run');
120
+
121
+ if (output.includes('deduped')) {
122
+ const matches = output.match(/deduped (\d+)/);
123
+ const count = matches ? parseInt(matches[1]) : 0;
124
+
125
+ if (count > 0) {
126
+ this.findings.optimization.push({
127
+ type: 'duplicate-dependencies',
128
+ count: count,
129
+ recommendation: 'Run npm dedupe to remove duplicates'
130
+ });
131
+ console.log(` ⚠️ ${count} duplicate dependencies can be optimized`);
132
+ } else {
133
+ console.log(' ✅ No duplicate dependencies');
134
+ }
135
+ } else {
136
+ console.log(' ✅ No duplicate dependencies');
137
+ }
138
+ } catch (error) {
139
+ console.log(' ⚠️ Could not check for duplicates');
140
+ }
141
+ }
142
+
143
+ async checkOutdated() {
144
+ console.log('\n Checking for outdated dependencies...');
145
+
146
+ try {
147
+ const output = this.runCommand('npm outdated --json');
148
+ const outdated = JSON.parse(output || '{}');
149
+ const count = Object.keys(outdated).length;
150
+
151
+ if (count > 0) {
152
+ this.findings.optimization.push({
153
+ type: 'outdated-dependencies',
154
+ count: count,
155
+ packages: Object.entries(outdated).slice(0, 5).map(([name, info]) => ({
156
+ name,
157
+ current: info.current,
158
+ latest: info.latest
159
+ })),
160
+ recommendation: 'Update outdated dependencies with npm update'
161
+ });
162
+ console.log(` ⚠️ ${count} outdated dependencies`);
163
+ } else {
164
+ console.log(' ✅ All dependencies up to date');
165
+ }
166
+ } catch {
167
+ console.log(' ✅ Dependency versions current');
168
+ }
169
+ }
170
+
171
+ async checkSecurity() {
172
+ console.log('\n🔒 Security Analysis...');
173
+
174
+ try {
175
+ const output = this.runCommand('npm audit --json');
176
+ const audit = JSON.parse(output);
177
+ const vulnerabilities = audit.metadata?.vulnerabilities || {};
178
+
179
+ const critical = vulnerabilities.critical || 0;
180
+ const high = vulnerabilities.high || 0;
181
+ const moderate = vulnerabilities.moderate || 0;
182
+ const low = vulnerabilities.low || 0;
183
+
184
+ console.log(` Critical: ${critical}`);
185
+ console.log(` High: ${high}`);
186
+ console.log(` Moderate: ${moderate}`);
187
+ console.log(` Low: ${low}`);
188
+
189
+ if (critical > 0 || high > 0) {
190
+ this.findings.security.push({
191
+ severity: 'high',
192
+ vulnerabilities: { critical, high, moderate, low },
193
+ recommendation: 'Run npm audit fix to address vulnerabilities'
194
+ });
195
+ console.log(' ❌ Critical/High vulnerabilities found!');
196
+ } else if (moderate > 0) {
197
+ this.findings.security.push({
198
+ severity: 'medium',
199
+ vulnerabilities: { critical, high, moderate, low },
200
+ recommendation: 'Consider updating packages with moderate vulnerabilities'
201
+ });
202
+ console.log(' ⚠️ Moderate vulnerabilities found');
203
+ } else {
204
+ console.log(' ✅ No security vulnerabilities');
205
+ }
206
+ } catch (error) {
207
+ console.log(' ⚠️ Could not run security audit');
208
+ }
209
+ }
210
+
211
+ async optimizeTree() {
212
+ console.log('\n⚡ Optimization Options...');
213
+
214
+ console.log(' Available optimizations:');
215
+ console.log(' • npm prune - Remove extraneous packages');
216
+ console.log(' • npm dedupe - Reduce duplication');
217
+ console.log(' • npm audit fix - Fix security issues');
218
+ console.log(' • npm update - Update to latest compatible versions');
219
+
220
+ const treeSize = await this.calculateTreeSize();
221
+ console.log(`\n Current tree size: ${treeSize}`);
222
+ }
223
+
224
+ async calculateTreeSize() {
225
+ try {
226
+ const nodeModules = path.join(rootDir, 'node_modules');
227
+ const output = this.runCommand(`du -sh ${nodeModules}`);
228
+ return output.split('\t')[0];
229
+ } catch {
230
+ return 'Unknown';
231
+ }
232
+ }
233
+
234
+ async generateReport() {
235
+ console.log('\n' + '='.repeat(60));
236
+ console.log('📊 OPTIMIZATION REPORT');
237
+ console.log('='.repeat(60));
238
+
239
+ const totalIssues =
240
+ this.findings.production.length +
241
+ this.findings.optimization.length +
242
+ this.findings.security.length;
243
+
244
+ console.log(`\n📈 Summary:`);
245
+ console.log(` Total Findings: ${totalIssues}`);
246
+ console.log(` Production Issues: ${this.findings.production.length}`);
247
+ console.log(` Optimization Opportunities: ${this.findings.optimization.length}`);
248
+ console.log(` Security Issues: ${this.findings.security.length}`);
249
+
250
+ // Production Dependencies
251
+ if (this.findings.production.length > 0) {
252
+ console.log('\n🔴 Production Dependency Issues:');
253
+ this.findings.production.forEach(finding => {
254
+ console.log(` • ${finding.package}: ${finding.recommendation}`);
255
+ });
256
+ }
257
+
258
+ // Optimizations
259
+ if (this.findings.optimization.length > 0) {
260
+ console.log('\n⚡ Optimization Opportunities:');
261
+ this.findings.optimization.forEach(finding => {
262
+ console.log(` • ${finding.type}: ${finding.recommendation}`);
263
+ if (finding.packages) {
264
+ finding.packages.forEach(pkg => {
265
+ console.log(` - ${pkg.name}: ${pkg.current} → ${pkg.latest}`);
266
+ });
267
+ }
268
+ });
269
+ }
270
+
271
+ // Security
272
+ if (this.findings.security.length > 0) {
273
+ console.log('\n🔒 Security Findings:');
274
+ this.findings.security.forEach(finding => {
275
+ console.log(` Severity: ${finding.severity}`);
276
+ console.log(` ${finding.recommendation}`);
277
+ });
278
+ }
279
+
280
+ // Recommendations
281
+ console.log('\n💡 Recommended Actions:');
282
+
283
+ if (this.findings.security.length > 0) {
284
+ console.log(' 1. Run: npm audit fix');
285
+ }
286
+
287
+ if (this.findings.production.length > 0) {
288
+ console.log(' 2. Move build tools to devDependencies');
289
+ }
290
+
291
+ if (this.findings.optimization.length > 0) {
292
+ console.log(' 3. Run: npm dedupe && npm prune');
293
+ console.log(' 4. Run: npm update (review changes carefully)');
294
+ }
295
+
296
+ if (totalIssues === 0) {
297
+ console.log(' ✅ Dependencies are well optimized!');
298
+ console.log(' Continue monitoring with regular npm outdated checks');
299
+ }
300
+
301
+ // Save report
302
+ const report = {
303
+ timestamp: new Date().toISOString(),
304
+ package: {
305
+ name: this.packageJson.name,
306
+ version: this.packageJson.version
307
+ },
308
+ findings: this.findings,
309
+ summary: {
310
+ totalIssues,
311
+ productionIssues: this.findings.production.length,
312
+ optimizationOpportunities: this.findings.optimization.length,
313
+ securityIssues: this.findings.security.length
314
+ }
315
+ };
316
+
317
+ const reportPath = path.join(rootDir, '.claude-flow-novice/dependency-optimization-report.json');
318
+ await fs.mkdir(path.dirname(reportPath), { recursive: true });
319
+ await fs.writeFile(reportPath, JSON.stringify(report, null, 2));
320
+
321
+ console.log(`\n📄 Report saved: .claude-flow-novice/dependency-optimization-report.json`);
322
+ }
323
+
324
+ runCommand(command, options = {}) {
325
+ try {
326
+ return execSync(command, {
327
+ encoding: 'utf8',
328
+ cwd: rootDir,
329
+ stdio: 'pipe',
330
+ ...options
331
+ });
332
+ } catch (error) {
333
+ // Some commands (like npm outdated) return non-zero exit codes
334
+ return error.stdout || '';
335
+ }
336
+ }
337
+ }
338
+
339
+ // CLI Interface
340
+ async function main() {
341
+ const optimizer = new DependencyOptimizer();
342
+ const exitCode = await optimizer.optimize();
343
+ process.exit(exitCode);
344
+ }
345
+
346
+ main().catch(error => {
347
+ console.error('❌ Fatal error:', error);
348
+ process.exit(1);
349
+ });