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,350 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Post-Deployment Monitoring Script
5
+ *
6
+ * Tracks NPM downloads, installation success rate, and deployment health
7
+ */
8
+
9
+ import fs from 'fs';
10
+ import path from 'path';
11
+ import { fileURLToPath } from 'url';
12
+ import { execSync } from 'child_process';
13
+
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = path.dirname(__filename);
16
+ const projectRoot = path.resolve(__dirname, '..');
17
+
18
+ console.log('šŸ“Š Post-Deployment Monitoring\n');
19
+
20
+ const packageJson = JSON.parse(
21
+ fs.readFileSync(path.join(projectRoot, 'package.json'), 'utf8')
22
+ );
23
+
24
+ const packageName = packageJson.name;
25
+ const packageVersion = packageJson.version;
26
+
27
+ console.log(`Package: ${packageName}@${packageVersion}`);
28
+ console.log('═'.repeat(60));
29
+
30
+ // Monitoring checks
31
+ const checks = {
32
+ npmAvailability: async () => {
33
+ console.log('\nšŸ” NPM Package Availability');
34
+ console.log('-'.repeat(60));
35
+
36
+ try {
37
+ const result = execSync(`npm view ${packageName}@${packageVersion} --json`, {
38
+ encoding: 'utf8',
39
+ stdio: 'pipe'
40
+ });
41
+
42
+ const npmInfo = JSON.parse(result);
43
+
44
+ console.log('āœ… Package is available on NPM');
45
+ console.log(` Name: ${npmInfo.name}`);
46
+ console.log(` Version: ${npmInfo.version}`);
47
+ console.log(` Published: ${new Date(npmInfo.time[npmInfo.version]).toISOString()}`);
48
+
49
+ if (npmInfo.dist) {
50
+ console.log(` Tarball Size: ${(npmInfo.dist.unpackedSize / 1024 / 1024).toFixed(2)}MB`);
51
+ }
52
+
53
+ return {
54
+ status: 'success',
55
+ available: true,
56
+ publishedAt: npmInfo.time[npmInfo.version],
57
+ size: npmInfo.dist ? npmInfo.dist.unpackedSize : null
58
+ };
59
+ } catch (error) {
60
+ console.log('āŒ Package not yet available on NPM');
61
+ console.log(` Error: ${error.message}`);
62
+
63
+ return {
64
+ status: 'error',
65
+ available: false,
66
+ error: error.message
67
+ };
68
+ }
69
+ },
70
+
71
+ downloadStats: async () => {
72
+ console.log('\nšŸ“ˆ Download Statistics');
73
+ console.log('-'.repeat(60));
74
+
75
+ try {
76
+ // Get download stats from npm
77
+ const result = execSync(`npm view ${packageName} --json`, {
78
+ encoding: 'utf8',
79
+ stdio: 'pipe'
80
+ });
81
+
82
+ const npmInfo = JSON.parse(result);
83
+
84
+ // Try to fetch download stats (requires external API)
85
+ try {
86
+ const lastWeekResult = execSync(
87
+ `curl -s https://api.npmjs.org/downloads/point/last-week/${packageName}`,
88
+ { encoding: 'utf8', stdio: 'pipe' }
89
+ );
90
+
91
+ const downloadStats = JSON.parse(lastWeekResult);
92
+
93
+ console.log('āœ… Download statistics retrieved');
94
+ console.log(` Last Week Downloads: ${downloadStats.downloads || 'N/A'}`);
95
+
96
+ return {
97
+ status: 'success',
98
+ lastWeekDownloads: downloadStats.downloads || 0
99
+ };
100
+ } catch (statsError) {
101
+ console.log('āš ļø Download stats not yet available (package may be newly published)');
102
+ return {
103
+ status: 'pending',
104
+ lastWeekDownloads: 0
105
+ };
106
+ }
107
+ } catch (error) {
108
+ console.log('āŒ Unable to retrieve download statistics');
109
+ console.log(` Error: ${error.message}`);
110
+
111
+ return {
112
+ status: 'error',
113
+ error: error.message
114
+ };
115
+ }
116
+ },
117
+
118
+ installationTest: async () => {
119
+ console.log('\n🧪 Installation Test');
120
+ console.log('-'.repeat(60));
121
+
122
+ const testDir = path.join(projectRoot, '.test-install');
123
+
124
+ try {
125
+ // Clean up previous test
126
+ if (fs.existsSync(testDir)) {
127
+ fs.rmSync(testDir, { recursive: true, force: true });
128
+ }
129
+
130
+ // Create test directory
131
+ fs.mkdirSync(testDir, { recursive: true });
132
+
133
+ // Initialize package.json
134
+ execSync('npm init -y', { cwd: testDir, stdio: 'pipe' });
135
+
136
+ console.log('Installing package from NPM...');
137
+
138
+ // Try to install from NPM
139
+ const installStart = Date.now();
140
+ execSync(`npm install ${packageName}@${packageVersion}`, {
141
+ cwd: testDir,
142
+ stdio: 'pipe',
143
+ timeout: 60000
144
+ });
145
+ const installTime = Date.now() - installStart;
146
+
147
+ console.log(`āœ… Installation successful (${(installTime / 1000).toFixed(2)}s)`);
148
+
149
+ // Verify CLI commands
150
+ try {
151
+ execSync(`npx ${packageName} --help`, {
152
+ cwd: testDir,
153
+ stdio: 'pipe',
154
+ timeout: 10000
155
+ });
156
+
157
+ console.log('āœ… CLI commands working');
158
+
159
+ // Verify package import
160
+ const testScript = `
161
+ const pkg = require('${packageName}');
162
+ console.log('Package loaded successfully');
163
+ `;
164
+
165
+ fs.writeFileSync(path.join(testDir, 'test.js'), testScript);
166
+ execSync('node test.js', { cwd: testDir, stdio: 'pipe' });
167
+
168
+ console.log('āœ… Package import working');
169
+
170
+ // Cleanup
171
+ fs.rmSync(testDir, { recursive: true, force: true });
172
+
173
+ return {
174
+ status: 'success',
175
+ installTime,
176
+ cliWorking: true,
177
+ importWorking: true
178
+ };
179
+ } catch (verifyError) {
180
+ console.log('āš ļø Package installed but verification failed');
181
+ console.log(` Error: ${verifyError.message}`);
182
+
183
+ return {
184
+ status: 'partial',
185
+ installTime,
186
+ cliWorking: false,
187
+ error: verifyError.message
188
+ };
189
+ }
190
+ } catch (error) {
191
+ console.log('āŒ Installation test failed');
192
+ console.log(` Error: ${error.message}`);
193
+
194
+ // Cleanup
195
+ if (fs.existsSync(testDir)) {
196
+ fs.rmSync(testDir, { recursive: true, force: true });
197
+ }
198
+
199
+ return {
200
+ status: 'error',
201
+ error: error.message
202
+ };
203
+ }
204
+ },
205
+
206
+ healthCheck: async () => {
207
+ console.log('\nšŸ„ Health Check');
208
+ console.log('-'.repeat(60));
209
+
210
+ const healthMetrics = {
211
+ npmRegistry: false,
212
+ githubRelease: false,
213
+ documentationAccessible: false
214
+ };
215
+
216
+ // Check NPM registry
217
+ try {
218
+ execSync(`npm view ${packageName}@${packageVersion}`, {
219
+ stdio: 'pipe',
220
+ timeout: 10000
221
+ });
222
+ healthMetrics.npmRegistry = true;
223
+ console.log('āœ… NPM Registry: Accessible');
224
+ } catch (error) {
225
+ console.log('āŒ NPM Registry: Not accessible');
226
+ }
227
+
228
+ // Check GitHub release (if applicable)
229
+ try {
230
+ const repoUrl = packageJson.repository?.url;
231
+ if (repoUrl) {
232
+ const match = repoUrl.match(/github\.com[:/](.+?)(?:\.git)?$/);
233
+ if (match) {
234
+ const repo = match[1];
235
+ const tagName = `v${packageVersion}`;
236
+
237
+ // Try to check if release exists
238
+ try {
239
+ execSync(`gh release view ${tagName} -R ${repo}`, {
240
+ stdio: 'pipe',
241
+ timeout: 10000
242
+ });
243
+ healthMetrics.githubRelease = true;
244
+ console.log('āœ… GitHub Release: Published');
245
+ } catch (ghError) {
246
+ console.log('āš ļø GitHub Release: Not yet available');
247
+ }
248
+ }
249
+ } else {
250
+ console.log('āš ļø GitHub Release: Repository URL not configured');
251
+ }
252
+ } catch (error) {
253
+ console.log('āš ļø GitHub Release: Unable to verify');
254
+ }
255
+
256
+ // Check documentation accessibility
257
+ try {
258
+ const readmePath = path.join(projectRoot, 'README.md');
259
+ if (fs.existsSync(readmePath)) {
260
+ healthMetrics.documentationAccessible = true;
261
+ console.log('āœ… Documentation: Accessible');
262
+ } else {
263
+ console.log('āš ļø Documentation: README.md not found');
264
+ }
265
+ } catch (error) {
266
+ console.log('āŒ Documentation: Unable to verify');
267
+ }
268
+
269
+ const healthScore =
270
+ (healthMetrics.npmRegistry ? 40 : 0) +
271
+ (healthMetrics.githubRelease ? 30 : 0) +
272
+ (healthMetrics.documentationAccessible ? 30 : 0);
273
+
274
+ console.log(`\nOverall Health Score: ${healthScore}/100`);
275
+
276
+ return {
277
+ status: healthScore >= 70 ? 'healthy' : healthScore >= 40 ? 'degraded' : 'unhealthy',
278
+ score: healthScore,
279
+ metrics: healthMetrics
280
+ };
281
+ }
282
+ };
283
+
284
+ // Execute all monitoring checks
285
+ const runMonitoring = async () => {
286
+ const results = {
287
+ timestamp: new Date().toISOString(),
288
+ package: {
289
+ name: packageName,
290
+ version: packageVersion
291
+ },
292
+ checks: {}
293
+ };
294
+
295
+ try {
296
+ results.checks.npmAvailability = await checks.npmAvailability();
297
+ results.checks.downloadStats = await checks.downloadStats();
298
+ results.checks.installationTest = await checks.installationTest();
299
+ results.checks.healthCheck = await checks.healthCheck();
300
+
301
+ // Calculate overall status
302
+ const criticalChecks = ['npmAvailability', 'installationTest'];
303
+ const criticalPassed = criticalChecks.every(
304
+ check => results.checks[check].status === 'success'
305
+ );
306
+
307
+ results.overallStatus = criticalPassed ? 'healthy' : 'degraded';
308
+
309
+ // Save report
310
+ const reportDir = path.join(projectRoot, '.claude-flow-novice/monitoring');
311
+ fs.mkdirSync(reportDir, { recursive: true });
312
+
313
+ const reportPath = path.join(reportDir, `deployment-${packageVersion}-${Date.now()}.json`);
314
+ fs.writeFileSync(reportPath, JSON.stringify(results, null, 2));
315
+
316
+ console.log('\n' + '═'.repeat(60));
317
+ console.log('Monitoring Summary');
318
+ console.log('═'.repeat(60));
319
+ console.log(`Overall Status: ${results.overallStatus.toUpperCase()}`);
320
+ console.log(`Report saved: ${reportPath}`);
321
+
322
+ // Exit code based on health
323
+ if (results.overallStatus === 'healthy') {
324
+ console.log('\nāœ… Deployment monitoring: All systems healthy\n');
325
+ process.exit(0);
326
+ } else {
327
+ console.log('\nāš ļø Deployment monitoring: Some checks failed\n');
328
+ process.exit(0); // Don't fail the workflow
329
+ }
330
+ } catch (error) {
331
+ console.error('\nāŒ Monitoring failed:', error.message);
332
+ results.error = error.message;
333
+
334
+ // Save error report
335
+ const reportDir = path.join(projectRoot, '.claude-flow-novice/monitoring');
336
+ fs.mkdirSync(reportDir, { recursive: true });
337
+
338
+ const reportPath = path.join(reportDir, `deployment-error-${Date.now()}.json`);
339
+ fs.writeFileSync(reportPath, JSON.stringify(results, null, 2));
340
+
341
+ console.log(`Error report saved: ${reportPath}\n`);
342
+ process.exit(0); // Don't fail the workflow
343
+ }
344
+ };
345
+
346
+ // Run monitoring
347
+ runMonitoring().catch(error => {
348
+ console.error('Fatal error:', error);
349
+ process.exit(1);
350
+ });