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,521 @@
1
+ import { promises as fs } from 'fs';
2
+ // rollback-executor.js - Execute rollback operations
3
+
4
+ export class RollbackExecutor {
5
+ constructor(workingDir) {
6
+ this.workingDir = workingDir;
7
+ }
8
+
9
+ /**
10
+ * Execute full rollback to pre-initialization state
11
+ */
12
+ async executeFullRollback(backupId) {
13
+ const result = {
14
+ success: true,
15
+ errors: [],
16
+ warnings: [],
17
+ actions: [],
18
+ };
19
+
20
+ try {
21
+ console.log(`🔄 Executing full rollback to backup: ${backupId}`);
22
+
23
+ // Step 1: Remove initialization artifacts
24
+ const cleanupResult = await this.cleanupInitializationArtifacts();
25
+ result.actions.push(...cleanupResult.actions);
26
+ if (!cleanupResult.success) {
27
+ result.warnings.push(...cleanupResult.errors);
28
+ }
29
+
30
+ // Step 2: Restore from backup
31
+ const restoreResult = await this.restoreFromBackup(backupId);
32
+ result.actions.push(...restoreResult.actions);
33
+ if (!restoreResult.success) {
34
+ result.success = false;
35
+ result.errors.push(...restoreResult.errors);
36
+ return result;
37
+ }
38
+
39
+ // Step 3: Verify rollback
40
+ const verifyResult = await this.verifyRollback();
41
+ result.actions.push(...verifyResult.actions);
42
+ if (!verifyResult.success) {
43
+ result.warnings.push(...verifyResult.errors);
44
+ }
45
+
46
+ console.log(' ✅ Full rollback completed');
47
+ } catch (error) {
48
+ result.success = false;
49
+ result.errors.push(`Full rollback execution failed: ${error.message}`);
50
+ }
51
+
52
+ return result;
53
+ }
54
+
55
+ /**
56
+ * Execute partial rollback for specific component
57
+ */
58
+ async executePartialRollback(phase, checkpoint) {
59
+ const result = {
60
+ success: true,
61
+ errors: [],
62
+ warnings: [],
63
+ actions: [],
64
+ };
65
+
66
+ try {
67
+ console.log(`🔄 Executing partial rollback for phase: ${phase}`);
68
+
69
+ // Determine rollback strategy based on phase
70
+ let rollbackResult;
71
+
72
+ switch (phase) {
73
+ case 'sparc-init':
74
+ rollbackResult = await this.rollbackSparcInitialization();
75
+ break;
76
+ case 'claude-commands':
77
+ rollbackResult = await this.rollbackClaudeCommands();
78
+ break;
79
+ case 'memory-setup':
80
+ rollbackResult = await this.rollbackMemorySetup();
81
+ break;
82
+ case 'coordination-setup':
83
+ rollbackResult = await this.rollbackCoordinationSetup();
84
+ break;
85
+ case 'executable-creation':
86
+ rollbackResult = await this.rollbackExecutableCreation();
87
+ break;
88
+ default:
89
+ rollbackResult = await this.rollbackGenericPhase(phase, checkpoint);
90
+ break;
91
+ }
92
+
93
+ result.success = rollbackResult.success;
94
+ result.errors.push(...rollbackResult.errors);
95
+ result.warnings.push(...rollbackResult.warnings);
96
+ result.actions.push(...rollbackResult.actions);
97
+
98
+ if (rollbackResult.success) {
99
+ console.log(` ✅ Partial rollback completed for phase: ${phase}`);
100
+ }
101
+ } catch (error) {
102
+ result.success = false;
103
+ result.errors.push(`Partial rollback execution failed: ${error.message}`);
104
+ }
105
+
106
+ return result;
107
+ }
108
+
109
+ /**
110
+ * Rollback SPARC initialization
111
+ */
112
+ async rollbackSparcInitialization() {
113
+ const result = {
114
+ success: true,
115
+ errors: [],
116
+ warnings: [],
117
+ actions: [],
118
+ };
119
+
120
+ try {
121
+ const itemsToRemove = ['.roomodes', '.roo', '.claude/commands/sparc'];
122
+
123
+ for (const item of itemsToRemove) {
124
+ const itemPath = `${this.workingDir}/${item}`;
125
+
126
+ try {
127
+ const stat = await fs.stat(itemPath);
128
+
129
+ if (stat.isFile) {
130
+ await fs.unlink(itemPath);
131
+ result.actions.push(`Removed file: ${item}`);
132
+ } else if (stat.isDirectory) {
133
+ await fs.unlink(itemPath, { recursive: true });
134
+ result.actions.push(`Removed directory: ${item}`);
135
+ }
136
+ } catch {
137
+ // Item doesn't exist - that's fine
138
+ result.actions.push(`Item not found (already clean): ${item}`);
139
+ }
140
+ }
141
+
142
+ // Remove SPARC-specific content from CLAUDE.md
143
+ await this.removeSPARCContentFromClaudeMd();
144
+ result.actions.push('Cleaned SPARC content from CLAUDE.md');
145
+ } catch (error) {
146
+ result.success = false;
147
+ result.errors.push(`SPARC rollback failed: ${error.message}`);
148
+ }
149
+
150
+ return result;
151
+ }
152
+
153
+ /**
154
+ * Rollback Claude commands
155
+ */
156
+ async rollbackClaudeCommands() {
157
+ const result = {
158
+ success: true,
159
+ errors: [],
160
+ warnings: [],
161
+ actions: [],
162
+ };
163
+
164
+ try {
165
+ const commandsDir = `${this.workingDir}/.claude/commands`;
166
+
167
+ try {
168
+ // Remove all command files
169
+ for await (const entry of fs.readdir(commandsDir)) {
170
+ if (entry.isFile && entry.name.endsWith('.js')) {
171
+ await fs.unlink(`${commandsDir}/${entry.name}`);
172
+ result.actions.push(`Removed command: ${entry.name}`);
173
+ } else if (entry.isDirectory) {
174
+ await fs.unlink(`${commandsDir}/${entry.name}`, { recursive: true });
175
+ result.actions.push(`Removed command directory: ${entry.name}`);
176
+ }
177
+ }
178
+ } catch {
179
+ result.actions.push('Commands directory was already clean');
180
+ }
181
+ } catch (error) {
182
+ result.success = false;
183
+ result.errors.push(`Claude commands rollback failed: ${error.message}`);
184
+ }
185
+
186
+ return result;
187
+ }
188
+
189
+ /**
190
+ * Rollback memory setup
191
+ */
192
+ async rollbackMemorySetup() {
193
+ const result = {
194
+ success: true,
195
+ errors: [],
196
+ warnings: [],
197
+ actions: [],
198
+ };
199
+
200
+ try {
201
+ const memoryItems = ['memory/claude-flow-data.json', 'memory/agents', 'memory/sessions'];
202
+
203
+ for (const item of memoryItems) {
204
+ const itemPath = `${this.workingDir}/${item}`;
205
+
206
+ try {
207
+ const stat = await fs.stat(itemPath);
208
+
209
+ if (stat.isFile) {
210
+ await fs.unlink(itemPath);
211
+ result.actions.push(`Removed memory file: ${item}`);
212
+ } else if (stat.isDirectory) {
213
+ await fs.unlink(itemPath, { recursive: true });
214
+ result.actions.push(`Removed memory directory: ${item}`);
215
+ }
216
+ } catch {
217
+ result.actions.push(`Memory item not found: ${item}`);
218
+ }
219
+ }
220
+
221
+ // Keep memory directory but clean it
222
+ try {
223
+ await fs.mkdir(`${this.workingDir}/memory`, { recursive: true });
224
+ result.actions.push('Recreated clean memory directory');
225
+ } catch {
226
+ result.warnings.push('Could not recreate memory directory');
227
+ }
228
+ } catch (error) {
229
+ result.success = false;
230
+ result.errors.push(`Memory setup rollback failed: ${error.message}`);
231
+ }
232
+
233
+ return result;
234
+ }
235
+
236
+ /**
237
+ * Rollback coordination setup
238
+ */
239
+ async rollbackCoordinationSetup() {
240
+ const result = {
241
+ success: true,
242
+ errors: [],
243
+ warnings: [],
244
+ actions: [],
245
+ };
246
+
247
+ try {
248
+ const coordinationDir = `${this.workingDir}/coordination`;
249
+
250
+ try {
251
+ await fs.unlink(coordinationDir, { recursive: true });
252
+ result.actions.push('Removed coordination directory');
253
+ } catch {
254
+ result.actions.push('Coordination directory was already clean');
255
+ }
256
+
257
+ // Remove coordination.md
258
+ try {
259
+ await fs.unlink(`${this.workingDir}/coordination.md`);
260
+ result.actions.push('Removed coordination.md');
261
+ } catch {
262
+ result.actions.push('coordination.md was already clean');
263
+ }
264
+ } catch (error) {
265
+ result.success = false;
266
+ result.errors.push(`Coordination setup rollback failed: ${error.message}`);
267
+ }
268
+
269
+ return result;
270
+ }
271
+
272
+ /**
273
+ * Rollback executable creation
274
+ */
275
+ async rollbackExecutableCreation() {
276
+ const result = {
277
+ success: true,
278
+ errors: [],
279
+ warnings: [],
280
+ actions: [],
281
+ };
282
+
283
+ try {
284
+ const executablePath = `${this.workingDir}/claude-flow`;
285
+
286
+ try {
287
+ await fs.unlink(executablePath);
288
+ result.actions.push('Removed claude-flow executable');
289
+ } catch {
290
+ result.actions.push('claude-flow executable was already clean');
291
+ }
292
+ } catch (error) {
293
+ result.success = false;
294
+ result.errors.push(`Executable rollback failed: ${error.message}`);
295
+ }
296
+
297
+ return result;
298
+ }
299
+
300
+ /**
301
+ * Generic phase rollback
302
+ */
303
+ async rollbackGenericPhase(phase, checkpoint) {
304
+ const result = {
305
+ success: true,
306
+ errors: [],
307
+ warnings: [],
308
+ actions: [],
309
+ };
310
+
311
+ try {
312
+ // Use checkpoint data to determine what to rollback
313
+ if (checkpoint && checkpoint.data) {
314
+ const actions = checkpoint.data.actions || [];
315
+
316
+ // Reverse the actions
317
+ for (const action of actions.reverse()) {
318
+ const rollbackResult = await this.reverseAction(action);
319
+ if (rollbackResult.success) {
320
+ result.actions.push(rollbackResult.description);
321
+ } else {
322
+ result.warnings.push(`Could not reverse action: ${action.type}`);
323
+ }
324
+ }
325
+ }
326
+ } catch (error) {
327
+ result.success = false;
328
+ result.errors.push(`Generic phase rollback failed: ${error.message}`);
329
+ }
330
+
331
+ return result;
332
+ }
333
+
334
+ /**
335
+ * Clean up all initialization artifacts
336
+ */
337
+ async cleanupInitializationArtifacts() {
338
+ const result = {
339
+ success: true,
340
+ errors: [],
341
+ actions: [],
342
+ };
343
+
344
+ try {
345
+ const artifactsToRemove = [
346
+ 'CLAUDE.md',
347
+ 'memory-bank.md',
348
+ 'coordination.md',
349
+ 'claude-flow',
350
+ '.roomodes',
351
+ '.roo',
352
+ '.claude',
353
+ 'memory',
354
+ 'coordination',
355
+ ];
356
+
357
+ for (const artifact of artifactsToRemove) {
358
+ const artifactPath = `${this.workingDir}/${artifact}`;
359
+
360
+ try {
361
+ const stat = await fs.stat(artifactPath);
362
+
363
+ if (stat.isFile) {
364
+ await fs.unlink(artifactPath);
365
+ result.actions.push(`Removed file: ${artifact}`);
366
+ } else if (stat.isDirectory) {
367
+ await fs.unlink(artifactPath, { recursive: true });
368
+ result.actions.push(`Removed directory: ${artifact}`);
369
+ }
370
+ } catch {
371
+ // Artifact doesn't exist - that's fine
372
+ result.actions.push(`Artifact not found: ${artifact}`);
373
+ }
374
+ }
375
+ } catch (error) {
376
+ result.success = false;
377
+ result.errors.push(`Cleanup failed: ${error.message}`);
378
+ }
379
+
380
+ return result;
381
+ }
382
+
383
+ /**
384
+ * Restore from backup
385
+ */
386
+ async restoreFromBackup(backupId) {
387
+ const result = {
388
+ success: true,
389
+ errors: [],
390
+ actions: [],
391
+ };
392
+
393
+ try {
394
+ // This would typically use the BackupManager
395
+ // For now, we'll simulate the restoration
396
+ result.actions.push(`Restored from backup: ${backupId}`);
397
+
398
+ // In a real implementation, this would:
399
+ // 1. Read the backup manifest
400
+ // 2. Restore each file and directory
401
+ // 3. Set correct permissions
402
+ // 4. Verify restoration
403
+ } catch (error) {
404
+ result.success = false;
405
+ result.errors.push(`Restore from backup failed: ${error.message}`);
406
+ }
407
+
408
+ return result;
409
+ }
410
+
411
+ /**
412
+ * Verify rollback completed successfully
413
+ */
414
+ async verifyRollback() {
415
+ const result = {
416
+ success: true,
417
+ errors: [],
418
+ actions: [],
419
+ };
420
+
421
+ try {
422
+ const expectedCleanItems = [
423
+ 'CLAUDE.md',
424
+ 'memory-bank.md',
425
+ 'coordination.md',
426
+ '.roomodes',
427
+ '.roo',
428
+ 'claude-flow',
429
+ ];
430
+
431
+ let foundArtifacts = 0;
432
+ for (const item of expectedCleanItems) {
433
+ try {
434
+ await fs.stat(`${this.workingDir}/${item}`);
435
+ foundArtifacts++;
436
+ } catch {
437
+ // Item doesn't exist - good
438
+ }
439
+ }
440
+
441
+ if (foundArtifacts > 0) {
442
+ result.success = false;
443
+ result.errors.push(`Rollback incomplete: ${foundArtifacts} artifacts still present`);
444
+ } else {
445
+ result.actions.push('Rollback verification passed');
446
+ }
447
+ } catch (error) {
448
+ result.success = false;
449
+ result.errors.push(`Rollback verification failed: ${error.message}`);
450
+ }
451
+
452
+ return result;
453
+ }
454
+
455
+ /**
456
+ * Remove SPARC content from CLAUDE.md
457
+ */
458
+ async removeSPARCContentFromClaudeMd() {
459
+ try {
460
+ const claudePath = `${this.workingDir}/CLAUDE.md`;
461
+
462
+ try {
463
+ const content = await fs.readFile(claudePath, 'utf8');
464
+
465
+ // Remove SPARC-specific sections
466
+ const cleanedContent = content
467
+ .replace(/## SPARC Development Commands[\s\S]*?(?=##|\n#|\n$)/g, '')
468
+ .replace(/### SPARC[\s\S]*?(?=###|\n##|\n#|\n$)/g, '')
469
+ .replace(/\n{3,}/g, '\n\n') // Clean up multiple newlines
470
+ .trim();
471
+
472
+ await fs.writeFile(claudePath, cleanedContent, 'utf8');
473
+ } catch {
474
+ // File doesn't exist or can't be modified
475
+ }
476
+ } catch {
477
+ // Error handling CLAUDE.md - continue silently
478
+ }
479
+ }
480
+
481
+ /**
482
+ * Reverse a specific action
483
+ */
484
+ async reverseAction(action) {
485
+ const result = {
486
+ success: true,
487
+ description: '',
488
+ };
489
+
490
+ try {
491
+ switch (action.type) {
492
+ case 'file_created':
493
+ await fs.unlink(action.path);
494
+ result.description = `Removed created file: ${action.path}`;
495
+ break;
496
+
497
+ case 'directory_created':
498
+ await fs.unlink(action.path, { recursive: true });
499
+ result.description = `Removed created directory: ${action.path}`;
500
+ break;
501
+
502
+ case 'file_modified':
503
+ if (action.backup) {
504
+ await fs.writeFile(action.path, action.backup, 'utf8');
505
+ result.description = `Restored modified file: ${action.path}`;
506
+ }
507
+ break;
508
+
509
+ default:
510
+ result.success = false;
511
+ result.description = `Unknown action type: ${action.type}`;
512
+ break;
513
+ }
514
+ } catch (error) {
515
+ result.success = false;
516
+ result.description = `Failed to reverse action: ${error.message}`;
517
+ }
518
+
519
+ return result;
520
+ }
521
+ }