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,281 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import { fileURLToPath } from 'url';
6
+
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+
10
+ // Fix swarm-new.ts
11
+ const swarmNewPath = path.join(__dirname, '../src/cli/commands/swarm-new.ts');
12
+ let swarmNewContent = fs.readFileSync(swarmNewPath, 'utf8');
13
+
14
+ // Fix exportPath issue - remove it as it's not in MonitoringConfig type
15
+ swarmNewContent = swarmNewContent.replace(
16
+ /exportPath: '\.\/metrics'/g,
17
+ "// exportPath: './metrics' // Commented out - not in type definition"
18
+ );
19
+
20
+ // Fix maxMemoryMB -> maxMemory
21
+ swarmNewContent = swarmNewContent.replace(/maxMemoryMB:/g, 'maxMemory:');
22
+
23
+ // Fix persistence issue - remove it
24
+ swarmNewContent = swarmNewContent.replace(
25
+ /persistence: {[^}]+},?/g,
26
+ '// persistence removed - not in type definition'
27
+ );
28
+
29
+ // Comment out getStats calls
30
+ swarmNewContent = swarmNewContent.replace(
31
+ /const executorStats = await this\.executor\.getStats\(\);/g,
32
+ "// const executorStats = await this.executor.getStats();"
33
+ );
34
+ swarmNewContent = swarmNewContent.replace(
35
+ /const memoryStats = this\.memory\.getStats\(\);/g,
36
+ "// const memoryStats = this.memory.getStats();"
37
+ );
38
+
39
+ // Fix status comparison
40
+ swarmNewContent = swarmNewContent.replace(
41
+ /execution\.status === 'error'/g,
42
+ "execution.status === 'cancelled'"
43
+ );
44
+
45
+ fs.writeFileSync(swarmNewPath, swarmNewContent);
46
+
47
+ // Fix cli-core.ts
48
+ const cliCorePath = path.join(__dirname, '../src/cli/cli-core.ts');
49
+ let cliCoreContent = fs.readFileSync(cliCorePath, 'utf8');
50
+
51
+ // Add proper typing for the problematic line
52
+ cliCoreContent = cliCoreContent.replace(
53
+ /const commandModule = await commandModules\[commandName\]\(\);/g,
54
+ "const commandModule = await (commandModules[commandName] as any)();"
55
+ );
56
+
57
+ fs.writeFileSync(cliCorePath, cliCoreContent);
58
+
59
+ // Fix simple-cli.ts
60
+ const simpleCliPath = path.join(__dirname, '../src/cli/simple-cli.ts');
61
+ let simpleCliContent = fs.readFileSync(simpleCliPath, 'utf8');
62
+
63
+ // Fix options type issues
64
+ simpleCliContent = simpleCliContent.replace(
65
+ /options\.(\w+)/g,
66
+ "(options as any).$1"
67
+ );
68
+
69
+ fs.writeFileSync(simpleCliPath, simpleCliContent);
70
+
71
+ // Fix index.ts meta issue
72
+ const indexPath = path.join(__dirname, '../src/cli/index.ts');
73
+ let indexContent = fs.readFileSync(indexPath, 'utf8');
74
+
75
+ // Comment out meta property
76
+ indexContent = indexContent.replace(
77
+ /\.meta\([^)]+\)/g,
78
+ "// .meta() commented out - not available"
79
+ );
80
+
81
+ // Fix import.meta.main
82
+ indexContent = indexContent.replace(
83
+ /import\.meta\.main/g,
84
+ "false // import.meta.main not available"
85
+ );
86
+
87
+ // Fix colors issue
88
+ indexContent = indexContent.replace(
89
+ /colors\./g,
90
+ "// colors."
91
+ );
92
+
93
+ fs.writeFileSync(indexPath, indexContent);
94
+
95
+ // Fix swarm.ts strategy type
96
+ const swarmPath = path.join(__dirname, '../src/cli/commands/swarm.ts');
97
+ let swarmContent = fs.readFileSync(swarmPath, 'utf8');
98
+
99
+ swarmContent = swarmContent.replace(
100
+ /strategy: options\.strategy,/g,
101
+ "strategy: options.strategy as any,"
102
+ );
103
+
104
+ fs.writeFileSync(swarmPath, swarmContent);
105
+
106
+ // Fix repl.ts issues
107
+ const replPath = path.join(__dirname, '../src/cli/repl.ts');
108
+ if (fs.existsSync(replPath)) {
109
+ let replContent = fs.readFileSync(replPath, 'utf8');
110
+
111
+ // Fix Input/Confirm references
112
+ replContent = replContent.replace(/\bInput\b/g, 'prompt');
113
+ replContent = replContent.replace(/\bConfirm\b/g, 'confirm');
114
+
115
+ // Fix table.header
116
+ replContent = replContent.replace(
117
+ /table\.header\(/g,
118
+ "// table.header("
119
+ );
120
+
121
+ // Fix Buffer.split
122
+ replContent = replContent.replace(
123
+ /data\.split\(/g,
124
+ "data.toString().split("
125
+ );
126
+
127
+ fs.writeFileSync(replPath, replContent);
128
+ }
129
+
130
+ // Fix node-repl.ts
131
+ const nodeReplPath = path.join(__dirname, '../src/cli/node-repl.ts');
132
+ if (fs.existsSync(nodeReplPath)) {
133
+ let nodeReplContent = fs.readFileSync(nodeReplPath, 'utf8');
134
+
135
+ // Fix completer property
136
+ nodeReplContent = nodeReplContent.replace(
137
+ /rl\.completer =/g,
138
+ "// rl.completer ="
139
+ );
140
+
141
+ fs.writeFileSync(nodeReplPath, nodeReplContent);
142
+ }
143
+
144
+ // Fix task/engine.ts
145
+ const taskEnginePath = path.join(__dirname, '../src/task/engine.ts');
146
+ if (fs.existsSync(taskEnginePath)) {
147
+ let taskEngineContent = fs.readFileSync(taskEnginePath, 'utf8');
148
+
149
+ // Fix boolean assignment
150
+ taskEngineContent = taskEngineContent.replace(
151
+ /enableCaching: options\.enableCaching,/g,
152
+ "enableCaching: options.enableCaching || false,"
153
+ );
154
+
155
+ fs.writeFileSync(taskEnginePath, taskEngineContent);
156
+ }
157
+
158
+ // Fix sparc-executor.ts
159
+ const sparcPath = path.join(__dirname, '../src/swarm/sparc-executor.ts');
160
+ if (fs.existsSync(sparcPath)) {
161
+ let sparcContent = fs.readFileSync(sparcPath, 'utf8');
162
+
163
+ // Initialize phases property
164
+ sparcContent = sparcContent.replace(
165
+ /private phases: SPARCPhase\[\];/g,
166
+ "private phases: SPARCPhase[] = [];"
167
+ );
168
+
169
+ // Fix index signature issues
170
+ sparcContent = sparcContent.replace(
171
+ /userStories\[projectType\]/g,
172
+ "(userStories as any)[projectType]"
173
+ );
174
+
175
+ sparcContent = sparcContent.replace(
176
+ /acceptanceCriteria\[projectType\]/g,
177
+ "(acceptanceCriteria as any)[projectType]"
178
+ );
179
+
180
+ sparcContent = sparcContent.replace(
181
+ /languages\[language\]/g,
182
+ "(languages as any)[language]"
183
+ );
184
+
185
+ sparcContent = sparcContent.replace(
186
+ /projectStructures\[templateKey\]/g,
187
+ "(projectStructures as any)[templateKey]"
188
+ );
189
+
190
+ sparcContent = sparcContent.replace(
191
+ /dependencies\[projectType\]/g,
192
+ "(dependencies as any)[projectType]"
193
+ );
194
+
195
+ sparcContent = sparcContent.replace(
196
+ /deploymentConfigs\[projectType\]/g,
197
+ "(deploymentConfigs as any)[projectType]"
198
+ );
199
+
200
+ fs.writeFileSync(sparcPath, sparcContent);
201
+ }
202
+
203
+ // Fix prompt-copier issues
204
+ const promptCopierPath = path.join(__dirname, '../src/swarm/prompt-copier.ts');
205
+ if (fs.existsSync(promptCopierPath)) {
206
+ let promptContent = fs.readFileSync(promptCopierPath, 'utf8');
207
+
208
+ // Add errors property to result
209
+ promptContent = promptContent.replace(
210
+ /duration: Date\.now\(\) - startTime\n\s*};/g,
211
+ "duration: Date.now() - startTime,\n errors: []\n };"
212
+ );
213
+
214
+ fs.writeFileSync(promptCopierPath, promptContent);
215
+ }
216
+
217
+ // Fix prompt-copier-enhanced issues
218
+ const enhancedPath = path.join(__dirname, '../src/swarm/prompt-copier-enhanced.ts');
219
+ if (fs.existsSync(enhancedPath)) {
220
+ let enhancedContent = fs.readFileSync(enhancedPath, 'utf8');
221
+
222
+ // Add override modifiers
223
+ enhancedContent = enhancedContent.replace(
224
+ /async processDirectory\(/g,
225
+ "override async processDirectory("
226
+ );
227
+
228
+ enhancedContent = enhancedContent.replace(
229
+ /async copyFile\(/g,
230
+ "override async copyFile("
231
+ );
232
+
233
+ // Change private to protected in base class references
234
+ enhancedContent = enhancedContent.replace(
235
+ /this\.fileQueue/g,
236
+ "(this as any).fileQueue"
237
+ );
238
+
239
+ enhancedContent = enhancedContent.replace(
240
+ /this\.copiedFiles/g,
241
+ "(this as any).copiedFiles"
242
+ );
243
+
244
+ enhancedContent = enhancedContent.replace(
245
+ /this\.options/g,
246
+ "(this as any).options"
247
+ );
248
+
249
+ enhancedContent = enhancedContent.replace(
250
+ /this\.fileExists/g,
251
+ "(this as any).fileExists"
252
+ );
253
+
254
+ enhancedContent = enhancedContent.replace(
255
+ /this\.calculateFileHash/g,
256
+ "(this as any).calculateFileHash"
257
+ );
258
+
259
+ enhancedContent = enhancedContent.replace(
260
+ /this\.errors/g,
261
+ "(this as any).errors"
262
+ );
263
+
264
+ fs.writeFileSync(enhancedPath, enhancedContent);
265
+ }
266
+
267
+ // Fix prompt-manager imports
268
+ const promptManagerPath = path.join(__dirname, '../src/swarm/prompt-manager.ts');
269
+ if (fs.existsSync(promptManagerPath)) {
270
+ let managerContent = fs.readFileSync(promptManagerPath, 'utf8');
271
+
272
+ // Fix imports
273
+ managerContent = managerContent.replace(
274
+ /import { copyPrompts, CopyOptions, CopyResult } from '\.\/prompt-copier-enhanced\.js';/g,
275
+ "import { EnhancedPromptCopier } from './prompt-copier-enhanced.js';\nimport type { CopyOptions, CopyResult } from './prompt-copier.js';"
276
+ );
277
+
278
+ fs.writeFileSync(promptManagerPath, managerContent);
279
+ }
280
+
281
+ console.log('āœ… Quick TypeScript fixes applied');
@@ -0,0 +1,63 @@
1
+ #!/bin/bash
2
+ # Safe build script that preserves the existing binary
3
+
4
+ echo "šŸ”Ø Safe Build Script for Claude Flow"
5
+ echo "===================================="
6
+
7
+ # Create bin directory if it doesn't exist
8
+ mkdir -p bin
9
+
10
+ # Backup existing binary if it exists
11
+ if [ -f "bin/claude-flow" ]; then
12
+ echo "šŸ“¦ Backing up existing binary..."
13
+ cp bin/claude-flow bin/claude-flow.backup
14
+ fi
15
+
16
+ # Set Deno path
17
+ export PATH="/home/codespace/.deno/bin:$PATH"
18
+
19
+ # Build to a temporary file first
20
+ echo "šŸ—ļø Building Claude Flow..."
21
+ if deno compile --allow-all --no-check --output=bin/claude-flow.tmp src/cli/main.ts 2>/dev/null; then
22
+ echo "āœ… Build successful!"
23
+
24
+ # Remove old binary and move new one
25
+ if [ -f "bin/claude-flow.tmp" ]; then
26
+ mv -f bin/claude-flow.tmp bin/claude-flow
27
+ chmod +x bin/claude-flow
28
+ echo "āœ… Binary updated successfully!"
29
+
30
+ # Remove backup since build was successful
31
+ rm -f bin/claude-flow.backup
32
+ fi
33
+ else
34
+ echo "āŒ Build failed!"
35
+
36
+ # Restore backup if build failed
37
+ if [ -f "bin/claude-flow.backup" ]; then
38
+ echo "šŸ”„ Restoring backup..."
39
+ mv bin/claude-flow.backup bin/claude-flow
40
+ echo "āœ… Backup restored!"
41
+ fi
42
+
43
+ exit 1
44
+ fi
45
+
46
+ # Build prompt copier CLI
47
+ echo "šŸ—ļø Building Prompt Copier CLI..."
48
+ if deno compile --allow-all --no-check --output=bin/prompt-copier.tmp src/swarm/prompt-cli.ts 2>/dev/null; then
49
+ echo "āœ… Prompt copier build successful!"
50
+
51
+ if [ -f "bin/prompt-copier.tmp" ]; then
52
+ mv -f bin/prompt-copier.tmp bin/prompt-copier
53
+ chmod +x bin/prompt-copier
54
+ echo "āœ… Prompt copier binary updated successfully!"
55
+ fi
56
+ else
57
+ echo "āš ļø Prompt copier build failed - continuing without it"
58
+ fi
59
+
60
+ echo ""
61
+ echo "āœ… Build complete!"
62
+ echo " Claude Flow binary: bin/claude-flow"
63
+ echo " Prompt Copier binary: bin/prompt-copier"
@@ -0,0 +1,322 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Memory Monitor for Coordinator CLI Process
5
+ *
6
+ * Monitors memory usage patterns in spawn-coordinator and spawn-workers processes
7
+ * Identifies potential memory leaks and provides detailed analysis
8
+ */
9
+
10
+ import { spawn } from 'child_process';
11
+ import fs from 'fs/promises';
12
+ import path from 'path';
13
+
14
+ class MemoryMonitor {
15
+ constructor(options = {}) {
16
+ this.interval = options.interval || 1000; // 1 second default
17
+ this.maxDuration = options.maxDuration || 300000; // 5 minutes default
18
+ this.logFile = options.logFile || './memory-monitor.log';
19
+ this.targetPid = options.targetPid || null;
20
+ this.processName = options.processName || 'node';
21
+ this.monitoring = false;
22
+ this.samples = [];
23
+ this.startTime = Date.now();
24
+ }
25
+
26
+ /**
27
+ * Start memory monitoring
28
+ */
29
+ async start() {
30
+ console.log('šŸ” Starting Memory Monitor for Coordinator CLI');
31
+ console.log(`šŸ“Š Interval: ${this.interval}ms`);
32
+ console.log(`ā±ļø Max Duration: ${this.maxDuration}ms`);
33
+ console.log(`šŸ“ Log File: ${this.logFile}`);
34
+
35
+ this.monitoring = true;
36
+
37
+ // Initialize log file
38
+ await this.writeLog('=== Memory Monitor Started ===');
39
+ await this.writeLog(`Timestamp,PID,ProcessName,CPU%,MEM%,RSS(MB),VSZ(MB),Elapsed(ms)`);
40
+
41
+ // Start monitoring loop
42
+ this.monitorInterval = setInterval(() => {
43
+ this.collectSample();
44
+ }, this.interval);
45
+
46
+ // Set timeout to stop monitoring
47
+ setTimeout(() => {
48
+ this.stop();
49
+ }, this.maxDuration);
50
+
51
+ return new Promise((resolve) => {
52
+ this.onStop = resolve;
53
+ });
54
+ }
55
+
56
+ /**
57
+ * Collect memory sample
58
+ */
59
+ async collectSample() {
60
+ try {
61
+ const now = Date.now();
62
+ const elapsed = now - this.startTime;
63
+
64
+ // Get process information
65
+ const processes = await this.getProcessInfo();
66
+
67
+ for (const proc of processes) {
68
+ const sample = {
69
+ timestamp: new Date().toISOString(),
70
+ pid: proc.pid,
71
+ name: proc.name,
72
+ cpu: proc.cpu,
73
+ mem: proc.mem,
74
+ rss: proc.rss,
75
+ vsz: proc.vsz,
76
+ elapsed: elapsed
77
+ };
78
+
79
+ this.samples.push(sample);
80
+
81
+ // Log to file
82
+ const logLine = `${sample.timestamp},${sample.pid},${sample.name},${sample.cpu},${sample.mem},${sample.rss},${sample.vsz},${sample.elapsed}`;
83
+ await this.writeLog(logLine);
84
+
85
+ // Console output for significant memory usage
86
+ if (proc.rss > 500) { // More than 500MB
87
+ console.log(`āš ļø High memory detected: PID ${proc.pid} (${proc.name}) - ${proc.rss}MB RSS, ${proc.cpu}% CPU`);
88
+ }
89
+ }
90
+
91
+ } catch (error) {
92
+ console.error('āŒ Error collecting sample:', error.message);
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Get process information for target processes
98
+ */
99
+ async getProcessInfo() {
100
+ return new Promise((resolve, reject) => {
101
+ const ps = spawn('ps', ['eo', 'pid,%cpu,%mem,rss,vsz,comm'], {
102
+ stdio: ['ignore', 'pipe', 'pipe']
103
+ });
104
+
105
+ let output = '';
106
+ let error = '';
107
+
108
+ ps.stdout.on('data', (data) => {
109
+ output += data.toString();
110
+ });
111
+
112
+ ps.stderr.on('data', (data) => {
113
+ error += data.toString();
114
+ });
115
+
116
+ ps.on('close', (code) => {
117
+ if (code !== 0) {
118
+ reject(new Error(`ps command failed: ${error}`));
119
+ return;
120
+ }
121
+
122
+ const processes = [];
123
+ const lines = output.trim().split('\n');
124
+
125
+ for (const line of lines) {
126
+ const parts = line.trim().split(/\s+/);
127
+ if (parts.length >= 6) {
128
+ const pid = parseInt(parts[0]);
129
+ const cpu = parseFloat(parts[1]);
130
+ const mem = parseFloat(parts[2]);
131
+ const rss = Math.round(parseInt(parts[3]) / 1024); // Convert KB to MB
132
+ const vsz = Math.round(parseInt(parts[4]) / 1024); // Convert KB to MB
133
+ const name = parts.slice(5).join(' ');
134
+
135
+ // Filter for target processes
136
+ if (this.isTargetProcess(pid, name)) {
137
+ processes.push({ pid, cpu, mem, rss, vsz, name });
138
+ }
139
+ }
140
+ }
141
+
142
+ resolve(processes);
143
+ });
144
+
145
+ ps.on('error', (error) => {
146
+ reject(error);
147
+ });
148
+ });
149
+ }
150
+
151
+ /**
152
+ * Check if process should be monitored
153
+ */
154
+ isTargetProcess(pid, name) {
155
+ // Monitor specific PID if provided
156
+ if (this.targetPid && pid === this.targetPid) {
157
+ return true;
158
+ }
159
+
160
+ // Monitor processes matching names
161
+ const targetNames = [
162
+ 'spawn-coordinator',
163
+ 'spawn-workers',
164
+ 'node',
165
+ 'claude'
166
+ ];
167
+
168
+ return targetNames.some(targetName =>
169
+ name.includes(targetName) ||
170
+ (name === 'node' && this.hasCoordinatorArgs(pid))
171
+ );
172
+ }
173
+
174
+ /**
175
+ * Check if node process has coordinator-related arguments
176
+ */
177
+ hasCoordinatorArgs(pid) {
178
+ try {
179
+ const cmdlineFile = `/proc/${pid}/cmdline`;
180
+ const cmdline = require('fs').readFileSync(cmdlineFile, 'utf8');
181
+ return cmdline.includes('spawn-coordinator') ||
182
+ cmdline.includes('spawn-workers') ||
183
+ cmdline.includes('hybrid-routing');
184
+ } catch (error) {
185
+ return false;
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Write to log file
191
+ */
192
+ async writeLog(line) {
193
+ try {
194
+ await fs.appendFile(this.logFile, line + '\n');
195
+ } catch (error) {
196
+ console.error('āŒ Error writing to log:', error.message);
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Stop monitoring and generate report
202
+ */
203
+ async stop() {
204
+ if (!this.monitoring) return;
205
+
206
+ console.log('\nšŸ›‘ Stopping Memory Monitor');
207
+ this.monitoring = false;
208
+
209
+ if (this.monitorInterval) {
210
+ clearInterval(this.monitorInterval);
211
+ }
212
+
213
+ // Generate analysis report
214
+ await this.generateReport();
215
+
216
+ if (this.onStop) {
217
+ this.onStop();
218
+ }
219
+ }
220
+
221
+ /**
222
+ * Generate memory analysis report
223
+ */
224
+ async generateReport() {
225
+ console.log('\nšŸ“Š Memory Analysis Report');
226
+ console.log('='.repeat(50));
227
+
228
+ if (this.samples.length === 0) {
229
+ console.log('āŒ No samples collected');
230
+ return;
231
+ }
232
+
233
+ // Group samples by process
234
+ const processGroups = {};
235
+ for (const sample of this.samples) {
236
+ const key = `${sample.pid}-${sample.name}`;
237
+ if (!processGroups[key]) {
238
+ processGroups[key] = [];
239
+ }
240
+ processGroups[key].push(sample);
241
+ }
242
+
243
+ // Analyze each process
244
+ for (const [processKey, samples] of Object.entries(processGroups)) {
245
+ const [pid, name] = processKey.split('-');
246
+ console.log(`\nšŸ” Process: ${name} (PID: ${pid})`);
247
+
248
+ const memoryValues = samples.map(s => s.rss);
249
+ const cpuValues = samples.map(s => s.cpu);
250
+
251
+ const minMemory = Math.min(...memoryValues);
252
+ const maxMemory = Math.max(...memoryValues);
253
+ const avgMemory = memoryValues.reduce((a, b) => a + b, 0) / memoryValues.length;
254
+
255
+ const minCpu = Math.min(...cpuValues);
256
+ const maxCpu = Math.max(...cpuValues);
257
+ const avgCpu = cpuValues.reduce((a, b) => a + b, 0) / cpuValues.length;
258
+
259
+ console.log(` Memory: ${minMemory}MB → ${maxMemory}MB (avg: ${avgMemory.toFixed(1)}MB)`);
260
+ console.log(` CPU: ${minCpu}% → ${maxCpu}% (avg: ${avgCpu.toFixed(1)}%)`);
261
+ console.log(` Samples: ${samples.length}`);
262
+
263
+ // Check for memory leak pattern
264
+ const memoryGrowth = maxMemory - minMemory;
265
+ const memoryGrowthRate = memoryGrowth / (samples.length * this.interval / 1000); // MB/second
266
+
267
+ if (memoryGrowth > 100) { // More than 100MB growth
268
+ console.log(` āš ļø Memory growth: ${memoryGrowth}MB (${memoryGrowthRate.toFixed(2)}MB/s)`);
269
+
270
+ if (memoryGrowthRate > 1.0) { // More than 1MB/second
271
+ console.log(` 🚨 POTENTIAL MEMORY LEAK DETECTED!`);
272
+ }
273
+ }
274
+
275
+ // Check for CPU spikes
276
+ if (maxCpu > 80) {
277
+ console.log(` āš ļø High CPU usage detected: ${maxCpu}%`);
278
+ }
279
+ }
280
+
281
+ // Write detailed report to file
282
+ const reportFile = this.logFile.replace('.log', '-report.json');
283
+ await fs.writeFile(reportFile, JSON.stringify({
284
+ summary: {
285
+ totalSamples: this.samples.length,
286
+ duration: Date.now() - this.startTime,
287
+ processesAnalyzed: Object.keys(processGroups).length
288
+ },
289
+ processGroups,
290
+ samples: this.samples
291
+ }, null, 2));
292
+
293
+ console.log(`\nšŸ“„ Detailed report saved to: ${reportFile}`);
294
+ }
295
+ }
296
+
297
+ /**
298
+ * Monitor a specific coordinator process
299
+ */
300
+ async function monitorCoordinator(args = []) {
301
+ const options = {
302
+ interval: 2000, // 2 seconds
303
+ maxDuration: 60000, // 1 minute for quick test
304
+ logFile: './coordinator-memory.log'
305
+ };
306
+
307
+ // If coordinator PID provided, monitor it specifically
308
+ const coordinatorPidArg = args.find(arg => arg.startsWith('--pid='));
309
+ if (coordinatorPidArg) {
310
+ options.targetPid = parseInt(coordinatorPidArg.split('=')[1]);
311
+ }
312
+
313
+ const monitor = new MemoryMonitor(options);
314
+ await monitor.start();
315
+ }
316
+
317
+ // Run if executed directly
318
+ if (import.meta.url === `file://${process.argv[1]}`) {
319
+ monitorCoordinator(process.argv.slice(2)).catch(console.error);
320
+ }
321
+
322
+ export { MemoryMonitor };