claude-flow-novice 1.3.0 โ†’ 1.3.2

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 (305) hide show
  1. package/.claude-flow-novice/preferences/generation.json +147 -0
  2. package/.claude-flow-novice/preferences/language-configs/javascript.json +51 -0
  3. package/.claude-flow-novice/preferences/language-configs/python.json +50 -0
  4. package/.claude-flow-novice/preferences/language-configs/rust.json +237 -0
  5. package/.claude-flow-novice/preferences/language-configs/typescript.json +54 -0
  6. package/.claude-flow-novice/preferences/project-local.json +91 -0
  7. package/.claude-flow-novice/preferences/resource-delegation.json +120 -0
  8. package/.claude-flow-novice/preferences/team-shared.json +195 -0
  9. package/.claude-flow-novice/preferences/user-global.json +247 -0
  10. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-JAVASCRIPT.md +769 -0
  11. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-PYTHON.md +1214 -0
  12. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-RUST.md +475 -0
  13. package/.claude-flow-novice/templates/claude-md-templates/CLAUDE-TYPESCRIPT.md +851 -0
  14. package/.claude-flow-novice/templates/claude-md-templates/README.md +263 -0
  15. package/CLAUDE.md +81 -0
  16. package/README-NPM.md +0 -0
  17. package/package.json +11 -7
  18. package/scripts/build/README.md +167 -0
  19. package/scripts/build/build-config.js +27 -0
  20. package/scripts/build/build-prompt-copier.sh +30 -0
  21. package/scripts/build/performance-monitor.js +869 -0
  22. package/scripts/build/prepare-publish.js +150 -0
  23. package/scripts/build/typescript-fixer.js +621 -0
  24. package/scripts/build/unified-builder.sh +428 -0
  25. package/scripts/build/update-bin-version.js +32 -0
  26. package/scripts/dev/README.md +264 -0
  27. package/scripts/dev/claude-flow-wrapper.sh +35 -0
  28. package/scripts/dev/claude-monitor.py +419 -0
  29. package/scripts/dev/claude-sparc.sh +562 -0
  30. package/scripts/dev/claude-wrapper.sh +17 -0
  31. package/scripts/dev/demo-phase3-compliance.js +172 -0
  32. package/scripts/dev/demo-task-system.ts +224 -0
  33. package/scripts/dev/deployment-validator.js +315 -0
  34. package/scripts/dev/spawn-claude-terminal.sh +32 -0
  35. package/scripts/dev/start-portal.sh +506 -0
  36. package/scripts/dev/start-web-ui.js +15 -0
  37. package/scripts/dev/stop-portal.sh +311 -0
  38. package/scripts/dev/validate-examples.ts +288 -0
  39. package/scripts/dev/validate-phase2.cjs +451 -0
  40. package/scripts/dev/validate-phase2.js +785 -0
  41. package/scripts/dev/validate-phase3.cjs +208 -0
  42. package/scripts/dev/validate-security-remediation.js +1 -0
  43. package/scripts/legacy/README.md +272 -0
  44. package/scripts/legacy/batch-fix-ts.sh +54 -0
  45. package/scripts/legacy/build-migration.sh +105 -0
  46. package/scripts/legacy/build-monitor.js +209 -0
  47. package/scripts/legacy/build-with-filter.sh +84 -0
  48. package/scripts/legacy/build-workaround.sh +71 -0
  49. package/scripts/legacy/fix-ts-advanced.js +358 -0
  50. package/scripts/legacy/fix-ts-final.sh +50 -0
  51. package/scripts/legacy/fix-ts-targeted.sh +49 -0
  52. package/scripts/legacy/fix-typescript-errors.js +305 -0
  53. package/scripts/legacy/force-build.sh +63 -0
  54. package/scripts/legacy/optimize-performance.js +400 -0
  55. package/scripts/legacy/performance-monitor.js +263 -0
  56. package/scripts/legacy/performance-monitoring.js +532 -0
  57. package/scripts/legacy/performance-test-runner.js +645 -0
  58. package/scripts/legacy/quick-fix-ts.js +281 -0
  59. package/scripts/legacy/safe-build.sh +63 -0
  60. package/scripts/migration/README.md +434 -0
  61. package/scripts/migration/install-arm64.js +78 -0
  62. package/scripts/migration/install.js +83 -0
  63. package/scripts/migration/migrate-hooks.js +173 -0
  64. package/scripts/migration/migration-examples.ts +318 -0
  65. package/scripts/optimization/build-optimizer.js +438 -0
  66. package/scripts/optimization/config-validator.js +761 -0
  67. package/scripts/optimization/test-optimization.js +432 -0
  68. package/scripts/optimization/unified-activation.js +839 -0
  69. package/scripts/performance/ACTIVATION_COMMANDS.md +292 -0
  70. package/scripts/performance/sqlite-enhanced-activation.sh +583 -0
  71. package/scripts/performance/test-enhanced-backend.sh +504 -0
  72. package/scripts/performance-test-runner.js +698 -0
  73. package/scripts/security/README.md +339 -0
  74. package/scripts/security/install-git-hooks.sh +132 -0
  75. package/scripts/security/ruv-swarm-safe.js +74 -0
  76. package/scripts/test/README.md +236 -0
  77. package/scripts/test/check-links.ts +274 -0
  78. package/scripts/test/check-performance-regression.ts +168 -0
  79. package/scripts/test/coverage-report.ts +692 -0
  80. package/scripts/test/generate-swarm-tests.js +633 -0
  81. package/scripts/test/integration-test-validation.cjs +253 -0
  82. package/scripts/test/load-test-swarm.js +576 -0
  83. package/scripts/test/run-phase3-compliance-tests.js +427 -0
  84. package/scripts/test/test-batch-tasks.ts +29 -0
  85. package/scripts/test/test-byzantine-resolution.js +246 -0
  86. package/scripts/test/test-claude-spawn-options.sh +63 -0
  87. package/scripts/test/test-cli-wizard.js +331 -0
  88. package/scripts/test/test-comprehensive.js +401 -0
  89. package/scripts/test/test-coordination-features.ts +238 -0
  90. package/scripts/test/test-fallback-systems.js +276 -0
  91. package/scripts/test/test-init-command.ts +302 -0
  92. package/scripts/test/test-mcp.ts +251 -0
  93. package/scripts/test/test-runner.ts +568 -0
  94. package/scripts/test/test-swarm-integration.sh +92 -0
  95. package/scripts/test/test-swarm.ts +142 -0
  96. package/scripts/test/validation-summary.ts +408 -0
  97. package/scripts/utils/README.md +261 -0
  98. package/scripts/utils/clean-build-artifacts.sh +94 -0
  99. package/scripts/utils/cleanup-root.sh +69 -0
  100. package/scripts/utils/fix-cliffy-imports.js +307 -0
  101. package/scripts/utils/fix-duplicate-imports.js +114 -0
  102. package/scripts/utils/fix-error-handling.cjs +70 -0
  103. package/scripts/utils/fix-import-paths.js +104 -0
  104. package/scripts/utils/fix-imports.js +116 -0
  105. package/scripts/utils/fix-shebang.js +78 -0
  106. package/scripts/utils/fix-test-modules.js +27 -0
  107. package/scripts/utils/fix-timezone-issue-246.js +200 -0
  108. package/scripts/utils/fix-ts-comprehensive.py +182 -0
  109. package/scripts/utils/fix-ts-targeted-batch.js +250 -0
  110. package/scripts/utils/remove-benchmark-conflicts.sh +140 -0
  111. package/scripts/utils/simple-test-fixer.js +190 -0
  112. package/scripts/utils/validate-metrics-structure.cjs +144 -0
  113. package/scripts/verify-mcp-server.js +86 -0
  114. package/src/cli/simple-commands/__tests__/agent.test.js +291 -0
  115. package/src/cli/simple-commands/__tests__/memory.test.js +8 -0
  116. package/src/cli/simple-commands/__tests__/swarm.test.js +371 -0
  117. package/src/cli/simple-commands/__tests__/task.test.js +8 -0
  118. package/src/cli/simple-commands/agent.js +216 -0
  119. package/src/cli/simple-commands/analysis.js +570 -0
  120. package/src/cli/simple-commands/automation-executor.js +1603 -0
  121. package/src/cli/simple-commands/automation.js +627 -0
  122. package/src/cli/simple-commands/batch-manager.js +338 -0
  123. package/src/cli/simple-commands/claude-telemetry.js +311 -0
  124. package/src/cli/simple-commands/claude-track.js +102 -0
  125. package/src/cli/simple-commands/concurrent-display.js +348 -0
  126. package/src/cli/simple-commands/config.js +319 -0
  127. package/src/cli/simple-commands/coordination.js +307 -0
  128. package/src/cli/simple-commands/enhanced-ui-views.js +654 -0
  129. package/src/cli/simple-commands/enhanced-webui-complete.js +1038 -0
  130. package/src/cli/simple-commands/fix-hook-variables.js +363 -0
  131. package/src/cli/simple-commands/github/gh-coordinator.js +605 -0
  132. package/src/cli/simple-commands/github/github-api.js +624 -0
  133. package/src/cli/simple-commands/github/init.js +543 -0
  134. package/src/cli/simple-commands/github.js +377 -0
  135. package/src/cli/simple-commands/goal.js +145 -0
  136. package/src/cli/simple-commands/hive-mind/auto-save-middleware.js +311 -0
  137. package/src/cli/simple-commands/hive-mind/communication.js +740 -0
  138. package/src/cli/simple-commands/hive-mind/core.js +1031 -0
  139. package/src/cli/simple-commands/hive-mind/db-optimizer.js +872 -0
  140. package/src/cli/simple-commands/hive-mind/mcp-wrapper.js +1364 -0
  141. package/src/cli/simple-commands/hive-mind/memory.js +1292 -0
  142. package/src/cli/simple-commands/hive-mind/performance-optimizer.js +618 -0
  143. package/src/cli/simple-commands/hive-mind/performance-test.js +373 -0
  144. package/src/cli/simple-commands/hive-mind/queen.js +809 -0
  145. package/src/cli/simple-commands/hive-mind/session-manager.js +1223 -0
  146. package/src/cli/simple-commands/hive-mind-optimize.js +361 -0
  147. package/src/cli/simple-commands/hive-mind-wizard.js +281 -0
  148. package/src/cli/simple-commands/hive-mind.js +3112 -0
  149. package/src/cli/simple-commands/hive.js +140 -0
  150. package/src/cli/simple-commands/hook-safety.js +671 -0
  151. package/src/cli/simple-commands/hooks.js +1268 -0
  152. package/src/cli/simple-commands/init/.claude/checkpoints/1756224542.json +7 -0
  153. package/src/cli/simple-commands/init/.claude/checkpoints/1756224544.json +8 -0
  154. package/src/cli/simple-commands/init/README.md +106 -0
  155. package/src/cli/simple-commands/init/VALIDATION_ROLLBACK.md +488 -0
  156. package/src/cli/simple-commands/init/agent-copier.js +347 -0
  157. package/src/cli/simple-commands/init/batch-init.js +663 -0
  158. package/src/cli/simple-commands/init/claude-commands/claude-flow-commands.js +438 -0
  159. package/src/cli/simple-commands/init/claude-commands/optimized-claude-flow-commands.js +876 -0
  160. package/src/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +356 -0
  161. package/src/cli/simple-commands/init/claude-commands/optimized-sparc-commands.js +501 -0
  162. package/src/cli/simple-commands/init/claude-commands/slash-commands.js +57 -0
  163. package/src/cli/simple-commands/init/claude-commands/sparc-commands.js +296 -0
  164. package/src/cli/simple-commands/init/copy-revised-templates.js +175 -0
  165. package/src/cli/simple-commands/init/executable-wrapper.js +122 -0
  166. package/src/cli/simple-commands/init/gitignore-updater.js +137 -0
  167. package/src/cli/simple-commands/init/help.js +110 -0
  168. package/src/cli/simple-commands/init/hive-mind-init.js +749 -0
  169. package/src/cli/simple-commands/init/index.js +1953 -0
  170. package/src/cli/simple-commands/init/performance-monitor.js +344 -0
  171. package/src/cli/simple-commands/init/rollback/backup-manager.js +542 -0
  172. package/src/cli/simple-commands/init/rollback/index.js +399 -0
  173. package/src/cli/simple-commands/init/rollback/recovery-manager.js +778 -0
  174. package/src/cli/simple-commands/init/rollback/rollback-executor.js +521 -0
  175. package/src/cli/simple-commands/init/rollback/state-tracker.js +486 -0
  176. package/src/cli/simple-commands/init/sparc/roo-readme.js +61 -0
  177. package/src/cli/simple-commands/init/sparc/roomodes-config.js +102 -0
  178. package/src/cli/simple-commands/init/sparc/workflows.js +40 -0
  179. package/src/cli/simple-commands/init/sparc-structure.js +68 -0
  180. package/src/cli/simple-commands/init/template-copier.js +640 -0
  181. package/src/cli/simple-commands/init/templates/CLAUDE.md +1185 -0
  182. package/src/cli/simple-commands/init/templates/CLAUDE.md.optimized +265 -0
  183. package/src/cli/simple-commands/init/templates/claude-flow-universal +81 -0
  184. package/src/cli/simple-commands/init/templates/claude-flow.bat +18 -0
  185. package/src/cli/simple-commands/init/templates/claude-flow.ps1 +24 -0
  186. package/src/cli/simple-commands/init/templates/claude-md.js +1101 -0
  187. package/src/cli/simple-commands/init/templates/commands/analysis/bottleneck-detect.md +162 -0
  188. package/src/cli/simple-commands/init/templates/commands/automation/auto-agent.md +122 -0
  189. package/src/cli/simple-commands/init/templates/commands/coordination/swarm-init.md +85 -0
  190. package/src/cli/simple-commands/init/templates/commands/github/github-swarm.md +121 -0
  191. package/src/cli/simple-commands/init/templates/commands/helpers/standard-checkpoint-hooks.sh +179 -0
  192. package/src/cli/simple-commands/init/templates/commands/hooks/notification.md +113 -0
  193. package/src/cli/simple-commands/init/templates/commands/hooks/post-command.md +116 -0
  194. package/src/cli/simple-commands/init/templates/commands/hooks/post-edit.md +117 -0
  195. package/src/cli/simple-commands/init/templates/commands/hooks/post-task.md +112 -0
  196. package/src/cli/simple-commands/init/templates/commands/hooks/pre-command.md +113 -0
  197. package/src/cli/simple-commands/init/templates/commands/hooks/pre-edit.md +113 -0
  198. package/src/cli/simple-commands/init/templates/commands/hooks/pre-search.md +112 -0
  199. package/src/cli/simple-commands/init/templates/commands/hooks/pre-task.md +111 -0
  200. package/src/cli/simple-commands/init/templates/commands/hooks/session-end.md +118 -0
  201. package/src/cli/simple-commands/init/templates/commands/hooks/session-restore.md +118 -0
  202. package/src/cli/simple-commands/init/templates/commands/hooks/session-start.md +117 -0
  203. package/src/cli/simple-commands/init/templates/coordination-md.js +340 -0
  204. package/src/cli/simple-commands/init/templates/coordination.md +16 -0
  205. package/src/cli/simple-commands/init/templates/enhanced-templates.js +2347 -0
  206. package/src/cli/simple-commands/init/templates/github-safe-enhanced.js +331 -0
  207. package/src/cli/simple-commands/init/templates/github-safe.js +106 -0
  208. package/src/cli/simple-commands/init/templates/memory-bank-md.js +259 -0
  209. package/src/cli/simple-commands/init/templates/memory-bank.md +16 -0
  210. package/src/cli/simple-commands/init/templates/readme-files.js +72 -0
  211. package/src/cli/simple-commands/init/templates/safe-hook-patterns.js +430 -0
  212. package/src/cli/simple-commands/init/templates/settings.json +109 -0
  213. package/src/cli/simple-commands/init/templates/settings.json.enhanced +35 -0
  214. package/src/cli/simple-commands/init/templates/sparc-modes.js +1401 -0
  215. package/src/cli/simple-commands/init/templates/verification-claude-md.js +432 -0
  216. package/src/cli/simple-commands/init/validation/config-validator.js +354 -0
  217. package/src/cli/simple-commands/init/validation/health-checker.js +599 -0
  218. package/src/cli/simple-commands/init/validation/index.js +388 -0
  219. package/src/cli/simple-commands/init/validation/mode-validator.js +387 -0
  220. package/src/cli/simple-commands/init/validation/post-init-validator.js +390 -0
  221. package/src/cli/simple-commands/init/validation/pre-init-validator.js +290 -0
  222. package/src/cli/simple-commands/init/validation/test-runner.js +488 -0
  223. package/src/cli/simple-commands/init.js +4 -0
  224. package/src/cli/simple-commands/mcp-health.js +163 -0
  225. package/src/cli/simple-commands/mcp-integration-layer.js +689 -0
  226. package/src/cli/simple-commands/mcp.js +420 -0
  227. package/src/cli/simple-commands/memory-consolidation.js +631 -0
  228. package/src/cli/simple-commands/memory.js +345 -0
  229. package/src/cli/simple-commands/migrate-hooks.js +63 -0
  230. package/src/cli/simple-commands/monitor.js +417 -0
  231. package/src/cli/simple-commands/neural.js +148 -0
  232. package/src/cli/simple-commands/pair-autofix-only.js +755 -0
  233. package/src/cli/simple-commands/pair-basic.js +751 -0
  234. package/src/cli/simple-commands/pair-old.js +623 -0
  235. package/src/cli/simple-commands/pair-working.js +849 -0
  236. package/src/cli/simple-commands/pair.js +849 -0
  237. package/src/cli/simple-commands/performance-hooks.js +149 -0
  238. package/src/cli/simple-commands/performance-metrics.js +601 -0
  239. package/src/cli/simple-commands/process-ui-enhanced.js +821 -0
  240. package/src/cli/simple-commands/process-ui.js +274 -0
  241. package/src/cli/simple-commands/realtime-update-system.js +659 -0
  242. package/src/cli/simple-commands/sparc/architecture.js +1750 -0
  243. package/src/cli/simple-commands/sparc/commands.js +575 -0
  244. package/src/cli/simple-commands/sparc/completion.js +1831 -0
  245. package/src/cli/simple-commands/sparc/coordinator.js +1045 -0
  246. package/src/cli/simple-commands/sparc/index.js +321 -0
  247. package/src/cli/simple-commands/sparc/phase-base.js +430 -0
  248. package/src/cli/simple-commands/sparc/pseudocode.js +984 -0
  249. package/src/cli/simple-commands/sparc/refinement.js +1856 -0
  250. package/src/cli/simple-commands/sparc/specification.js +736 -0
  251. package/src/cli/simple-commands/sparc-modes/architect.js +125 -0
  252. package/src/cli/simple-commands/sparc-modes/ask.js +126 -0
  253. package/src/cli/simple-commands/sparc-modes/code.js +148 -0
  254. package/src/cli/simple-commands/sparc-modes/debug.js +112 -0
  255. package/src/cli/simple-commands/sparc-modes/devops.js +137 -0
  256. package/src/cli/simple-commands/sparc-modes/docs-writer.js +38 -0
  257. package/src/cli/simple-commands/sparc-modes/generic.js +34 -0
  258. package/src/cli/simple-commands/sparc-modes/index.js +201 -0
  259. package/src/cli/simple-commands/sparc-modes/integration.js +55 -0
  260. package/src/cli/simple-commands/sparc-modes/mcp.js +38 -0
  261. package/src/cli/simple-commands/sparc-modes/monitoring.js +38 -0
  262. package/src/cli/simple-commands/sparc-modes/optimization.js +38 -0
  263. package/src/cli/simple-commands/sparc-modes/security-review.js +130 -0
  264. package/src/cli/simple-commands/sparc-modes/sparc-orchestrator.js +167 -0
  265. package/src/cli/simple-commands/sparc-modes/spec-pseudocode.js +38 -0
  266. package/src/cli/simple-commands/sparc-modes/supabase-admin.js +149 -0
  267. package/src/cli/simple-commands/sparc-modes/swarm.js +436 -0
  268. package/src/cli/simple-commands/sparc-modes/tdd.js +112 -0
  269. package/src/cli/simple-commands/sparc-modes/tutorial.js +277 -0
  270. package/src/cli/simple-commands/sparc.js +530 -0
  271. package/src/cli/simple-commands/start-ui.js +147 -0
  272. package/src/cli/simple-commands/start-wrapper.js +285 -0
  273. package/src/cli/simple-commands/start.js +2 -0
  274. package/src/cli/simple-commands/status.js +303 -0
  275. package/src/cli/simple-commands/stream-chain-clean.js +221 -0
  276. package/src/cli/simple-commands/stream-chain-fixed.js +89 -0
  277. package/src/cli/simple-commands/stream-chain-real.js +408 -0
  278. package/src/cli/simple-commands/stream-chain-working.js +323 -0
  279. package/src/cli/simple-commands/stream-chain.js +491 -0
  280. package/src/cli/simple-commands/stream-processor.js +340 -0
  281. package/src/cli/simple-commands/swarm-executor.js +253 -0
  282. package/src/cli/simple-commands/swarm-metrics-integration.js +371 -0
  283. package/src/cli/simple-commands/swarm-ui.js +741 -0
  284. package/src/cli/simple-commands/swarm-webui-integration.js +311 -0
  285. package/src/cli/simple-commands/swarm.js +2277 -0
  286. package/src/cli/simple-commands/task.js +228 -0
  287. package/src/cli/simple-commands/templates/mle-star-workflow.json +294 -0
  288. package/src/cli/simple-commands/timestamp-fix.js +104 -0
  289. package/src/cli/simple-commands/token-tracker.js +372 -0
  290. package/src/cli/simple-commands/tool-execution-framework.js +555 -0
  291. package/src/cli/simple-commands/train-and-stream.js +354 -0
  292. package/src/cli/simple-commands/training-pipeline.js +874 -0
  293. package/src/cli/simple-commands/training.js +288 -0
  294. package/src/cli/simple-commands/verification-hooks.js +336 -0
  295. package/src/cli/simple-commands/verification-integration.js +464 -0
  296. package/src/cli/simple-commands/verification-training-integration.js +646 -0
  297. package/src/cli/simple-commands/verification.js +551 -0
  298. package/src/cli/simple-commands/web-server.js +929 -0
  299. package/src/cli/simple-commands/webui-validator.js +136 -0
  300. package/src/language/README.md +503 -0
  301. package/src/language/claude-md-generator.js +618 -0
  302. package/src/language/cli.js +422 -0
  303. package/src/language/example.js +347 -0
  304. package/src/language/integration-system.js +619 -0
  305. package/src/language/language-detector.js +581 -0
@@ -0,0 +1,422 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { program } from 'commander';
4
+ import { LanguageDetector } from './language-detector.js';
5
+ import { ClaudeMdGenerator } from './claude-md-generator.js';
6
+ import { IntegrationSystem } from './integration-system.js';
7
+ import path from 'path';
8
+
9
+ /**
10
+ * Claude Flow Language Detection CLI
11
+ *
12
+ * Command-line interface for language detection and CLAUDE.md generation
13
+ */
14
+
15
+ program
16
+ .name('claude-flow-lang')
17
+ .description('Intelligent language detection and CLAUDE.md generation for Claude Flow')
18
+ .version('1.0.0');
19
+
20
+ // Main detect command
21
+ program
22
+ .command('detect')
23
+ .description('Detect languages and frameworks in current project')
24
+ .option('-p, --path <path>', 'Project path', process.cwd())
25
+ .option('-v, --verbose', 'Verbose output')
26
+ .option('-j, --json', 'Output as JSON')
27
+ .action(async (options) => {
28
+ try {
29
+ console.log('๐Ÿ” Detecting project languages and frameworks...');
30
+
31
+ const detector = new LanguageDetector(options.path);
32
+ const results = await detector.detectProject();
33
+
34
+ if (options.json) {
35
+ console.log(JSON.stringify(results, null, 2));
36
+ } else {
37
+ console.log('\n๐Ÿ“Š Detection Results:');
38
+ console.log('โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”');
39
+
40
+ console.log(`\n๐ŸŽฏ Project Type: ${results.projectType}`);
41
+ console.log(`๐Ÿ“ˆ Confidence: ${(results.confidence * 100).toFixed(1)}%`);
42
+
43
+ if (Object.keys(results.languages).length > 0) {
44
+ console.log('\n๐Ÿ’ป Languages:');
45
+ for (const [lang, score] of Object.entries(results.languages)) {
46
+ const percentage = (score * 100).toFixed(1);
47
+ const bar = 'โ–ˆ'.repeat(Math.floor(score * 20));
48
+ console.log(` ${lang.padEnd(15)} ${bar.padEnd(20)} ${percentage}%`);
49
+ }
50
+ }
51
+
52
+ if (Object.keys(results.frameworks).length > 0) {
53
+ console.log('\n๐Ÿš€ Frameworks:');
54
+ for (const [framework, score] of Object.entries(results.frameworks)) {
55
+ const percentage = (score * 100).toFixed(1);
56
+ const bar = 'โ–“'.repeat(Math.floor(score * 20));
57
+ console.log(` ${framework.padEnd(15)} ${bar.padEnd(20)} ${percentage}%`);
58
+ }
59
+ }
60
+
61
+ if (Object.keys(results.dependencies).length > 0 && options.verbose) {
62
+ console.log('\n๐Ÿ“ฆ Dependencies:');
63
+ const deps = Object.keys(results.dependencies).slice(0, 10);
64
+ console.log(
65
+ ` ${deps.join(', ')}${Object.keys(results.dependencies).length > 10 ? '...' : ''}`,
66
+ );
67
+ }
68
+
69
+ const recommendations = detector.getRecommendations();
70
+ if (recommendations.linting.length > 0) {
71
+ console.log(`\n๐Ÿ’ก Recommended Tools:`);
72
+ console.log(` Linting: ${recommendations.linting.join(', ')}`);
73
+ console.log(` Testing: ${recommendations.testing.join(', ')}`);
74
+ if (recommendations.building.length > 0) {
75
+ console.log(` Building: ${recommendations.building.join(', ')}`);
76
+ }
77
+ }
78
+ }
79
+ } catch (error) {
80
+ console.error('โŒ Detection failed:', error.message);
81
+ if (options.verbose) {
82
+ console.error(error.stack);
83
+ }
84
+ process.exit(1);
85
+ }
86
+ });
87
+
88
+ // Generate CLAUDE.md command
89
+ program
90
+ .command('generate')
91
+ .description('Generate CLAUDE.md file based on detected languages')
92
+ .option('-p, --path <path>', 'Project path', process.cwd())
93
+ .option('-f, --force', 'Force regeneration even if file exists')
94
+ .option('--no-backup', 'Skip creating backup of existing file')
95
+ .option('-t, --template <path>', 'Custom template path')
96
+ .action(async (options) => {
97
+ try {
98
+ console.log('๐Ÿ“ Generating CLAUDE.md file...');
99
+
100
+ const generator = new ClaudeMdGenerator(options.path, {
101
+ backupExisting: options.backup,
102
+ templatePath: options.template,
103
+ forceRegenerate: options.force,
104
+ });
105
+
106
+ const content = await generator.generateClaudeMd();
107
+
108
+ console.log(`โœ… CLAUDE.md generated successfully (${content.length} characters)`);
109
+ console.log(`๐Ÿ“„ File location: ${path.join(options.path, 'CLAUDE.md')}`);
110
+ } catch (error) {
111
+ console.error('โŒ Generation failed:', error.message);
112
+ process.exit(1);
113
+ }
114
+ });
115
+
116
+ // Initialize project command
117
+ program
118
+ .command('init')
119
+ .description('Initialize language detection and CLAUDE.md generation for project')
120
+ .option('-p, --path <path>', 'Project path', process.cwd())
121
+ .option('-i, --interactive', 'Run interactive setup')
122
+ .option('--skip-validation', 'Skip project validation')
123
+ .action(async (options) => {
124
+ try {
125
+ console.log('๐Ÿš€ Initializing Claude Flow language detection...');
126
+
127
+ const integration = new IntegrationSystem(options.path);
128
+
129
+ if (options.interactive) {
130
+ console.log('๐ŸŽฏ Starting interactive setup...');
131
+ await integration.interactiveSetup();
132
+ }
133
+
134
+ if (!options.skipValidation) {
135
+ console.log('๐Ÿ”Ž Validating project...');
136
+ const validation = await integration.validateProject();
137
+
138
+ if (validation.issues.length > 0) {
139
+ console.log('โš ๏ธ Validation issues found:');
140
+ validation.issues.forEach((issue) => {
141
+ console.log(` โ€ข ${issue.message}`);
142
+ if (issue.suggestion) {
143
+ console.log(` ๐Ÿ’ก ${issue.suggestion}`);
144
+ }
145
+ });
146
+ }
147
+
148
+ if (validation.suggestions.length > 0) {
149
+ console.log('๐Ÿ’ก Suggestions:');
150
+ validation.suggestions.forEach((suggestion) => {
151
+ console.log(` โ€ข ${suggestion.message}`);
152
+ if (suggestion.suggestion) {
153
+ console.log(` โ†’ ${suggestion.suggestion}`);
154
+ }
155
+ });
156
+ }
157
+ }
158
+
159
+ const result = await integration.initialize();
160
+
161
+ if (result.skipped) {
162
+ console.log(`โญ๏ธ Initialization skipped: ${result.reason}`);
163
+ } else {
164
+ console.log('โœ… Initialization completed successfully');
165
+ console.log(`๐Ÿ“Š Detected: ${Object.keys(result.detection.languages).join(', ')}`);
166
+ if (result.claudeGenerated) {
167
+ console.log('๐Ÿ“„ CLAUDE.md file generated');
168
+ }
169
+ }
170
+ } catch (error) {
171
+ console.error('โŒ Initialization failed:', error.message);
172
+ process.exit(1);
173
+ }
174
+ });
175
+
176
+ // Update command for when new technologies are added
177
+ program
178
+ .command('update')
179
+ .description('Update CLAUDE.md when new languages/frameworks are detected')
180
+ .option('-p, --path <path>', 'Project path', process.cwd())
181
+ .option('-c, --check-only', "Only check for changes, don't update")
182
+ .action(async (options) => {
183
+ try {
184
+ console.log('๐Ÿ”„ Checking for project changes...');
185
+
186
+ const integration = new IntegrationSystem(options.path);
187
+ const result = await integration.updateForNewTechnology();
188
+
189
+ if (result.changes.hasChanges) {
190
+ console.log(`๐Ÿ“ˆ Changes detected: ${result.changes.summary}`);
191
+
192
+ if (result.changes.newTechnologies.length > 0) {
193
+ console.log('๐Ÿ†• New technologies:');
194
+ result.changes.newTechnologies.forEach((tech) => {
195
+ console.log(` โ€ข ${tech.name} (${tech.type})`);
196
+ });
197
+ }
198
+
199
+ if (!options.checkOnly && result.updated) {
200
+ console.log('โœ… CLAUDE.md updated successfully');
201
+ } else if (options.checkOnly) {
202
+ console.log('๐Ÿ” Check complete - use "update" without --check-only to apply changes');
203
+ }
204
+ } else {
205
+ console.log('โœจ No changes detected');
206
+ }
207
+ } catch (error) {
208
+ console.error('โŒ Update failed:', error.message);
209
+ process.exit(1);
210
+ }
211
+ });
212
+
213
+ // Report command
214
+ program
215
+ .command('report')
216
+ .description('Generate comprehensive project analysis report')
217
+ .option('-p, --path <path>', 'Project path', process.cwd())
218
+ .option('-o, --output <file>', 'Output file path')
219
+ .option('--json', 'Output as JSON')
220
+ .action(async (options) => {
221
+ try {
222
+ console.log('๐Ÿ“Š Generating project report...');
223
+
224
+ const integration = new IntegrationSystem(options.path);
225
+ const report = await integration.generateProjectReport();
226
+
227
+ if (options.output) {
228
+ const fs = await import('fs/promises');
229
+ await fs.writeFile(options.output, JSON.stringify(report, null, 2));
230
+ console.log(`๐Ÿ“„ Report saved to: ${options.output}`);
231
+ } else if (options.json) {
232
+ console.log(JSON.stringify(report, null, 2));
233
+ } else {
234
+ // Display formatted report
235
+ console.log('\n๐Ÿ“Š Project Analysis Report');
236
+ console.log('โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”');
237
+
238
+ console.log(`\n๐Ÿ—๏ธ Project: ${report.project.name}`);
239
+ console.log(`๐Ÿ“ Path: ${report.project.path}`);
240
+ console.log(`๐Ÿ“… Analyzed: ${new Date(report.project.analyzedAt).toLocaleString()}`);
241
+
242
+ console.log(`\n๐ŸŽฏ Project Type: ${report.detection.projectType}`);
243
+ console.log(`๐Ÿ“ˆ Detection Confidence: ${(report.detection.confidence * 100).toFixed(1)}%`);
244
+
245
+ if (report.validation.issues.length > 0) {
246
+ console.log(`\nโš ๏ธ Issues Found:`);
247
+ report.validation.issues.forEach((issue) => {
248
+ console.log(` โ€ข ${issue.message}`);
249
+ });
250
+ }
251
+
252
+ if (report.suggestions.length > 0) {
253
+ console.log(`\n๐Ÿ’ก Recommendations:`);
254
+ report.suggestions.forEach((suggestion) => {
255
+ const priority =
256
+ suggestion.priority === 'high'
257
+ ? '๐Ÿ”ด'
258
+ : suggestion.priority === 'medium'
259
+ ? '๐ŸŸก'
260
+ : '๐ŸŸข';
261
+ console.log(` ${priority} ${suggestion.message}`);
262
+ });
263
+ }
264
+
265
+ if (report.nextSteps.length > 0) {
266
+ console.log(`\n๐Ÿ“‹ Next Steps:`);
267
+ report.nextSteps.forEach((step, index) => {
268
+ console.log(` ${index + 1}. ${step}`);
269
+ });
270
+ }
271
+ }
272
+ } catch (error) {
273
+ console.error('โŒ Report generation failed:', error.message);
274
+ process.exit(1);
275
+ }
276
+ });
277
+
278
+ // Validate command
279
+ program
280
+ .command('validate')
281
+ .description('Validate project structure and configuration')
282
+ .option('-p, --path <path>', 'Project path', process.cwd())
283
+ .option('--json', 'Output as JSON')
284
+ .action(async (options) => {
285
+ try {
286
+ console.log('๐Ÿ”Ž Validating project...');
287
+
288
+ const integration = new IntegrationSystem(options.path);
289
+ const validation = await integration.validateProject();
290
+
291
+ if (options.json) {
292
+ console.log(JSON.stringify(validation, null, 2));
293
+ } else {
294
+ console.log(`\n๐Ÿ“‹ Validation Results`);
295
+ console.log('โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”');
296
+
297
+ if (validation.valid) {
298
+ console.log('โœ… Project validation passed');
299
+ } else {
300
+ console.log('โš ๏ธ Project validation found issues');
301
+ }
302
+
303
+ if (validation.issues.length > 0) {
304
+ console.log(`\nโŒ Issues (${validation.issues.length}):`);
305
+ validation.issues.forEach((issue) => {
306
+ console.log(` โ€ข ${issue.message}`);
307
+ if (issue.suggestion) {
308
+ console.log(` ๐Ÿ’ก ${issue.suggestion}`);
309
+ }
310
+ });
311
+ }
312
+
313
+ if (validation.suggestions.length > 0) {
314
+ console.log(`\n๐Ÿ’ก Suggestions (${validation.suggestions.length}):`);
315
+ validation.suggestions.forEach((suggestion) => {
316
+ console.log(` โ€ข ${suggestion.message}`);
317
+ if (suggestion.suggestion) {
318
+ console.log(` โ†’ ${suggestion.suggestion}`);
319
+ }
320
+ });
321
+ }
322
+ }
323
+
324
+ // Exit with error code if validation failed
325
+ if (!validation.valid) {
326
+ process.exit(1);
327
+ }
328
+ } catch (error) {
329
+ console.error('โŒ Validation failed:', error.message);
330
+ process.exit(1);
331
+ }
332
+ });
333
+
334
+ // Configuration commands
335
+ const configCommand = program.command('config').description('Manage configuration and preferences');
336
+
337
+ configCommand
338
+ .command('show')
339
+ .description('Show current configuration')
340
+ .option('-p, --path <path>', 'Project path', process.cwd())
341
+ .action(async (options) => {
342
+ try {
343
+ const integration = new IntegrationSystem(options.path);
344
+ const config = await integration.loadConfiguration();
345
+
346
+ console.log('โš™๏ธ Current Configuration:');
347
+ console.log(JSON.stringify(config, null, 2));
348
+ } catch (error) {
349
+ console.error('โŒ Failed to load configuration:', error.message);
350
+ process.exit(1);
351
+ }
352
+ });
353
+
354
+ configCommand
355
+ .command('set <key> <value>')
356
+ .description('Set configuration value')
357
+ .option('-p, --path <path>', 'Project path', process.cwd())
358
+ .action(async (key, value, options) => {
359
+ try {
360
+ const integration = new IntegrationSystem(options.path);
361
+ const config = await integration.loadConfiguration();
362
+
363
+ // Parse value as JSON if possible, otherwise as string
364
+ let parsedValue;
365
+ try {
366
+ parsedValue = JSON.parse(value);
367
+ } catch {
368
+ parsedValue = value;
369
+ }
370
+
371
+ // Set nested key if dot notation is used
372
+ const keys = key.split('.');
373
+ let current = config;
374
+ for (let i = 0; i < keys.length - 1; i++) {
375
+ if (!current[keys[i]]) current[keys[i]] = {};
376
+ current = current[keys[i]];
377
+ }
378
+ current[keys[keys.length - 1]] = parsedValue;
379
+
380
+ await integration.updateConfiguration(config);
381
+ console.log(`โœ… Configuration updated: ${key} = ${value}`);
382
+ } catch (error) {
383
+ console.error('โŒ Failed to update configuration:', error.message);
384
+ process.exit(1);
385
+ }
386
+ });
387
+
388
+ // Cleanup command
389
+ program
390
+ .command('cleanup')
391
+ .description('Clean up old backup files and reports')
392
+ .option('-p, --path <path>', 'Project path', process.cwd())
393
+ .option('-d, --days <days>', 'Files older than N days', '30')
394
+ .action(async (options) => {
395
+ try {
396
+ console.log(`๐Ÿงน Cleaning up files older than ${options.days} days...`);
397
+
398
+ const integration = new IntegrationSystem(options.path);
399
+ const result = await integration.cleanup(parseInt(options.days));
400
+
401
+ console.log(`โœ… Cleanup completed: ${result.cleanedCount} files removed`);
402
+ } catch (error) {
403
+ console.error('โŒ Cleanup failed:', error.message);
404
+ process.exit(1);
405
+ }
406
+ });
407
+
408
+ // Global error handler
409
+ process.on('uncaughtException', (error) => {
410
+ console.error('๐Ÿ’ฅ Uncaught Exception:', error.message);
411
+ process.exit(1);
412
+ });
413
+
414
+ process.on('unhandledRejection', (reason, promise) => {
415
+ console.error('๐Ÿ’ฅ Unhandled Rejection at:', promise, 'reason:', reason);
416
+ process.exit(1);
417
+ });
418
+
419
+ // Parse command line arguments
420
+ program.parse();
421
+
422
+ export { program };