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,173 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Migration script to update Claude Flow settings.json to new hooks format
5
+ * Compatible with Claude Code 1.0.51+
6
+ */
7
+
8
+ import fs from 'fs/promises';
9
+ import path from 'path';
10
+ import { fileURLToPath } from 'url';
11
+
12
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
13
+
14
+ async function migrateSettingsFile(settingsPath) {
15
+ try {
16
+ // Read existing settings
17
+ const content = await fs.readFile(settingsPath, 'utf8');
18
+ const settings = JSON.parse(content);
19
+
20
+ // Check if hooks already in new format
21
+ if (settings.hooks && settings.hooks.PreToolUse) {
22
+ console.log('✅ Hooks already in new format, no migration needed');
23
+ return;
24
+ }
25
+
26
+ // Backup original file
27
+ const backupPath = settingsPath + '.backup-' + Date.now();
28
+ await fs.writeFile(backupPath, content);
29
+ console.log(`📦 Backed up original settings to: ${backupPath}`);
30
+
31
+ // Convert old hooks format to new format
32
+ const newHooks = {
33
+ PreToolUse: [],
34
+ PostToolUse: [],
35
+ Stop: []
36
+ };
37
+
38
+ // Convert preCommandHook
39
+ if (settings.hooks?.preCommandHook) {
40
+ newHooks.PreToolUse.push({
41
+ matcher: "Bash",
42
+ hooks: [{
43
+ type: "command",
44
+ command: `npx claude-flow@alpha hooks pre-command --command "\${command}" --validate-safety true --prepare-resources true`
45
+ }]
46
+ });
47
+ }
48
+
49
+ // Convert preEditHook
50
+ if (settings.hooks?.preEditHook) {
51
+ newHooks.PreToolUse.push({
52
+ matcher: "Write|Edit|MultiEdit",
53
+ hooks: [{
54
+ type: "command",
55
+ command: `npx claude-flow@alpha hooks pre-edit --file "\${file}" --auto-assign-agents true --load-context true`
56
+ }]
57
+ });
58
+ }
59
+
60
+ // Convert postCommandHook
61
+ if (settings.hooks?.postCommandHook) {
62
+ newHooks.PostToolUse.push({
63
+ matcher: "Bash",
64
+ hooks: [{
65
+ type: "command",
66
+ command: `npx claude-flow@alpha hooks post-command --command "\${command}" --track-metrics true --store-results true`
67
+ }]
68
+ });
69
+ }
70
+
71
+ // Convert postEditHook
72
+ if (settings.hooks?.postEditHook) {
73
+ newHooks.PostToolUse.push({
74
+ matcher: "Write|Edit|MultiEdit",
75
+ hooks: [{
76
+ type: "command",
77
+ command: `npx claude-flow@alpha hooks post-edit --file "\${file}" --format true --update-memory true --train-neural true`
78
+ }]
79
+ });
80
+ }
81
+
82
+ // Convert sessionEndHook
83
+ if (settings.hooks?.sessionEndHook) {
84
+ newHooks.Stop.push({
85
+ hooks: [{
86
+ type: "command",
87
+ command: `npx claude-flow@alpha hooks session-end --generate-summary true --persist-state true --export-metrics true`
88
+ }]
89
+ });
90
+ }
91
+
92
+ // Update settings with new hooks format
93
+ settings.hooks = newHooks;
94
+
95
+ // Remove unrecognized fields for Claude Code 1.0.51+
96
+ delete settings.mcpServers;
97
+ delete settings.features;
98
+ delete settings.performance;
99
+
100
+ // Write updated settings
101
+ await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2));
102
+ console.log('✅ Successfully migrated settings.json to new hooks format');
103
+
104
+ // Show removed fields
105
+ console.log('\n📝 Note: The following fields were removed (not supported by Claude Code 1.0.51+):');
106
+ console.log(' - mcpServers (use "claude mcp add" command instead)');
107
+ console.log(' - features');
108
+ console.log(' - performance');
109
+
110
+ } catch (error) {
111
+ console.error('❌ Error migrating settings:', error.message);
112
+ process.exit(1);
113
+ }
114
+ }
115
+
116
+ async function findSettingsFiles() {
117
+ const locations = [
118
+ path.join(process.cwd(), '.claude', 'settings.json'),
119
+ path.join(process.cwd(), 'settings.json'),
120
+ path.join(process.env.HOME || '', '.claude', 'settings.json')
121
+ ];
122
+
123
+ const found = [];
124
+ for (const location of locations) {
125
+ try {
126
+ await fs.access(location);
127
+ found.push(location);
128
+ } catch {
129
+ // File doesn't exist, skip
130
+ }
131
+ }
132
+
133
+ return found;
134
+ }
135
+
136
+ async function main() {
137
+ console.log('🔄 Claude Flow Hooks Migration Script\n');
138
+
139
+ // Check if specific file provided
140
+ const args = process.argv.slice(2);
141
+ if (args.length > 0) {
142
+ const targetFile = args[0];
143
+ console.log(`Migrating specific file: ${targetFile}`);
144
+ await migrateSettingsFile(targetFile);
145
+ } else {
146
+ // Find and migrate all settings files
147
+ const files = await findSettingsFiles();
148
+
149
+ if (files.length === 0) {
150
+ console.log('❌ No settings.json files found to migrate');
151
+ console.log('\nSearched locations:');
152
+ console.log(' - .claude/settings.json');
153
+ console.log(' - settings.json');
154
+ console.log(' - ~/.claude/settings.json');
155
+ return;
156
+ }
157
+
158
+ console.log(`Found ${files.length} settings file(s) to migrate:\n`);
159
+
160
+ for (const file of files) {
161
+ console.log(`\n📍 Migrating: ${file}`);
162
+ await migrateSettingsFile(file);
163
+ }
164
+ }
165
+
166
+ console.log('\n✨ Migration complete!');
167
+ console.log('\nNext steps:');
168
+ console.log('1. Restart Claude Code to apply changes');
169
+ console.log('2. Run "claude mcp add claude-flow npx claude-flow@alpha mcp start" to add MCP server');
170
+ console.log('3. Check /doctor in Claude Code to verify settings are valid');
171
+ }
172
+
173
+ main().catch(console.error);
@@ -0,0 +1,318 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Migration Examples and Usage Scenarios
4
+ * Demonstrates different migration scenarios and best practices
5
+ */
6
+
7
+ import * as chalk from 'chalk';
8
+ import * as path from 'path';
9
+ import { MigrationRunner } from '../src/migration/migration-runner';
10
+ import { MigrationAnalyzer } from '../src/migration/migration-analyzer';
11
+ import { RollbackManager } from '../src/migration/rollback-manager';
12
+
13
+ // Example 1: Basic Project Migration
14
+ async function basicMigration() {
15
+ console.log(chalk.bold('\n🔄 Example 1: Basic Project Migration'));
16
+ console.log(chalk.gray('─'.repeat(50)));
17
+
18
+ const projectPath = path.join(__dirname, '../examples/basic-project');
19
+
20
+ // Step 1: Analyze the project
21
+ console.log('\n1. Analyzing project...');
22
+ const analyzer = new MigrationAnalyzer();
23
+ const analysis = await analyzer.analyze(projectPath);
24
+
25
+ if (analysis.hasClaudeFolder) {
26
+ console.log(chalk.green(' ✓ Found existing .claude folder'));
27
+ } else {
28
+ console.log(chalk.yellow(' ! No .claude folder found - fresh installation'));
29
+ }
30
+
31
+ // Step 2: Run migration
32
+ console.log('\n2. Running migration...');
33
+ const runner = new MigrationRunner({
34
+ projectPath,
35
+ strategy: 'selective',
36
+ preserveCustom: true,
37
+ dryRun: true // Safe mode for example
38
+ });
39
+
40
+ const result = await runner.run();
41
+
42
+ if (result.success) {
43
+ console.log(chalk.green(' ✓ Migration completed successfully'));
44
+ } else {
45
+ console.log(chalk.red(' ✗ Migration failed'));
46
+ result.errors.forEach(error => console.log(` ${error.error}`));
47
+ }
48
+ }
49
+
50
+ // Example 2: Complex Project with Custom Commands
51
+ async function complexProjectMigration() {
52
+ console.log(chalk.bold('\n🔧 Example 2: Complex Project Migration'));
53
+ console.log(chalk.gray('─'.repeat(50)));
54
+
55
+ const projectPath = path.join(__dirname, '../examples/complex-project');
56
+
57
+ console.log('\n1. Analyzing complex project...');
58
+ const analyzer = new MigrationAnalyzer();
59
+ const analysis = await analyzer.analyze(projectPath);
60
+
61
+ console.log(` Custom commands found: ${analysis.customCommands.length}`);
62
+ console.log(` Conflicting files: ${analysis.conflictingFiles.length}`);
63
+
64
+ // Show recommended strategy
65
+ const strategy = analysis.customCommands.length > 0 ? 'merge' : 'selective';
66
+ console.log(` Recommended strategy: ${chalk.cyan(strategy)}`);
67
+
68
+ console.log('\n2. Creating backup...');
69
+ const rollbackManager = new RollbackManager(projectPath);
70
+ const backup = await rollbackManager.createBackup({
71
+ type: 'pre-migration',
72
+ scenario: 'complex-project-example'
73
+ });
74
+
75
+ console.log(` ✓ Backup created: ${backup.metadata.backupId}`);
76
+
77
+ console.log('\n3. Running merge migration...');
78
+ const runner = new MigrationRunner({
79
+ projectPath,
80
+ strategy: 'merge',
81
+ preserveCustom: true,
82
+ dryRun: true
83
+ });
84
+
85
+ await runner.run();
86
+ }
87
+
88
+ // Example 3: Rollback Scenario
89
+ async function rollbackExample() {
90
+ console.log(chalk.bold('\n↩️ Example 3: Rollback Scenario'));
91
+ console.log(chalk.gray('─'.repeat(50)));
92
+
93
+ const projectPath = path.join(__dirname, '../examples/rollback-test');
94
+ const rollbackManager = new RollbackManager(projectPath);
95
+
96
+ console.log('\n1. Listing available backups...');
97
+ const backups = await rollbackManager.listBackups();
98
+ rollbackManager.printBackupSummary(backups);
99
+
100
+ if (backups.length > 0) {
101
+ console.log('\n2. Rolling back to latest backup...');
102
+ const latestBackup = backups[0];
103
+
104
+ // In a real scenario, this would prompt for confirmation
105
+ console.log(` Would rollback to: ${latestBackup.timestamp.toLocaleString()}`);
106
+ console.log(` Files to restore: ${latestBackup.files.length}`);
107
+ } else {
108
+ console.log(chalk.yellow(' No backups available for rollback'));
109
+ }
110
+ }
111
+
112
+ // Example 4: Migration Validation
113
+ async function validationExample() {
114
+ console.log(chalk.bold('\n✅ Example 4: Migration Validation'));
115
+ console.log(chalk.gray('─'.repeat(50)));
116
+
117
+ const projectPath = path.join(__dirname, '../examples/validation-test');
118
+
119
+ console.log('\n1. Running post-migration validation...');
120
+ const runner = new MigrationRunner({
121
+ projectPath,
122
+ strategy: 'selective'
123
+ });
124
+
125
+ const isValid = await runner.validate(true);
126
+
127
+ if (isValid) {
128
+ console.log(chalk.green(' ✓ All validation checks passed'));
129
+ } else {
130
+ console.log(chalk.red(' ✗ Validation failed'));
131
+ }
132
+ }
133
+
134
+ // Example 5: Batch Migration for Multiple Projects
135
+ async function batchMigrationExample() {
136
+ console.log(chalk.bold('\n📦 Example 5: Batch Migration'));
137
+ console.log(chalk.gray('─'.repeat(50)));
138
+
139
+ const projects = [
140
+ path.join(__dirname, '../examples/project-1'),
141
+ path.join(__dirname, '../examples/project-2'),
142
+ path.join(__dirname, '../examples/project-3')
143
+ ];
144
+
145
+ console.log(`\n1. Migrating ${projects.length} projects...`);
146
+
147
+ for (const [index, projectPath] of projects.entries()) {
148
+ console.log(`\n Project ${index + 1}: ${path.basename(projectPath)}`);
149
+
150
+ try {
151
+ // Analyze first
152
+ const analyzer = new MigrationAnalyzer();
153
+ const analysis = await analyzer.analyze(projectPath);
154
+
155
+ // Choose strategy based on analysis
156
+ const strategy = analysis.customCommands.length > 0 ? 'merge' : 'selective';
157
+
158
+ // Run migration
159
+ const runner = new MigrationRunner({
160
+ projectPath,
161
+ strategy,
162
+ preserveCustom: true,
163
+ force: true, // Non-interactive for batch
164
+ dryRun: true
165
+ });
166
+
167
+ const result = await runner.run();
168
+
169
+ if (result.success) {
170
+ console.log(chalk.green(` ✓ Migration successful`));
171
+ } else {
172
+ console.log(chalk.red(` ✗ Migration failed`));
173
+ }
174
+
175
+ } catch (error) {
176
+ console.log(chalk.red(` ✗ Error: ${error.message}`));
177
+ }
178
+ }
179
+ }
180
+
181
+ // Example 6: Migration Conflict Resolution
182
+ async function conflictResolutionExample() {
183
+ console.log(chalk.bold('\n⚠️ Example 6: Conflict Resolution'));
184
+ console.log(chalk.gray('─'.repeat(50)));
185
+
186
+ const projectPath = path.join(__dirname, '../examples/conflict-project');
187
+
188
+ console.log('\n1. Analyzing project for conflicts...');
189
+ const analyzer = new MigrationAnalyzer();
190
+ const analysis = await analyzer.analyze(projectPath);
191
+
192
+ if (analysis.conflictingFiles.length > 0) {
193
+ console.log(chalk.yellow(` Found ${analysis.conflictingFiles.length} conflicting files:`));
194
+ analysis.conflictingFiles.forEach(file => {
195
+ console.log(` • ${file}`);
196
+ });
197
+
198
+ console.log('\n2. Resolution strategies:');
199
+ console.log(' a) Merge strategy - Preserves custom content');
200
+ console.log(' b) Selective strategy - Skip conflicting files');
201
+ console.log(' c) Full strategy - Replace all files (with backup)');
202
+
203
+ console.log('\n3. Recommended approach:');
204
+ console.log(chalk.cyan(' Use merge strategy with manual review'));
205
+
206
+ } else {
207
+ console.log(chalk.green(' ✓ No conflicts detected'));
208
+ }
209
+ }
210
+
211
+ // Usage scenarios documentation
212
+ function printUsageScenarios() {
213
+ console.log(chalk.bold('\n📚 Migration Usage Scenarios'));
214
+ console.log(chalk.gray('═'.repeat(70)));
215
+
216
+ const scenarios = [
217
+ {
218
+ title: 'New Project Setup',
219
+ command: 'claude-flow migrate --strategy full',
220
+ description: 'Clean installation of optimized prompts'
221
+ },
222
+ {
223
+ title: 'Existing Project with Custom Commands',
224
+ command: 'claude-flow migrate --strategy merge --preserve-custom',
225
+ description: 'Preserve customizations while upgrading'
226
+ },
227
+ {
228
+ title: 'Safe Migration with Preview',
229
+ command: 'claude-flow migrate --dry-run --verbose',
230
+ description: 'See what would change before migrating'
231
+ },
232
+ {
233
+ title: 'Analysis Only',
234
+ command: 'claude-flow migrate analyze --detailed',
235
+ description: 'Understand project state before migration'
236
+ },
237
+ {
238
+ title: 'Rollback After Issues',
239
+ command: 'claude-flow migrate rollback',
240
+ description: 'Restore previous configuration'
241
+ },
242
+ {
243
+ title: 'Batch Operation',
244
+ command: 'find . -name ".claude" -exec claude-flow migrate {} \\;',
245
+ description: 'Migrate multiple projects at once'
246
+ }
247
+ ];
248
+
249
+ scenarios.forEach((scenario, index) => {
250
+ console.log(`\n${chalk.bold(`${index + 1}. ${scenario.title}`)}`);
251
+ console.log(` ${chalk.cyan(scenario.command)}`);
252
+ console.log(` ${chalk.gray(scenario.description)}`);
253
+ });
254
+
255
+ console.log(chalk.gray('\n' + '═'.repeat(70)));
256
+ }
257
+
258
+ // Best practices guide
259
+ function printBestPractices() {
260
+ console.log(chalk.bold('\n💡 Migration Best Practices'));
261
+ console.log(chalk.gray('═'.repeat(70)));
262
+
263
+ const practices = [
264
+ 'Always analyze projects before migration',
265
+ 'Use --dry-run flag to preview changes',
266
+ 'Create backups before major migrations',
267
+ 'Use selective or merge strategies for projects with customizations',
268
+ 'Validate migrations after completion',
269
+ 'Keep backups for rollback scenarios',
270
+ 'Test functionality after migration',
271
+ 'Document custom modifications for future reference'
272
+ ];
273
+
274
+ practices.forEach((practice, index) => {
275
+ console.log(`${chalk.green(`${index + 1}.`)} ${practice}`);
276
+ });
277
+
278
+ console.log(chalk.gray('\n' + '═'.repeat(70)));
279
+ }
280
+
281
+ // Main execution
282
+ async function main() {
283
+ console.log(chalk.bold.blue('\n🚀 Claude-Flow Migration Examples\n'));
284
+
285
+ try {
286
+ // Run examples (in dry-run mode for safety)
287
+ await basicMigration();
288
+ await complexProjectMigration();
289
+ await rollbackExample();
290
+ await validationExample();
291
+ await batchMigrationExample();
292
+ await conflictResolutionExample();
293
+
294
+ // Print documentation
295
+ printUsageScenarios();
296
+ printBestPractices();
297
+
298
+ console.log(chalk.bold.green('\n✅ All examples completed successfully!\n'));
299
+
300
+ } catch (error) {
301
+ console.error(chalk.red(`\n❌ Example failed: ${error.message}\n`));
302
+ process.exit(1);
303
+ }
304
+ }
305
+
306
+ // Run examples if called directly
307
+ if (require.main === module) {
308
+ main();
309
+ }
310
+
311
+ export {
312
+ basicMigration,
313
+ complexProjectMigration,
314
+ rollbackExample,
315
+ validationExample,
316
+ batchMigrationExample,
317
+ conflictResolutionExample
318
+ };