claude-flow-novice 1.0.0

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 (1334) hide show
  1. package/.claude/agents/MIGRATION_SUMMARY.md +222 -0
  2. package/.claude/agents/README.md +89 -0
  3. package/.claude/agents/analysis/code-analyzer.md +209 -0
  4. package/.claude/agents/analysis/code-review/analyze-code-quality.md +180 -0
  5. package/.claude/agents/architecture/system-design/arch-system-design.md +156 -0
  6. package/.claude/agents/base-template-generator.md +42 -0
  7. package/.claude/agents/consensus/README.md +253 -0
  8. package/.claude/agents/consensus/byzantine-coordinator.md +63 -0
  9. package/.claude/agents/consensus/consensus-builder.md +242 -0
  10. package/.claude/agents/consensus/crdt-synchronizer.md +997 -0
  11. package/.claude/agents/consensus/gossip-coordinator.md +63 -0
  12. package/.claude/agents/consensus/performance-benchmarker.md +851 -0
  13. package/.claude/agents/consensus/quorum-manager.md +823 -0
  14. package/.claude/agents/consensus/raft-manager.md +63 -0
  15. package/.claude/agents/consensus/security-manager.md +622 -0
  16. package/.claude/agents/core/coder.md +211 -0
  17. package/.claude/agents/core/planner.md +116 -0
  18. package/.claude/agents/core/researcher.md +136 -0
  19. package/.claude/agents/core/reviewer.md +272 -0
  20. package/.claude/agents/core/tester.md +266 -0
  21. package/.claude/agents/data/ml/data-ml-model.md +193 -0
  22. package/.claude/agents/development/backend/dev-backend-api.md +142 -0
  23. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +164 -0
  24. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +174 -0
  25. package/.claude/agents/flow-nexus/app-store.md +88 -0
  26. package/.claude/agents/flow-nexus/authentication.md +69 -0
  27. package/.claude/agents/flow-nexus/challenges.md +81 -0
  28. package/.claude/agents/flow-nexus/neural-network.md +88 -0
  29. package/.claude/agents/flow-nexus/payments.md +83 -0
  30. package/.claude/agents/flow-nexus/sandbox.md +76 -0
  31. package/.claude/agents/flow-nexus/swarm.md +76 -0
  32. package/.claude/agents/flow-nexus/user-tools.md +96 -0
  33. package/.claude/agents/flow-nexus/workflow.md +84 -0
  34. package/.claude/agents/github/code-review-swarm.md +538 -0
  35. package/.claude/agents/github/github-modes.md +173 -0
  36. package/.claude/agents/github/issue-tracker.md +319 -0
  37. package/.claude/agents/github/multi-repo-swarm.md +553 -0
  38. package/.claude/agents/github/pr-manager.md +191 -0
  39. package/.claude/agents/github/project-board-sync.md +509 -0
  40. package/.claude/agents/github/release-manager.md +367 -0
  41. package/.claude/agents/github/release-swarm.md +583 -0
  42. package/.claude/agents/github/repo-architect.md +398 -0
  43. package/.claude/agents/github/swarm-issue.md +573 -0
  44. package/.claude/agents/github/swarm-pr.md +428 -0
  45. package/.claude/agents/github/sync-coordinator.md +452 -0
  46. package/.claude/agents/github/workflow-automation.md +635 -0
  47. package/.claude/agents/goal/goal-planner.md +73 -0
  48. package/.claude/agents/neural/safla-neural.md +74 -0
  49. package/.claude/agents/optimization/README.md +250 -0
  50. package/.claude/agents/optimization/benchmark-suite.md +665 -0
  51. package/.claude/agents/optimization/load-balancer.md +431 -0
  52. package/.claude/agents/optimization/performance-monitor.md +672 -0
  53. package/.claude/agents/optimization/resource-allocator.md +674 -0
  54. package/.claude/agents/optimization/topology-optimizer.md +808 -0
  55. package/.claude/agents/sparc/architecture.md +472 -0
  56. package/.claude/agents/sparc/pseudocode.md +318 -0
  57. package/.claude/agents/sparc/refinement.md +525 -0
  58. package/.claude/agents/sparc/specification.md +276 -0
  59. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +226 -0
  60. package/.claude/agents/sublinear/consciousness-evolution-agent.md +499 -0
  61. package/.claude/agents/sublinear/matrix-solver-agent.md +113 -0
  62. package/.claude/agents/sublinear/nanosecond-scheduler-agent.md +644 -0
  63. package/.claude/agents/sublinear/pagerank-agent.md +699 -0
  64. package/.claude/agents/sublinear/phi-calculator-agent.md +749 -0
  65. package/.claude/agents/sublinear/psycho-symbolic-agent.md +543 -0
  66. package/.claude/agents/sublinear/sublinear.md +816 -0
  67. package/.claude/agents/sublinear/temporal-advantage-agent.md +360 -0
  68. package/.claude/agents/swarm/README.md +190 -0
  69. package/.claude/agents/swarm/adaptive-coordinator.md +396 -0
  70. package/.claude/agents/swarm/hierarchical-coordinator.md +300 -0
  71. package/.claude/agents/swarm/mesh-coordinator.md +435 -0
  72. package/.claude/agents/templates/automation-smart-agent.md +205 -0
  73. package/.claude/agents/templates/coordinator-swarm-init.md +90 -0
  74. package/.claude/agents/templates/github-pr-manager.md +177 -0
  75. package/.claude/agents/templates/implementer-sparc-coder.md +259 -0
  76. package/.claude/agents/templates/memory-coordinator.md +187 -0
  77. package/.claude/agents/templates/migration-plan.md +746 -0
  78. package/.claude/agents/templates/orchestrator-task.md +139 -0
  79. package/.claude/agents/templates/performance-analyzer.md +199 -0
  80. package/.claude/agents/templates/sparc-coordinator.md +183 -0
  81. package/.claude/agents/testing/e2e/playwright-agent.md +249 -0
  82. package/.claude/agents/testing/unit/tdd-london-swarm.md +244 -0
  83. package/.claude/agents/testing/validation/production-validator.md +395 -0
  84. package/.claude/commands/agents/README.md +10 -0
  85. package/.claude/commands/agents/agent-capabilities.md +21 -0
  86. package/.claude/commands/agents/agent-coordination.md +28 -0
  87. package/.claude/commands/agents/agent-spawning.md +28 -0
  88. package/.claude/commands/agents/agent-types.md +26 -0
  89. package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +54 -0
  90. package/.claude/commands/analysis/README.md +9 -0
  91. package/.claude/commands/analysis/bottleneck-detect.md +162 -0
  92. package/.claude/commands/analysis/performance-bottlenecks.md +59 -0
  93. package/.claude/commands/analysis/performance-report.md +25 -0
  94. package/.claude/commands/analysis/token-efficiency.md +45 -0
  95. package/.claude/commands/analysis/token-usage.md +25 -0
  96. package/.claude/commands/automation/README.md +9 -0
  97. package/.claude/commands/automation/auto-agent.md +122 -0
  98. package/.claude/commands/automation/self-healing.md +106 -0
  99. package/.claude/commands/automation/session-memory.md +90 -0
  100. package/.claude/commands/automation/smart-agents.md +73 -0
  101. package/.claude/commands/automation/smart-spawn.md +25 -0
  102. package/.claude/commands/automation/workflow-select.md +25 -0
  103. package/.claude/commands/coordination/README.md +9 -0
  104. package/.claude/commands/coordination/agent-spawn.md +25 -0
  105. package/.claude/commands/coordination/init.md +44 -0
  106. package/.claude/commands/coordination/orchestrate.md +43 -0
  107. package/.claude/commands/coordination/spawn.md +45 -0
  108. package/.claude/commands/coordination/swarm-init.md +85 -0
  109. package/.claude/commands/coordination/task-orchestrate.md +25 -0
  110. package/.claude/commands/flow-nexus/app-store.md +124 -0
  111. package/.claude/commands/flow-nexus/challenges.md +120 -0
  112. package/.claude/commands/flow-nexus/login-registration.md +65 -0
  113. package/.claude/commands/flow-nexus/neural-network.md +134 -0
  114. package/.claude/commands/flow-nexus/payments.md +116 -0
  115. package/.claude/commands/flow-nexus/sandbox.md +83 -0
  116. package/.claude/commands/flow-nexus/swarm.md +87 -0
  117. package/.claude/commands/flow-nexus/user-tools.md +152 -0
  118. package/.claude/commands/flow-nexus/workflow.md +115 -0
  119. package/.claude/commands/github/README.md +11 -0
  120. package/.claude/commands/github/code-review-swarm.md +514 -0
  121. package/.claude/commands/github/code-review.md +25 -0
  122. package/.claude/commands/github/github-modes.md +147 -0
  123. package/.claude/commands/github/github-swarm.md +121 -0
  124. package/.claude/commands/github/issue-tracker.md +292 -0
  125. package/.claude/commands/github/issue-triage.md +25 -0
  126. package/.claude/commands/github/multi-repo-swarm.md +519 -0
  127. package/.claude/commands/github/pr-enhance.md +26 -0
  128. package/.claude/commands/github/pr-manager.md +170 -0
  129. package/.claude/commands/github/project-board-sync.md +471 -0
  130. package/.claude/commands/github/release-manager.md +338 -0
  131. package/.claude/commands/github/release-swarm.md +544 -0
  132. package/.claude/commands/github/repo-analyze.md +25 -0
  133. package/.claude/commands/github/repo-architect.md +367 -0
  134. package/.claude/commands/github/swarm-issue.md +482 -0
  135. package/.claude/commands/github/swarm-pr.md +285 -0
  136. package/.claude/commands/github/sync-coordinator.md +301 -0
  137. package/.claude/commands/github/workflow-automation.md +442 -0
  138. package/.claude/commands/hive-mind/README.md +17 -0
  139. package/.claude/commands/hive-mind/hive-mind-consensus.md +8 -0
  140. package/.claude/commands/hive-mind/hive-mind-init.md +18 -0
  141. package/.claude/commands/hive-mind/hive-mind-memory.md +8 -0
  142. package/.claude/commands/hive-mind/hive-mind-metrics.md +8 -0
  143. package/.claude/commands/hive-mind/hive-mind-resume.md +8 -0
  144. package/.claude/commands/hive-mind/hive-mind-sessions.md +8 -0
  145. package/.claude/commands/hive-mind/hive-mind-spawn.md +21 -0
  146. package/.claude/commands/hive-mind/hive-mind-status.md +8 -0
  147. package/.claude/commands/hive-mind/hive-mind-stop.md +8 -0
  148. package/.claude/commands/hive-mind/hive-mind-wizard.md +8 -0
  149. package/.claude/commands/hive-mind/hive-mind.md +27 -0
  150. package/.claude/commands/hooks/README.md +11 -0
  151. package/.claude/commands/hooks/overview.md +58 -0
  152. package/.claude/commands/hooks/post-edit.md +117 -0
  153. package/.claude/commands/hooks/post-task.md +112 -0
  154. package/.claude/commands/hooks/pre-edit.md +113 -0
  155. package/.claude/commands/hooks/pre-task.md +111 -0
  156. package/.claude/commands/hooks/session-end.md +118 -0
  157. package/.claude/commands/hooks/setup.md +103 -0
  158. package/.claude/commands/memory/README.md +9 -0
  159. package/.claude/commands/memory/memory-persist.md +25 -0
  160. package/.claude/commands/memory/memory-search.md +25 -0
  161. package/.claude/commands/memory/memory-usage.md +25 -0
  162. package/.claude/commands/memory/neural.md +47 -0
  163. package/.claude/commands/memory/usage.md +46 -0
  164. package/.claude/commands/monitoring/README.md +9 -0
  165. package/.claude/commands/monitoring/agent-metrics.md +25 -0
  166. package/.claude/commands/monitoring/agents.md +44 -0
  167. package/.claude/commands/monitoring/real-time-view.md +25 -0
  168. package/.claude/commands/monitoring/status.md +46 -0
  169. package/.claude/commands/monitoring/swarm-monitor.md +25 -0
  170. package/.claude/commands/optimization/README.md +9 -0
  171. package/.claude/commands/optimization/auto-topology.md +62 -0
  172. package/.claude/commands/optimization/cache-manage.md +25 -0
  173. package/.claude/commands/optimization/parallel-execute.md +25 -0
  174. package/.claude/commands/optimization/parallel-execution.md +50 -0
  175. package/.claude/commands/optimization/topology-optimize.md +25 -0
  176. package/.claude/commands/pair/README.md +261 -0
  177. package/.claude/commands/pair/commands.md +546 -0
  178. package/.claude/commands/pair/config.md +510 -0
  179. package/.claude/commands/pair/examples.md +512 -0
  180. package/.claude/commands/pair/modes.md +348 -0
  181. package/.claude/commands/pair/session.md +407 -0
  182. package/.claude/commands/pair/start.md +209 -0
  183. package/.claude/commands/sparc/analyzer.md +52 -0
  184. package/.claude/commands/sparc/architect.md +53 -0
  185. package/.claude/commands/sparc/batch-executor.md +54 -0
  186. package/.claude/commands/sparc/coder.md +54 -0
  187. package/.claude/commands/sparc/debugger.md +54 -0
  188. package/.claude/commands/sparc/designer.md +53 -0
  189. package/.claude/commands/sparc/documenter.md +54 -0
  190. package/.claude/commands/sparc/innovator.md +54 -0
  191. package/.claude/commands/sparc/memory-manager.md +54 -0
  192. package/.claude/commands/sparc/optimizer.md +54 -0
  193. package/.claude/commands/sparc/orchestrator.md +132 -0
  194. package/.claude/commands/sparc/researcher.md +54 -0
  195. package/.claude/commands/sparc/reviewer.md +54 -0
  196. package/.claude/commands/sparc/sparc-modes.md +174 -0
  197. package/.claude/commands/sparc/swarm-coordinator.md +54 -0
  198. package/.claude/commands/sparc/tdd.md +54 -0
  199. package/.claude/commands/sparc/tester.md +54 -0
  200. package/.claude/commands/sparc/workflow-manager.md +54 -0
  201. package/.claude/commands/stream-chain/pipeline.md +121 -0
  202. package/.claude/commands/stream-chain/run.md +70 -0
  203. package/.claude/commands/swarm/README.md +15 -0
  204. package/.claude/commands/swarm/analysis.md +95 -0
  205. package/.claude/commands/swarm/development.md +96 -0
  206. package/.claude/commands/swarm/examples.md +168 -0
  207. package/.claude/commands/swarm/maintenance.md +102 -0
  208. package/.claude/commands/swarm/optimization.md +117 -0
  209. package/.claude/commands/swarm/research.md +136 -0
  210. package/.claude/commands/swarm/swarm-analysis.md +8 -0
  211. package/.claude/commands/swarm/swarm-background.md +8 -0
  212. package/.claude/commands/swarm/swarm-init.md +19 -0
  213. package/.claude/commands/swarm/swarm-modes.md +8 -0
  214. package/.claude/commands/swarm/swarm-monitor.md +8 -0
  215. package/.claude/commands/swarm/swarm-spawn.md +19 -0
  216. package/.claude/commands/swarm/swarm-status.md +8 -0
  217. package/.claude/commands/swarm/swarm-strategies.md +8 -0
  218. package/.claude/commands/swarm/swarm.md +27 -0
  219. package/.claude/commands/swarm/testing.md +131 -0
  220. package/.claude/commands/testing/playwright-e2e.md +288 -0
  221. package/.claude/commands/training/README.md +9 -0
  222. package/.claude/commands/training/model-update.md +25 -0
  223. package/.claude/commands/training/neural-patterns.md +74 -0
  224. package/.claude/commands/training/neural-train.md +25 -0
  225. package/.claude/commands/training/pattern-learn.md +25 -0
  226. package/.claude/commands/training/specialization.md +63 -0
  227. package/.claude/commands/truth/start.md +143 -0
  228. package/.claude/commands/verify/check.md +50 -0
  229. package/.claude/commands/verify/start.md +128 -0
  230. package/.claude/commands/workflows/README.md +9 -0
  231. package/.claude/commands/workflows/development.md +78 -0
  232. package/.claude/commands/workflows/research.md +63 -0
  233. package/.claude/commands/workflows/workflow-create.md +25 -0
  234. package/.claude/commands/workflows/workflow-execute.md +25 -0
  235. package/.claude/commands/workflows/workflow-export.md +25 -0
  236. package/.claude/helpers/checkpoint-manager.sh +251 -0
  237. package/.claude/helpers/github-safe.js +106 -0
  238. package/.claude/helpers/github-setup.sh +28 -0
  239. package/.claude/helpers/quick-start.sh +19 -0
  240. package/.claude/helpers/setup-mcp.sh +18 -0
  241. package/.claude/helpers/standard-checkpoint-hooks.sh +179 -0
  242. package/.claude/settings.json +112 -0
  243. package/.claude/settings.local.json +10 -0
  244. package/CHANGELOG.md +1517 -0
  245. package/LICENSE +21 -0
  246. package/README.md +338 -0
  247. package/dist/src/adapters/cliffy-node.js +70 -0
  248. package/dist/src/adapters/cliffy-node.js.map +1 -0
  249. package/dist/src/agents/agent-loader.js +208 -0
  250. package/dist/src/agents/agent-loader.js.map +1 -0
  251. package/dist/src/agents/agent-manager.js +1786 -0
  252. package/dist/src/agents/agent-manager.js.map +1 -0
  253. package/dist/src/agents/agent-registry.js +356 -0
  254. package/dist/src/agents/agent-registry.js.map +1 -0
  255. package/dist/src/agents/agent-validator.js +273 -0
  256. package/dist/src/agents/agent-validator.js.map +1 -0
  257. package/dist/src/agents/github/agent-factory.js +553 -0
  258. package/dist/src/agents/github/agent-factory.js.map +1 -0
  259. package/dist/src/agents/github/compatibility/legacy-agent-mappings.js +307 -0
  260. package/dist/src/agents/github/compatibility/legacy-agent-mappings.js.map +1 -0
  261. package/dist/src/agents/github/compatibility/legacy-agent-proxy.js +334 -0
  262. package/dist/src/agents/github/compatibility/legacy-agent-proxy.js.map +1 -0
  263. package/dist/src/agents/github/core/github-collaboration-manager.js +796 -0
  264. package/dist/src/agents/github/core/github-collaboration-manager.js.map +1 -0
  265. package/dist/src/agents/github/core/github-integration-manager.js +546 -0
  266. package/dist/src/agents/github/core/github-integration-manager.js.map +1 -0
  267. package/dist/src/agents/github/core/github-release-coordinator.js +718 -0
  268. package/dist/src/agents/github/core/github-release-coordinator.js.map +1 -0
  269. package/dist/src/agents/github/index.js +68 -0
  270. package/dist/src/agents/github/index.js.map +1 -0
  271. package/dist/src/agents/github/types/index.js +6 -0
  272. package/dist/src/agents/github/types/index.js.map +1 -0
  273. package/dist/src/agents/github/utils/error-handling.js +496 -0
  274. package/dist/src/agents/github/utils/error-handling.js.map +1 -0
  275. package/dist/src/agents/github/utils/github-client.js +158 -0
  276. package/dist/src/agents/github/utils/github-client.js.map +1 -0
  277. package/dist/src/agents/github/utils/hook-integration.js +450 -0
  278. package/dist/src/agents/github/utils/hook-integration.js.map +1 -0
  279. package/dist/src/agents/github/utils/performance-optimizer.js +501 -0
  280. package/dist/src/agents/github/utils/performance-optimizer.js.map +1 -0
  281. package/dist/src/agents/hierarchical-coordinator.js +775 -0
  282. package/dist/src/agents/hierarchical-coordinator.js.map +1 -0
  283. package/dist/src/agents/lifecycle-manager.js +613 -0
  284. package/dist/src/agents/lifecycle-manager.js.map +1 -0
  285. package/dist/src/agents/mesh-coordinator.js +580 -0
  286. package/dist/src/agents/mesh-coordinator.js.map +1 -0
  287. package/dist/src/agents/simple-agent.js +89 -0
  288. package/dist/src/agents/simple-agent.js.map +1 -0
  289. package/dist/src/agents/task-agent-integration.js +240 -0
  290. package/dist/src/agents/task-agent-integration.js.map +1 -0
  291. package/dist/src/api/auth-service.js +474 -0
  292. package/dist/src/api/auth-service.js.map +1 -0
  293. package/dist/src/api/claude-api-errors.js +171 -0
  294. package/dist/src/api/claude-api-errors.js.map +1 -0
  295. package/dist/src/api/claude-client-enhanced.js +473 -0
  296. package/dist/src/api/claude-client-enhanced.js.map +1 -0
  297. package/dist/src/api/claude-client.js +527 -0
  298. package/dist/src/api/claude-client.js.map +1 -0
  299. package/dist/src/api/database-service.js +666 -0
  300. package/dist/src/api/database-service.js.map +1 -0
  301. package/dist/src/api/swarm-api.js +585 -0
  302. package/dist/src/api/swarm-api.js.map +1 -0
  303. package/dist/src/automation/test-pipeline/E2ETestGenerator.js +448 -0
  304. package/dist/src/automation/test-pipeline/E2ETestGenerator.js.map +1 -0
  305. package/dist/src/automation/test-pipeline/PerformanceMonitor.js +572 -0
  306. package/dist/src/automation/test-pipeline/PerformanceMonitor.js.map +1 -0
  307. package/dist/src/automation/test-pipeline/PipelineValidator.js +654 -0
  308. package/dist/src/automation/test-pipeline/PipelineValidator.js.map +1 -0
  309. package/dist/src/automation/test-pipeline/RegressionTestManager.js +545 -0
  310. package/dist/src/automation/test-pipeline/RegressionTestManager.js.map +1 -0
  311. package/dist/src/automation/test-pipeline/SwarmTestCoordinator.js +450 -0
  312. package/dist/src/automation/test-pipeline/SwarmTestCoordinator.js.map +1 -0
  313. package/dist/src/automation/test-pipeline/TestDataManager.js +708 -0
  314. package/dist/src/automation/test-pipeline/TestDataManager.js.map +1 -0
  315. package/dist/src/automation/test-pipeline/TestReportingSystem.js +527 -0
  316. package/dist/src/automation/test-pipeline/TestReportingSystem.js.map +1 -0
  317. package/dist/src/automation/test-pipeline/utils/chrome-mcp-integration.js +353 -0
  318. package/dist/src/automation/test-pipeline/utils/chrome-mcp-integration.js.map +1 -0
  319. package/dist/src/automation/test-pipeline/utils/swarm-coordinator.js +448 -0
  320. package/dist/src/automation/test-pipeline/utils/swarm-coordinator.js.map +1 -0
  321. package/dist/src/ci-cd/deployment-orchestrator.js +477 -0
  322. package/dist/src/ci-cd/deployment-orchestrator.js.map +1 -0
  323. package/dist/src/ci-cd/github-actions-templates.js +972 -0
  324. package/dist/src/ci-cd/github-actions-templates.js.map +1 -0
  325. package/dist/src/ci-cd/performance/PerformanceGate.js +383 -0
  326. package/dist/src/ci-cd/performance/PerformanceGate.js.map +1 -0
  327. package/dist/src/cli/agents/analyst.js +788 -0
  328. package/dist/src/cli/agents/analyst.js.map +1 -0
  329. package/dist/src/cli/agents/architect.js +846 -0
  330. package/dist/src/cli/agents/architect.js.map +1 -0
  331. package/dist/src/cli/agents/base-agent.js +437 -0
  332. package/dist/src/cli/agents/base-agent.js.map +1 -0
  333. package/dist/src/cli/agents/capabilities.js +701 -0
  334. package/dist/src/cli/agents/capabilities.js.map +1 -0
  335. package/dist/src/cli/agents/coder.js +936 -0
  336. package/dist/src/cli/agents/coder.js.map +1 -0
  337. package/dist/src/cli/agents/coordinator.js +489 -0
  338. package/dist/src/cli/agents/coordinator.js.map +1 -0
  339. package/dist/src/cli/agents/hive-agents.js +708 -0
  340. package/dist/src/cli/agents/hive-agents.js.map +1 -0
  341. package/dist/src/cli/agents/index.js +299 -0
  342. package/dist/src/cli/agents/index.js.map +1 -0
  343. package/dist/src/cli/agents/researcher.js +388 -0
  344. package/dist/src/cli/agents/researcher.js.map +1 -0
  345. package/dist/src/cli/agents/tester.js +634 -0
  346. package/dist/src/cli/agents/tester.js.map +1 -0
  347. package/dist/src/cli/cli-core.js +264 -0
  348. package/dist/src/cli/cli-core.js.map +1 -0
  349. package/dist/src/cli/commands/advanced-memory-commands.js +834 -0
  350. package/dist/src/cli/commands/advanced-memory-commands.js.map +1 -0
  351. package/dist/src/cli/commands/agent-simple.js +346 -0
  352. package/dist/src/cli/commands/agent-simple.js.map +1 -0
  353. package/dist/src/cli/commands/agent.js +368 -0
  354. package/dist/src/cli/commands/agent.js.map +1 -0
  355. package/dist/src/cli/commands/claude-api.js +237 -0
  356. package/dist/src/cli/commands/claude-api.js.map +1 -0
  357. package/dist/src/cli/commands/claude.js +132 -0
  358. package/dist/src/cli/commands/claude.js.map +1 -0
  359. package/dist/src/cli/commands/config-integration.js +395 -0
  360. package/dist/src/cli/commands/config-integration.js.map +1 -0
  361. package/dist/src/cli/commands/config.js +67 -0
  362. package/dist/src/cli/commands/config.js.map +1 -0
  363. package/dist/src/cli/commands/enterprise.js +1523 -0
  364. package/dist/src/cli/commands/enterprise.js.map +1 -0
  365. package/dist/src/cli/commands/goal-init.js +262 -0
  366. package/dist/src/cli/commands/goal-init.js.map +1 -0
  367. package/dist/src/cli/commands/help-new.js +276 -0
  368. package/dist/src/cli/commands/help-new.js.map +1 -0
  369. package/dist/src/cli/commands/help.js +1055 -0
  370. package/dist/src/cli/commands/help.js.map +1 -0
  371. package/dist/src/cli/commands/hive-mind/index.js +20 -0
  372. package/dist/src/cli/commands/hive-mind/index.js.map +1 -0
  373. package/dist/src/cli/commands/hive-mind/init.js +58 -0
  374. package/dist/src/cli/commands/hive-mind/init.js.map +1 -0
  375. package/dist/src/cli/commands/hive-mind/optimize-memory.js +362 -0
  376. package/dist/src/cli/commands/hive-mind/optimize-memory.js.map +1 -0
  377. package/dist/src/cli/commands/hive-mind/pause.js +73 -0
  378. package/dist/src/cli/commands/hive-mind/pause.js.map +1 -0
  379. package/dist/src/cli/commands/hive-mind/ps.js +104 -0
  380. package/dist/src/cli/commands/hive-mind/ps.js.map +1 -0
  381. package/dist/src/cli/commands/hive-mind/resume.js +56 -0
  382. package/dist/src/cli/commands/hive-mind/resume.js.map +1 -0
  383. package/dist/src/cli/commands/hive-mind/spawn.js +242 -0
  384. package/dist/src/cli/commands/hive-mind/spawn.js.map +1 -0
  385. package/dist/src/cli/commands/hive-mind/status.js +250 -0
  386. package/dist/src/cli/commands/hive-mind/status.js.map +1 -0
  387. package/dist/src/cli/commands/hive-mind/stop.js +116 -0
  388. package/dist/src/cli/commands/hive-mind/stop.js.map +1 -0
  389. package/dist/src/cli/commands/hive-mind/task.js +302 -0
  390. package/dist/src/cli/commands/hive-mind/task.js.map +1 -0
  391. package/dist/src/cli/commands/hive-mind/wizard.js +705 -0
  392. package/dist/src/cli/commands/hive-mind/wizard.js.map +1 -0
  393. package/dist/src/cli/commands/hive.js +506 -0
  394. package/dist/src/cli/commands/hive.js.map +1 -0
  395. package/dist/src/cli/commands/hook-types.js +5 -0
  396. package/dist/src/cli/commands/hook-types.js.map +1 -0
  397. package/dist/src/cli/commands/hook-validator.js +177 -0
  398. package/dist/src/cli/commands/hook-validator.js.map +1 -0
  399. package/dist/src/cli/commands/hook.js +303 -0
  400. package/dist/src/cli/commands/hook.js.map +1 -0
  401. package/dist/src/cli/commands/index.js +2745 -0
  402. package/dist/src/cli/commands/index.js.map +1 -0
  403. package/dist/src/cli/commands/maestro.js +242 -0
  404. package/dist/src/cli/commands/maestro.js.map +1 -0
  405. package/dist/src/cli/commands/mcp.js +148 -0
  406. package/dist/src/cli/commands/mcp.js.map +1 -0
  407. package/dist/src/cli/commands/memory.js +193 -0
  408. package/dist/src/cli/commands/memory.js.map +1 -0
  409. package/dist/src/cli/commands/migrate.js +107 -0
  410. package/dist/src/cli/commands/migrate.js.map +1 -0
  411. package/dist/src/cli/commands/monitor.js +574 -0
  412. package/dist/src/cli/commands/monitor.js.map +1 -0
  413. package/dist/src/cli/commands/neural-init.js +211 -0
  414. package/dist/src/cli/commands/neural-init.js.map +1 -0
  415. package/dist/src/cli/commands/ruv-swarm.js +555 -0
  416. package/dist/src/cli/commands/ruv-swarm.js.map +1 -0
  417. package/dist/src/cli/commands/session.js +517 -0
  418. package/dist/src/cli/commands/session.js.map +1 -0
  419. package/dist/src/cli/commands/sparc.js +486 -0
  420. package/dist/src/cli/commands/sparc.js.map +1 -0
  421. package/dist/src/cli/commands/start/event-emitter.js +35 -0
  422. package/dist/src/cli/commands/start/event-emitter.js.map +1 -0
  423. package/dist/src/cli/commands/start/index.js +9 -0
  424. package/dist/src/cli/commands/start/index.js.map +1 -0
  425. package/dist/src/cli/commands/start/process-manager.js +294 -0
  426. package/dist/src/cli/commands/start/process-manager.js.map +1 -0
  427. package/dist/src/cli/commands/start/process-ui-simple.js +322 -0
  428. package/dist/src/cli/commands/start/process-ui-simple.js.map +1 -0
  429. package/dist/src/cli/commands/start/process-ui.js +5 -0
  430. package/dist/src/cli/commands/start/process-ui.js.map +1 -0
  431. package/dist/src/cli/commands/start/start-command.js +463 -0
  432. package/dist/src/cli/commands/start/start-command.js.map +1 -0
  433. package/dist/src/cli/commands/start/system-monitor.js +268 -0
  434. package/dist/src/cli/commands/start/system-monitor.js.map +1 -0
  435. package/dist/src/cli/commands/start/types.js +22 -0
  436. package/dist/src/cli/commands/start/types.js.map +1 -0
  437. package/dist/src/cli/commands/start.js +6 -0
  438. package/dist/src/cli/commands/start.js.map +1 -0
  439. package/dist/src/cli/commands/status.js +328 -0
  440. package/dist/src/cli/commands/status.js.map +1 -0
  441. package/dist/src/cli/commands/swarm-spawn.js +56 -0
  442. package/dist/src/cli/commands/swarm-spawn.js.map +1 -0
  443. package/dist/src/cli/commands/swarm.js +567 -0
  444. package/dist/src/cli/commands/swarm.js.map +1 -0
  445. package/dist/src/cli/commands/task.js +44 -0
  446. package/dist/src/cli/commands/task.js.map +1 -0
  447. package/dist/src/cli/commands/validate-integration.js +122 -0
  448. package/dist/src/cli/commands/validate-integration.js.map +1 -0
  449. package/dist/src/cli/commands/verification.js +351 -0
  450. package/dist/src/cli/commands/verification.js.map +1 -0
  451. package/dist/src/cli/commands/workflow.js +615 -0
  452. package/dist/src/cli/commands/workflow.js.map +1 -0
  453. package/dist/src/cli/completion.js +578 -0
  454. package/dist/src/cli/completion.js.map +1 -0
  455. package/dist/src/cli/consolidated/ConsolidatedCLI.js +379 -0
  456. package/dist/src/cli/consolidated/ConsolidatedCLI.js.map +1 -0
  457. package/dist/src/cli/consolidated/core/CommandHandlers.js +833 -0
  458. package/dist/src/cli/consolidated/core/CommandHandlers.js.map +1 -0
  459. package/dist/src/cli/consolidated/core/TierManager.js +291 -0
  460. package/dist/src/cli/consolidated/core/TierManager.js.map +1 -0
  461. package/dist/src/cli/consolidated/help/InteractiveHelp.js +714 -0
  462. package/dist/src/cli/consolidated/help/InteractiveHelp.js.map +1 -0
  463. package/dist/src/cli/consolidated/index.js +62 -0
  464. package/dist/src/cli/consolidated/index.js.map +1 -0
  465. package/dist/src/cli/consolidated/intelligence/IntelligenceEngine.js +457 -0
  466. package/dist/src/cli/consolidated/intelligence/IntelligenceEngine.js.map +1 -0
  467. package/dist/src/cli/consolidated/routing/CommandRouter.js +526 -0
  468. package/dist/src/cli/consolidated/routing/CommandRouter.js.map +1 -0
  469. package/dist/src/cli/consolidated/utils/IntelligentDefaults.js +729 -0
  470. package/dist/src/cli/consolidated/utils/IntelligentDefaults.js.map +1 -0
  471. package/dist/src/cli/consolidated/utils/PerformanceOptimizer.js +416 -0
  472. package/dist/src/cli/consolidated/utils/PerformanceOptimizer.js.map +1 -0
  473. package/dist/src/cli/formatter.js +284 -0
  474. package/dist/src/cli/formatter.js.map +1 -0
  475. package/dist/src/cli/help-formatter.js +111 -0
  476. package/dist/src/cli/help-formatter.js.map +1 -0
  477. package/dist/src/cli/index-remote.js +125 -0
  478. package/dist/src/cli/index-remote.js.map +1 -0
  479. package/dist/src/cli/index.js +159 -0
  480. package/dist/src/cli/index.js.map +1 -0
  481. package/dist/src/cli/init/batch-tools.js +388 -0
  482. package/dist/src/cli/init/batch-tools.js.map +1 -0
  483. package/dist/src/cli/init/claude-config.js +401 -0
  484. package/dist/src/cli/init/claude-config.js.map +1 -0
  485. package/dist/src/cli/init/directory-structure.js +146 -0
  486. package/dist/src/cli/init/directory-structure.js.map +1 -0
  487. package/dist/src/cli/init/index.js +52 -0
  488. package/dist/src/cli/init/index.js.map +1 -0
  489. package/dist/src/cli/init/sparc-environment.js +543 -0
  490. package/dist/src/cli/init/sparc-environment.js.map +1 -0
  491. package/dist/src/cli/init/swarm-commands.js +796 -0
  492. package/dist/src/cli/init/swarm-commands.js.map +1 -0
  493. package/dist/src/cli/init/utils.js +15 -0
  494. package/dist/src/cli/init/utils.js.map +1 -0
  495. package/dist/src/cli/maestro-cli-bridge.js +426 -0
  496. package/dist/src/cli/maestro-cli-bridge.js.map +1 -0
  497. package/dist/src/cli/main.js +26 -0
  498. package/dist/src/cli/main.js.map +1 -0
  499. package/dist/src/cli/node-repl.js +652 -0
  500. package/dist/src/cli/node-repl.js.map +1 -0
  501. package/dist/src/cli/repl.js +1078 -0
  502. package/dist/src/cli/repl.js.map +1 -0
  503. package/dist/src/cli/simple-cli.js +3026 -0
  504. package/dist/src/cli/simple-cli.js.map +1 -0
  505. package/dist/src/cli/simple-mcp.js +87 -0
  506. package/dist/src/cli/simple-mcp.js.map +1 -0
  507. package/dist/src/cli/simple-orchestrator.js +857 -0
  508. package/dist/src/cli/simple-orchestrator.js.map +1 -0
  509. package/dist/src/cli/ui/compatible-ui.js +322 -0
  510. package/dist/src/cli/ui/compatible-ui.js.map +1 -0
  511. package/dist/src/cli/ui/fallback-handler.js +156 -0
  512. package/dist/src/cli/ui/fallback-handler.js.map +1 -0
  513. package/dist/src/cli/ui/index.js +32 -0
  514. package/dist/src/cli/ui/index.js.map +1 -0
  515. package/dist/src/cli/utils/environment-detector.js +228 -0
  516. package/dist/src/cli/utils/environment-detector.js.map +1 -0
  517. package/dist/src/cli/utils/prompt-defaults.js +234 -0
  518. package/dist/src/cli/utils/prompt-defaults.js.map +1 -0
  519. package/dist/src/cli/validation-helper.js +66 -0
  520. package/dist/src/cli/validation-helper.js.map +1 -0
  521. package/dist/src/communication/message-bus.js +1007 -0
  522. package/dist/src/communication/message-bus.js.map +1 -0
  523. package/dist/src/communication/reliable-communication-manager.js +374 -0
  524. package/dist/src/communication/reliable-communication-manager.js.map +1 -0
  525. package/dist/src/config/ai/decision-tree-generator.js +763 -0
  526. package/dist/src/config/ai/decision-tree-generator.js.map +1 -0
  527. package/dist/src/config/ai/project-detection-engine.js +1081 -0
  528. package/dist/src/config/ai/project-detection-engine.js.map +1 -0
  529. package/dist/src/config/config-manager.js +1285 -0
  530. package/dist/src/config/config-manager.js.map +1 -0
  531. package/dist/src/config/consent-manager.js +433 -0
  532. package/dist/src/config/consent-manager.js.map +1 -0
  533. package/dist/src/config/core/intelligent-configuration-manager.js +674 -0
  534. package/dist/src/config/core/intelligent-configuration-manager.js.map +1 -0
  535. package/dist/src/config/index.js +110 -0
  536. package/dist/src/config/index.js.map +1 -0
  537. package/dist/src/config/integration/hooks-integration.js +548 -0
  538. package/dist/src/config/integration/hooks-integration.js.map +1 -0
  539. package/dist/src/config/migration/config-migration.js +285 -0
  540. package/dist/src/config/migration/config-migration.js.map +1 -0
  541. package/dist/src/config/migration/version-migration-engine.js +984 -0
  542. package/dist/src/config/migration/version-migration-engine.js.map +1 -0
  543. package/dist/src/config/migration-manager.js +529 -0
  544. package/dist/src/config/migration-manager.js.map +1 -0
  545. package/dist/src/config/ruv-swarm-config.js +332 -0
  546. package/dist/src/config/ruv-swarm-config.js.map +1 -0
  547. package/dist/src/config/ruv-swarm-integration.js +285 -0
  548. package/dist/src/config/ruv-swarm-integration.js.map +1 -0
  549. package/dist/src/config/storage/multi-tier-storage.js +626 -0
  550. package/dist/src/config/storage/multi-tier-storage.js.map +1 -0
  551. package/dist/src/config/test-migration-fixer.js +332 -0
  552. package/dist/src/config/test-migration-fixer.js.map +1 -0
  553. package/dist/src/config/ui/progressive-disclosure-engine.js +876 -0
  554. package/dist/src/config/ui/progressive-disclosure-engine.js.map +1 -0
  555. package/dist/src/config/utils/config-export-import.js +454 -0
  556. package/dist/src/config/utils/config-export-import.js.map +1 -0
  557. package/dist/src/config/utils/zero-config-setup.js +238 -0
  558. package/dist/src/config/utils/zero-config-setup.js.map +1 -0
  559. package/dist/src/config/validation/config-validator.js +462 -0
  560. package/dist/src/config/validation/config-validator.js.map +1 -0
  561. package/dist/src/config/web-portal-config.js +343 -0
  562. package/dist/src/config/web-portal-config.js.map +1 -0
  563. package/dist/src/config/zero-config-setup.js +294 -0
  564. package/dist/src/config/zero-config-setup.js.map +1 -0
  565. package/dist/src/constants/agent-types.js +51 -0
  566. package/dist/src/constants/agent-types.js.map +1 -0
  567. package/dist/src/coordination/advanced-scheduler.js +370 -0
  568. package/dist/src/coordination/advanced-scheduler.js.map +1 -0
  569. package/dist/src/coordination/advanced-task-executor.js +481 -0
  570. package/dist/src/coordination/advanced-task-executor.js.map +1 -0
  571. package/dist/src/coordination/background-executor.js +366 -0
  572. package/dist/src/coordination/background-executor.js.map +1 -0
  573. package/dist/src/coordination/circuit-breaker.js +286 -0
  574. package/dist/src/coordination/circuit-breaker.js.map +1 -0
  575. package/dist/src/coordination/conflict-resolution.js +348 -0
  576. package/dist/src/coordination/conflict-resolution.js.map +1 -0
  577. package/dist/src/coordination/dependency-graph.js +398 -0
  578. package/dist/src/coordination/dependency-graph.js.map +1 -0
  579. package/dist/src/coordination/hive-orchestrator.js +309 -0
  580. package/dist/src/coordination/hive-orchestrator.js.map +1 -0
  581. package/dist/src/coordination/hive-protocol.js +363 -0
  582. package/dist/src/coordination/hive-protocol.js.map +1 -0
  583. package/dist/src/coordination/index.js +21 -0
  584. package/dist/src/coordination/index.js.map +1 -0
  585. package/dist/src/coordination/load-balancer.js +737 -0
  586. package/dist/src/coordination/load-balancer.js.map +1 -0
  587. package/dist/src/coordination/manager.js +360 -0
  588. package/dist/src/coordination/manager.js.map +1 -0
  589. package/dist/src/coordination/messaging.js +221 -0
  590. package/dist/src/coordination/messaging.js.map +1 -0
  591. package/dist/src/coordination/metrics.js +415 -0
  592. package/dist/src/coordination/metrics.js.map +1 -0
  593. package/dist/src/coordination/resources.js +276 -0
  594. package/dist/src/coordination/resources.js.map +1 -0
  595. package/dist/src/coordination/scheduler.js +322 -0
  596. package/dist/src/coordination/scheduler.js.map +1 -0
  597. package/dist/src/coordination/swarm-coordinator.js +585 -0
  598. package/dist/src/coordination/swarm-coordinator.js.map +1 -0
  599. package/dist/src/coordination/swarm-monitor.js +359 -0
  600. package/dist/src/coordination/swarm-monitor.js.map +1 -0
  601. package/dist/src/coordination/work-stealing.js +164 -0
  602. package/dist/src/coordination/work-stealing.js.map +1 -0
  603. package/dist/src/core/agent-manager.js +80 -0
  604. package/dist/src/core/agent-manager.js.map +1 -0
  605. package/dist/src/core/config.js +1221 -0
  606. package/dist/src/core/config.js.map +1 -0
  607. package/dist/src/core/event-bus.js +136 -0
  608. package/dist/src/core/event-bus.js.map +1 -0
  609. package/dist/src/core/index.js +6 -0
  610. package/dist/src/core/index.js.map +1 -0
  611. package/dist/src/core/json-persistence.js +112 -0
  612. package/dist/src/core/json-persistence.js.map +1 -0
  613. package/dist/src/core/logger.js +245 -0
  614. package/dist/src/core/logger.js.map +1 -0
  615. package/dist/src/core/orchestrator-fixed.js +236 -0
  616. package/dist/src/core/orchestrator-fixed.js.map +1 -0
  617. package/dist/src/core/orchestrator.js +1136 -0
  618. package/dist/src/core/orchestrator.js.map +1 -0
  619. package/dist/src/core/persistence.js +185 -0
  620. package/dist/src/core/persistence.js.map +1 -0
  621. package/dist/src/core/project-manager.js +80 -0
  622. package/dist/src/core/project-manager.js.map +1 -0
  623. package/dist/src/core/version.js +35 -0
  624. package/dist/src/core/version.js.map +1 -0
  625. package/dist/src/crdt/types.js +509 -0
  626. package/dist/src/crdt/types.js.map +1 -0
  627. package/dist/src/enterprise/analytics-manager.js +1133 -0
  628. package/dist/src/enterprise/analytics-manager.js.map +1 -0
  629. package/dist/src/enterprise/audit-manager.js +1112 -0
  630. package/dist/src/enterprise/audit-manager.js.map +1 -0
  631. package/dist/src/enterprise/cloud-manager.js +886 -0
  632. package/dist/src/enterprise/cloud-manager.js.map +1 -0
  633. package/dist/src/enterprise/deployment-manager.js +963 -0
  634. package/dist/src/enterprise/deployment-manager.js.map +1 -0
  635. package/dist/src/enterprise/index.js +8 -0
  636. package/dist/src/enterprise/index.js.map +1 -0
  637. package/dist/src/enterprise/project-manager.js +577 -0
  638. package/dist/src/enterprise/project-manager.js.map +1 -0
  639. package/dist/src/enterprise/security-manager.js +987 -0
  640. package/dist/src/enterprise/security-manager.js.map +1 -0
  641. package/dist/src/feature-flags/cli/Phase4CLI.js +463 -0
  642. package/dist/src/feature-flags/cli/Phase4CLI.js.map +1 -0
  643. package/dist/src/feature-flags/core/FeatureFlagManager.js +324 -0
  644. package/dist/src/feature-flags/core/FeatureFlagManager.js.map +1 -0
  645. package/dist/src/feature-flags/index.js +237 -0
  646. package/dist/src/feature-flags/index.js.map +1 -0
  647. package/dist/src/feature-flags/monitoring/RolloutMonitor.js +275 -0
  648. package/dist/src/feature-flags/monitoring/RolloutMonitor.js.map +1 -0
  649. package/dist/src/feature-flags/rollout/RolloutController.js +301 -0
  650. package/dist/src/feature-flags/rollout/RolloutController.js.map +1 -0
  651. package/dist/src/feature-flags/validation/HookInterceptor.js +310 -0
  652. package/dist/src/feature-flags/validation/HookInterceptor.js.map +1 -0
  653. package/dist/src/feature-flags/validation/TruthBasedValidator.js +263 -0
  654. package/dist/src/feature-flags/validation/TruthBasedValidator.js.map +1 -0
  655. package/dist/src/hive-mind/core/Agent.js +569 -0
  656. package/dist/src/hive-mind/core/Agent.js.map +1 -0
  657. package/dist/src/hive-mind/core/Communication.js +411 -0
  658. package/dist/src/hive-mind/core/Communication.js.map +1 -0
  659. package/dist/src/hive-mind/core/DatabaseManager.js +599 -0
  660. package/dist/src/hive-mind/core/DatabaseManager.js.map +1 -0
  661. package/dist/src/hive-mind/core/HiveMind.js +575 -0
  662. package/dist/src/hive-mind/core/HiveMind.js.map +1 -0
  663. package/dist/src/hive-mind/core/Memory.js +1159 -0
  664. package/dist/src/hive-mind/core/Memory.js.map +1 -0
  665. package/dist/src/hive-mind/core/MemoryMonitor.js +525 -0
  666. package/dist/src/hive-mind/core/MemoryMonitor.js.map +1 -0
  667. package/dist/src/hive-mind/core/Queen.js +753 -0
  668. package/dist/src/hive-mind/core/Queen.js.map +1 -0
  669. package/dist/src/hive-mind/index.js +21 -0
  670. package/dist/src/hive-mind/index.js.map +1 -0
  671. package/dist/src/hive-mind/integration/ConsensusEngine.js +460 -0
  672. package/dist/src/hive-mind/integration/ConsensusEngine.js.map +1 -0
  673. package/dist/src/hive-mind/integration/MCPToolWrapper.js +243 -0
  674. package/dist/src/hive-mind/integration/MCPToolWrapper.js.map +1 -0
  675. package/dist/src/hive-mind/integration/SwarmOrchestrator.js +812 -0
  676. package/dist/src/hive-mind/integration/SwarmOrchestrator.js.map +1 -0
  677. package/dist/src/hive-mind/types.js +9 -0
  678. package/dist/src/hive-mind/types.js.map +1 -0
  679. package/dist/src/hooks/index.js +197 -0
  680. package/dist/src/hooks/index.js.map +1 -0
  681. package/dist/src/index.js +11 -0
  682. package/dist/src/index.js.map +1 -0
  683. package/dist/src/integration/mock-components.js +362 -0
  684. package/dist/src/integration/mock-components.js.map +1 -0
  685. package/dist/src/integration/system-integration.js +428 -0
  686. package/dist/src/integration/system-integration.js.map +1 -0
  687. package/dist/src/integration/types.js +5 -0
  688. package/dist/src/integration/types.js.map +1 -0
  689. package/dist/src/lifecycle/communication-protocols.js +568 -0
  690. package/dist/src/lifecycle/communication-protocols.js.map +1 -0
  691. package/dist/src/lifecycle/dependency-tracker.js +799 -0
  692. package/dist/src/lifecycle/dependency-tracker.js.map +1 -0
  693. package/dist/src/lifecycle/memory-schema.js +622 -0
  694. package/dist/src/lifecycle/memory-schema.js.map +1 -0
  695. package/dist/src/maestro/maestro-swarm-coordinator.js +504 -0
  696. package/dist/src/maestro/maestro-swarm-coordinator.js.map +1 -0
  697. package/dist/src/maestro/maestro-types.js +3 -0
  698. package/dist/src/maestro/maestro-types.js.map +1 -0
  699. package/dist/src/maestro/tests/native-hive-mind-integration.test.js +382 -0
  700. package/dist/src/maestro/tests/native-hive-mind-integration.test.js.map +1 -0
  701. package/dist/src/mcp/auth.js +347 -0
  702. package/dist/src/mcp/auth.js.map +1 -0
  703. package/dist/src/mcp/claude-code-wrapper.js +717 -0
  704. package/dist/src/mcp/claude-code-wrapper.js.map +1 -0
  705. package/dist/src/mcp/claude-flow-tools.js +1365 -0
  706. package/dist/src/mcp/claude-flow-tools.js.map +1 -0
  707. package/dist/src/mcp/client.js +201 -0
  708. package/dist/src/mcp/client.js.map +1 -0
  709. package/dist/src/mcp/index.js +192 -0
  710. package/dist/src/mcp/index.js.map +1 -0
  711. package/dist/src/mcp/integrate-wrapper.js +85 -0
  712. package/dist/src/mcp/integrate-wrapper.js.map +1 -0
  713. package/dist/src/mcp/lifecycle-manager.js +348 -0
  714. package/dist/src/mcp/lifecycle-manager.js.map +1 -0
  715. package/dist/src/mcp/load-balancer.js +386 -0
  716. package/dist/src/mcp/load-balancer.js.map +1 -0
  717. package/dist/src/mcp/orchestration-integration.js +800 -0
  718. package/dist/src/mcp/orchestration-integration.js.map +1 -0
  719. package/dist/src/mcp/performance-monitor.js +489 -0
  720. package/dist/src/mcp/performance-monitor.js.map +1 -0
  721. package/dist/src/mcp/protocol-manager.js +376 -0
  722. package/dist/src/mcp/protocol-manager.js.map +1 -0
  723. package/dist/src/mcp/recovery/connection-health-monitor.js +240 -0
  724. package/dist/src/mcp/recovery/connection-health-monitor.js.map +1 -0
  725. package/dist/src/mcp/recovery/connection-state-manager.js +309 -0
  726. package/dist/src/mcp/recovery/connection-state-manager.js.map +1 -0
  727. package/dist/src/mcp/recovery/fallback-coordinator.js +288 -0
  728. package/dist/src/mcp/recovery/fallback-coordinator.js.map +1 -0
  729. package/dist/src/mcp/recovery/index.js +10 -0
  730. package/dist/src/mcp/recovery/index.js.map +1 -0
  731. package/dist/src/mcp/recovery/reconnection-manager.js +219 -0
  732. package/dist/src/mcp/recovery/reconnection-manager.js.map +1 -0
  733. package/dist/src/mcp/recovery/recovery-manager.js +262 -0
  734. package/dist/src/mcp/recovery/recovery-manager.js.map +1 -0
  735. package/dist/src/mcp/router.js +220 -0
  736. package/dist/src/mcp/router.js.map +1 -0
  737. package/dist/src/mcp/ruv-swarm-tools.js +671 -0
  738. package/dist/src/mcp/ruv-swarm-tools.js.map +1 -0
  739. package/dist/src/mcp/server-with-wrapper.js +32 -0
  740. package/dist/src/mcp/server-with-wrapper.js.map +1 -0
  741. package/dist/src/mcp/server-wrapper-mode.js +26 -0
  742. package/dist/src/mcp/server-wrapper-mode.js.map +1 -0
  743. package/dist/src/mcp/server.js +539 -0
  744. package/dist/src/mcp/server.js.map +1 -0
  745. package/dist/src/mcp/session-manager.js +338 -0
  746. package/dist/src/mcp/session-manager.js.map +1 -0
  747. package/dist/src/mcp/sparc-modes.js +455 -0
  748. package/dist/src/mcp/sparc-modes.js.map +1 -0
  749. package/dist/src/mcp/swarm-tools.js +903 -0
  750. package/dist/src/mcp/swarm-tools.js.map +1 -0
  751. package/dist/src/mcp/tests/mcp-integration.test.js +493 -0
  752. package/dist/src/mcp/tests/mcp-integration.test.js.map +1 -0
  753. package/dist/src/mcp/tools.js +426 -0
  754. package/dist/src/mcp/tools.js.map +1 -0
  755. package/dist/src/mcp/transports/base.js +5 -0
  756. package/dist/src/mcp/transports/base.js.map +1 -0
  757. package/dist/src/mcp/transports/http.js +414 -0
  758. package/dist/src/mcp/transports/http.js.map +1 -0
  759. package/dist/src/mcp/transports/stdio.js +217 -0
  760. package/dist/src/mcp/transports/stdio.js.map +1 -0
  761. package/dist/src/memory/advanced-memory-manager.js +1522 -0
  762. package/dist/src/memory/advanced-memory-manager.js.map +1 -0
  763. package/dist/src/memory/backends/base.js +5 -0
  764. package/dist/src/memory/backends/base.js.map +1 -0
  765. package/dist/src/memory/backends/markdown.js +235 -0
  766. package/dist/src/memory/backends/markdown.js.map +1 -0
  767. package/dist/src/memory/backends/sqlite.js +295 -0
  768. package/dist/src/memory/backends/sqlite.js.map +1 -0
  769. package/dist/src/memory/cache.js +177 -0
  770. package/dist/src/memory/cache.js.map +1 -0
  771. package/dist/src/memory/distributed-memory.js +745 -0
  772. package/dist/src/memory/distributed-memory.js.map +1 -0
  773. package/dist/src/memory/indexer.js +184 -0
  774. package/dist/src/memory/indexer.js.map +1 -0
  775. package/dist/src/memory/manager.js +457 -0
  776. package/dist/src/memory/manager.js.map +1 -0
  777. package/dist/src/memory/sqlite-enhanced-backend.js +529 -0
  778. package/dist/src/memory/sqlite-enhanced-backend.js.map +1 -0
  779. package/dist/src/memory/swarm-memory.js +446 -0
  780. package/dist/src/memory/swarm-memory.js.map +1 -0
  781. package/dist/src/migration/index.js +94 -0
  782. package/dist/src/migration/index.js.map +1 -0
  783. package/dist/src/migration/logger.js +110 -0
  784. package/dist/src/migration/logger.js.map +1 -0
  785. package/dist/src/migration/migration-analyzer.js +255 -0
  786. package/dist/src/migration/migration-analyzer.js.map +1 -0
  787. package/dist/src/migration/migration-runner.js +511 -0
  788. package/dist/src/migration/migration-runner.js.map +1 -0
  789. package/dist/src/migration/migration-validator.js +272 -0
  790. package/dist/src/migration/migration-validator.js.map +1 -0
  791. package/dist/src/migration/progress-reporter.js +139 -0
  792. package/dist/src/migration/progress-reporter.js.map +1 -0
  793. package/dist/src/migration/rollback-manager.js +310 -0
  794. package/dist/src/migration/rollback-manager.js.map +1 -0
  795. package/dist/src/migration/tests/migration-system.test.js +9 -0
  796. package/dist/src/migration/tests/migration-system.test.js.map +1 -0
  797. package/dist/src/migration/types.js +5 -0
  798. package/dist/src/migration/types.js.map +1 -0
  799. package/dist/src/monitoring/diagnostics.js +532 -0
  800. package/dist/src/monitoring/diagnostics.js.map +1 -0
  801. package/dist/src/monitoring/health-check.js +355 -0
  802. package/dist/src/monitoring/health-check.js.map +1 -0
  803. package/dist/src/monitoring/phase4/analytics/consensus-tracker.js +764 -0
  804. package/dist/src/monitoring/phase4/analytics/consensus-tracker.js.map +1 -0
  805. package/dist/src/monitoring/phase4/analytics/performance-assessor.js +859 -0
  806. package/dist/src/monitoring/phase4/analytics/performance-assessor.js.map +1 -0
  807. package/dist/src/monitoring/phase4/analytics/truth-score-analyzer.js +667 -0
  808. package/dist/src/monitoring/phase4/analytics/truth-score-analyzer.js.map +1 -0
  809. package/dist/src/monitoring/phase4/dashboard/monitoring-dashboard.js +1008 -0
  810. package/dist/src/monitoring/phase4/dashboard/monitoring-dashboard.js.map +1 -0
  811. package/dist/src/monitoring/phase4/rollout-decision-engine.js +849 -0
  812. package/dist/src/monitoring/phase4/rollout-decision-engine.js.map +1 -0
  813. package/dist/src/monitoring/real-time-feedback-system.js +688 -0
  814. package/dist/src/monitoring/real-time-feedback-system.js.map +1 -0
  815. package/dist/src/monitoring/real-time-monitor.js +981 -0
  816. package/dist/src/monitoring/real-time-monitor.js.map +1 -0
  817. package/dist/src/monitoring/regression/RegressionDetector.js +525 -0
  818. package/dist/src/monitoring/regression/RegressionDetector.js.map +1 -0
  819. package/dist/src/neural/NeuralDomainMapper.js +1137 -0
  820. package/dist/src/neural/NeuralDomainMapper.js.map +1 -0
  821. package/dist/src/neural/index.js +418 -0
  822. package/dist/src/neural/index.js.map +1 -0
  823. package/dist/src/neural/integration.js +590 -0
  824. package/dist/src/neural/integration.js.map +1 -0
  825. package/dist/src/providers/anthropic-provider.js +245 -0
  826. package/dist/src/providers/anthropic-provider.js.map +1 -0
  827. package/dist/src/providers/base-provider.js +389 -0
  828. package/dist/src/providers/base-provider.js.map +1 -0
  829. package/dist/src/providers/cohere-provider.js +405 -0
  830. package/dist/src/providers/cohere-provider.js.map +1 -0
  831. package/dist/src/providers/google-provider.js +376 -0
  832. package/dist/src/providers/google-provider.js.map +1 -0
  833. package/dist/src/providers/index.js +18 -0
  834. package/dist/src/providers/index.js.map +1 -0
  835. package/dist/src/providers/ollama-provider.js +400 -0
  836. package/dist/src/providers/ollama-provider.js.map +1 -0
  837. package/dist/src/providers/openai-provider.js +364 -0
  838. package/dist/src/providers/openai-provider.js.map +1 -0
  839. package/dist/src/providers/provider-manager.js +487 -0
  840. package/dist/src/providers/provider-manager.js.map +1 -0
  841. package/dist/src/providers/types.js +55 -0
  842. package/dist/src/providers/types.js.map +1 -0
  843. package/dist/src/providers/utils.js +343 -0
  844. package/dist/src/providers/utils.js.map +1 -0
  845. package/dist/src/quality-gates/automated-review-system.js +645 -0
  846. package/dist/src/quality-gates/automated-review-system.js.map +1 -0
  847. package/dist/src/resources/resource-manager.js +1275 -0
  848. package/dist/src/resources/resource-manager.js.map +1 -0
  849. package/dist/src/rollback/recovery-manager.js +1065 -0
  850. package/dist/src/rollback/recovery-manager.js.map +1 -0
  851. package/dist/src/services/agent-manager.js +308 -0
  852. package/dist/src/services/agent-manager.js.map +1 -0
  853. package/dist/src/services/agentic-flow-hooks/hook-manager.js +506 -0
  854. package/dist/src/services/agentic-flow-hooks/hook-manager.js.map +1 -0
  855. package/dist/src/services/agentic-flow-hooks/index.js +322 -0
  856. package/dist/src/services/agentic-flow-hooks/index.js.map +1 -0
  857. package/dist/src/services/agentic-flow-hooks/llm-hooks.js +445 -0
  858. package/dist/src/services/agentic-flow-hooks/llm-hooks.js.map +1 -0
  859. package/dist/src/services/agentic-flow-hooks/memory-hooks.js +558 -0
  860. package/dist/src/services/agentic-flow-hooks/memory-hooks.js.map +1 -0
  861. package/dist/src/services/agentic-flow-hooks/neural-hooks.js +595 -0
  862. package/dist/src/services/agentic-flow-hooks/neural-hooks.js.map +1 -0
  863. package/dist/src/services/agentic-flow-hooks/performance-hooks.js +640 -0
  864. package/dist/src/services/agentic-flow-hooks/performance-hooks.js.map +1 -0
  865. package/dist/src/services/agentic-flow-hooks/types.js +8 -0
  866. package/dist/src/services/agentic-flow-hooks/types.js.map +1 -0
  867. package/dist/src/services/agentic-flow-hooks/workflow-hooks.js +746 -0
  868. package/dist/src/services/agentic-flow-hooks/workflow-hooks.js.map +1 -0
  869. package/dist/src/services/performance-metrics-collector.js +529 -0
  870. package/dist/src/services/performance-metrics-collector.js.map +1 -0
  871. package/dist/src/services/swarm-coordinator.js +431 -0
  872. package/dist/src/services/swarm-coordinator.js.map +1 -0
  873. package/dist/src/services/swarm-memory-manager.js +513 -0
  874. package/dist/src/services/swarm-memory-manager.js.map +1 -0
  875. package/dist/src/services/swarm-relaunch-manager.js +408 -0
  876. package/dist/src/services/swarm-relaunch-manager.js.map +1 -0
  877. package/dist/src/services/task-handoff-service.js +361 -0
  878. package/dist/src/services/task-handoff-service.js.map +1 -0
  879. package/dist/src/swarm/__tests__/integration.test.js +229 -0
  880. package/dist/src/swarm/__tests__/integration.test.js.map +1 -0
  881. package/dist/src/swarm/__tests__/prompt-copier.test.js +346 -0
  882. package/dist/src/swarm/__tests__/prompt-copier.test.js.map +1 -0
  883. package/dist/src/swarm/advanced-orchestrator.js +1093 -0
  884. package/dist/src/swarm/advanced-orchestrator.js.map +1 -0
  885. package/dist/src/swarm/claude-code-interface.js +959 -0
  886. package/dist/src/swarm/claude-code-interface.js.map +1 -0
  887. package/dist/src/swarm/claude-flow-executor.js +218 -0
  888. package/dist/src/swarm/claude-flow-executor.js.map +1 -0
  889. package/dist/src/swarm/coordinator.js +3001 -0
  890. package/dist/src/swarm/coordinator.js.map +1 -0
  891. package/dist/src/swarm/direct-executor.js +1169 -0
  892. package/dist/src/swarm/direct-executor.js.map +1 -0
  893. package/dist/src/swarm/executor-v2.js +312 -0
  894. package/dist/src/swarm/executor-v2.js.map +1 -0
  895. package/dist/src/swarm/executor.js +813 -0
  896. package/dist/src/swarm/executor.js.map +1 -0
  897. package/dist/src/swarm/hive-mind-integration.js +700 -0
  898. package/dist/src/swarm/hive-mind-integration.js.map +1 -0
  899. package/dist/src/swarm/index.js +43 -0
  900. package/dist/src/swarm/index.js.map +1 -0
  901. package/dist/src/swarm/json-output-aggregator.js +269 -0
  902. package/dist/src/swarm/json-output-aggregator.js.map +1 -0
  903. package/dist/src/swarm/mcp-integration-wrapper.js +623 -0
  904. package/dist/src/swarm/mcp-integration-wrapper.js.map +1 -0
  905. package/dist/src/swarm/memory.js +1119 -0
  906. package/dist/src/swarm/memory.js.map +1 -0
  907. package/dist/src/swarm/optimizations/__tests__/optimization.test.js +350 -0
  908. package/dist/src/swarm/optimizations/__tests__/optimization.test.js.map +1 -0
  909. package/dist/src/swarm/optimizations/async-file-manager.js +273 -0
  910. package/dist/src/swarm/optimizations/async-file-manager.js.map +1 -0
  911. package/dist/src/swarm/optimizations/circular-buffer.js +148 -0
  912. package/dist/src/swarm/optimizations/circular-buffer.js.map +1 -0
  913. package/dist/src/swarm/optimizations/connection-pool.js +239 -0
  914. package/dist/src/swarm/optimizations/connection-pool.js.map +1 -0
  915. package/dist/src/swarm/optimizations/index.js +30 -0
  916. package/dist/src/swarm/optimizations/index.js.map +1 -0
  917. package/dist/src/swarm/optimizations/optimized-executor.js +318 -0
  918. package/dist/src/swarm/optimizations/optimized-executor.js.map +1 -0
  919. package/dist/src/swarm/optimizations/ttl-map.js +223 -0
  920. package/dist/src/swarm/optimizations/ttl-map.js.map +1 -0
  921. package/dist/src/swarm/prompt-cli.js +202 -0
  922. package/dist/src/swarm/prompt-cli.js.map +1 -0
  923. package/dist/src/swarm/prompt-copier-enhanced.js +193 -0
  924. package/dist/src/swarm/prompt-copier-enhanced.js.map +1 -0
  925. package/dist/src/swarm/prompt-copier.js +376 -0
  926. package/dist/src/swarm/prompt-copier.js.map +1 -0
  927. package/dist/src/swarm/prompt-manager.js +287 -0
  928. package/dist/src/swarm/prompt-manager.js.map +1 -0
  929. package/dist/src/swarm/prompt-utils.js +299 -0
  930. package/dist/src/swarm/prompt-utils.js.map +1 -0
  931. package/dist/src/swarm/result-aggregator.js +713 -0
  932. package/dist/src/swarm/result-aggregator.js.map +1 -0
  933. package/dist/src/swarm/sparc-executor.js +1557 -0
  934. package/dist/src/swarm/sparc-executor.js.map +1 -0
  935. package/dist/src/swarm/strategies/auto.js +751 -0
  936. package/dist/src/swarm/strategies/auto.js.map +1 -0
  937. package/dist/src/swarm/strategies/base.js +117 -0
  938. package/dist/src/swarm/strategies/base.js.map +1 -0
  939. package/dist/src/swarm/strategies/research.js +911 -0
  940. package/dist/src/swarm/strategies/research.js.map +1 -0
  941. package/dist/src/swarm/strategies/strategy-metrics-patch.js +4 -0
  942. package/dist/src/swarm/strategies/strategy-metrics-patch.js.map +1 -0
  943. package/dist/src/swarm/types.js +54 -0
  944. package/dist/src/swarm/types.js.map +1 -0
  945. package/dist/src/swarm/workers/copy-worker.js +58 -0
  946. package/dist/src/swarm/workers/copy-worker.js.map +1 -0
  947. package/dist/src/swarm-fullstack/adapters/chrome-mcp-adapter.js +412 -0
  948. package/dist/src/swarm-fullstack/adapters/chrome-mcp-adapter.js.map +1 -0
  949. package/dist/src/swarm-fullstack/adapters/shadcn-mcp-adapter.js +560 -0
  950. package/dist/src/swarm-fullstack/adapters/shadcn-mcp-adapter.js.map +1 -0
  951. package/dist/src/swarm-fullstack/cli/fullstack-cli.js +582 -0
  952. package/dist/src/swarm-fullstack/cli/fullstack-cli.js.map +1 -0
  953. package/dist/src/swarm-fullstack/config/fullstack-config.js +369 -0
  954. package/dist/src/swarm-fullstack/config/fullstack-config.js.map +1 -0
  955. package/dist/src/swarm-fullstack/core/dynamic-agent-spawner.js +687 -0
  956. package/dist/src/swarm-fullstack/core/dynamic-agent-spawner.js.map +1 -0
  957. package/dist/src/swarm-fullstack/core/enhanced-swarm-message-router.js +589 -0
  958. package/dist/src/swarm-fullstack/core/enhanced-swarm-message-router.js.map +1 -0
  959. package/dist/src/swarm-fullstack/core/fullstack-orchestrator.js +538 -0
  960. package/dist/src/swarm-fullstack/core/fullstack-orchestrator.js.map +1 -0
  961. package/dist/src/swarm-fullstack/types/index.js +8 -0
  962. package/dist/src/swarm-fullstack/types/index.js.map +1 -0
  963. package/dist/src/task/commands.js +130 -0
  964. package/dist/src/task/commands.js.map +1 -0
  965. package/dist/src/task/coordination.js +737 -0
  966. package/dist/src/task/coordination.js.map +1 -0
  967. package/dist/src/task/engine.js +490 -0
  968. package/dist/src/task/engine.js.map +1 -0
  969. package/dist/src/task/index.js +269 -0
  970. package/dist/src/task/index.js.map +1 -0
  971. package/dist/src/task/types.js +5 -0
  972. package/dist/src/task/types.js.map +1 -0
  973. package/dist/src/terminal/adapters/base.js +5 -0
  974. package/dist/src/terminal/adapters/base.js.map +1 -0
  975. package/dist/src/terminal/adapters/native.js +473 -0
  976. package/dist/src/terminal/adapters/native.js.map +1 -0
  977. package/dist/src/terminal/adapters/vscode.js +285 -0
  978. package/dist/src/terminal/adapters/vscode.js.map +1 -0
  979. package/dist/src/terminal/manager.js +237 -0
  980. package/dist/src/terminal/manager.js.map +1 -0
  981. package/dist/src/terminal/pool.js +209 -0
  982. package/dist/src/terminal/pool.js.map +1 -0
  983. package/dist/src/terminal/session.js +211 -0
  984. package/dist/src/terminal/session.js.map +1 -0
  985. package/dist/src/terminal/vscode-bridge.js +186 -0
  986. package/dist/src/terminal/vscode-bridge.js.map +1 -0
  987. package/dist/src/testing/performance/PerformanceTestRunner.js +401 -0
  988. package/dist/src/testing/performance/PerformanceTestRunner.js.map +1 -0
  989. package/dist/src/testing-integration/chrome-mcp-integration.js +556 -0
  990. package/dist/src/testing-integration/chrome-mcp-integration.js.map +1 -0
  991. package/dist/src/testing-integration/continuous-test-runner.js +509 -0
  992. package/dist/src/testing-integration/continuous-test-runner.js.map +1 -0
  993. package/dist/src/tests/validation-consistency.test.js +52 -0
  994. package/dist/src/tests/validation-consistency.test.js.map +1 -0
  995. package/dist/src/topology/adaptive-coordinator.js +691 -0
  996. package/dist/src/topology/adaptive-coordinator.js.map +1 -0
  997. package/dist/src/topology/communication-bridge.js +551 -0
  998. package/dist/src/topology/communication-bridge.js.map +1 -0
  999. package/dist/src/topology/enhanced-hierarchical-coordinator.js +1732 -0
  1000. package/dist/src/topology/enhanced-hierarchical-coordinator.js.map +1 -0
  1001. package/dist/src/topology/enhanced-mesh-coordinator.js +1271 -0
  1002. package/dist/src/topology/enhanced-mesh-coordinator.js.map +1 -0
  1003. package/dist/src/topology/topology-manager.js +797 -0
  1004. package/dist/src/topology/topology-manager.js.map +1 -0
  1005. package/dist/src/topology/types.js +8 -0
  1006. package/dist/src/topology/types.js.map +1 -0
  1007. package/dist/src/types/agent-lifecycle-types.js +172 -0
  1008. package/dist/src/types/agent-lifecycle-types.js.map +1 -0
  1009. package/dist/src/types/agent-types.js +11 -0
  1010. package/dist/src/types/agent-types.js.map +1 -0
  1011. package/dist/src/types/cliffy.d.js +9 -0
  1012. package/dist/src/types/cliffy.d.js.map +1 -0
  1013. package/dist/src/types/global.d.js +5 -0
  1014. package/dist/src/types/global.d.js.map +1 -0
  1015. package/dist/src/types/index.js +16 -0
  1016. package/dist/src/types/index.js.map +1 -0
  1017. package/dist/src/types/mcp.d.js +3 -0
  1018. package/dist/src/types/mcp.d.js.map +1 -0
  1019. package/dist/src/types/vscode.d.js +4 -0
  1020. package/dist/src/types/vscode.d.js.map +1 -0
  1021. package/dist/src/ui/hive-dashboard.js +284 -0
  1022. package/dist/src/ui/hive-dashboard.js.map +1 -0
  1023. package/dist/src/utils/error-handler.js +27 -0
  1024. package/dist/src/utils/error-handler.js.map +1 -0
  1025. package/dist/src/utils/errors.js +195 -0
  1026. package/dist/src/utils/errors.js.map +1 -0
  1027. package/dist/src/utils/formatters.js +66 -0
  1028. package/dist/src/utils/formatters.js.map +1 -0
  1029. package/dist/src/utils/helpers.js +451 -0
  1030. package/dist/src/utils/helpers.js.map +1 -0
  1031. package/dist/src/utils/paths.js +43 -0
  1032. package/dist/src/utils/paths.js.map +1 -0
  1033. package/dist/src/utils/type-guards.js +119 -0
  1034. package/dist/src/utils/type-guards.js.map +1 -0
  1035. package/dist/src/utils/types.js +38 -0
  1036. package/dist/src/utils/types.js.map +1 -0
  1037. package/dist/src/verification/agent-scorer.js +633 -0
  1038. package/dist/src/verification/agent-scorer.js.map +1 -0
  1039. package/dist/src/verification/alert-manager.js +1126 -0
  1040. package/dist/src/verification/alert-manager.js.map +1 -0
  1041. package/dist/src/verification/api/types/index.js +6 -0
  1042. package/dist/src/verification/api/types/index.js.map +1 -0
  1043. package/dist/src/verification/checkpoint-manager.js +519 -0
  1044. package/dist/src/verification/checkpoint-manager.js.map +1 -0
  1045. package/dist/src/verification/cli-integration.js +500 -0
  1046. package/dist/src/verification/cli-integration.js.map +1 -0
  1047. package/dist/src/verification/conflict-resolver.js +534 -0
  1048. package/dist/src/verification/conflict-resolver.js.map +1 -0
  1049. package/dist/src/verification/crdt-coordinator.js +506 -0
  1050. package/dist/src/verification/crdt-coordinator.js.map +1 -0
  1051. package/dist/src/verification/dashboard-exporter.js +876 -0
  1052. package/dist/src/verification/dashboard-exporter.js.map +1 -0
  1053. package/dist/src/verification/demo.js +320 -0
  1054. package/dist/src/verification/demo.js.map +1 -0
  1055. package/dist/src/verification/examples.js +508 -0
  1056. package/dist/src/verification/examples.js.map +1 -0
  1057. package/dist/src/verification/hooks.js +961 -0
  1058. package/dist/src/verification/hooks.js.map +1 -0
  1059. package/dist/src/verification/index.js +73 -0
  1060. package/dist/src/verification/index.js.map +1 -0
  1061. package/dist/src/verification/interfaces.js +7 -0
  1062. package/dist/src/verification/interfaces.js.map +1 -0
  1063. package/dist/src/verification/memory-manager.js +510 -0
  1064. package/dist/src/verification/memory-manager.js.map +1 -0
  1065. package/dist/src/verification/middleware.js +579 -0
  1066. package/dist/src/verification/middleware.js.map +1 -0
  1067. package/dist/src/verification/rollback-engine.js +511 -0
  1068. package/dist/src/verification/rollback-engine.js.map +1 -0
  1069. package/dist/src/verification/rollback.js +1710 -0
  1070. package/dist/src/verification/rollback.js.map +1 -0
  1071. package/dist/src/verification/security-bypass-test.js +704 -0
  1072. package/dist/src/verification/security-bypass-test.js.map +1 -0
  1073. package/dist/src/verification/security.js +1125 -0
  1074. package/dist/src/verification/security.js.map +1 -0
  1075. package/dist/src/verification/simple-hooks.js +189 -0
  1076. package/dist/src/verification/simple-hooks.js.map +1 -0
  1077. package/dist/src/verification/system-tracker.js +657 -0
  1078. package/dist/src/verification/system-tracker.js.map +1 -0
  1079. package/dist/src/verification/telemetry.js +922 -0
  1080. package/dist/src/verification/telemetry.js.map +1 -0
  1081. package/dist/src/verification/test-verification.js +43 -0
  1082. package/dist/src/verification/test-verification.js.map +1 -0
  1083. package/dist/src/verification/tests/e2e/verification-pipeline.test.js +1027 -0
  1084. package/dist/src/verification/tests/e2e/verification-pipeline.test.js.map +1 -0
  1085. package/dist/src/verification/tests/integration/cross-agent-communication.test.js +638 -0
  1086. package/dist/src/verification/tests/integration/cross-agent-communication.test.js.map +1 -0
  1087. package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js +1029 -0
  1088. package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js.map +1 -0
  1089. package/dist/src/verification/tests/performance/verification-overhead.test.js +587 -0
  1090. package/dist/src/verification/tests/performance/verification-overhead.test.js.map +1 -0
  1091. package/dist/src/verification/tests/unit/truth-scoring.test.js +579 -0
  1092. package/dist/src/verification/tests/unit/truth-scoring.test.js.map +1 -0
  1093. package/dist/src/verification/tests.js +611 -0
  1094. package/dist/src/verification/tests.js.map +1 -0
  1095. package/dist/src/verification/truth-scorer.js +584 -0
  1096. package/dist/src/verification/truth-scorer.js.map +1 -0
  1097. package/dist/src/verification/types.js +56 -0
  1098. package/dist/src/verification/types.js.map +1 -0
  1099. package/dist/src/verification/verification-pipeline.js +884 -0
  1100. package/dist/src/verification/verification-pipeline.js.map +1 -0
  1101. package/dist/src/web/messaging/agent-status-tracker.js +447 -0
  1102. package/dist/src/web/messaging/agent-status-tracker.js.map +1 -0
  1103. package/dist/src/web/messaging/human-intervention-system.js +298 -0
  1104. package/dist/src/web/messaging/human-intervention-system.js.map +1 -0
  1105. package/dist/src/web/messaging/message-filter.js +289 -0
  1106. package/dist/src/web/messaging/message-filter.js.map +1 -0
  1107. package/dist/src/web/messaging/swarm-message-router.js +320 -0
  1108. package/dist/src/web/messaging/swarm-message-router.js.map +1 -0
  1109. package/dist/src/web/messaging/transparency-logger.js +415 -0
  1110. package/dist/src/web/messaging/transparency-logger.js.map +1 -0
  1111. package/dist/src/web/portal-server.js +440 -0
  1112. package/dist/src/web/portal-server.js.map +1 -0
  1113. package/dist/src/web/server.js +311 -0
  1114. package/dist/src/web/server.js.map +1 -0
  1115. package/dist/src/web/websocket/websocket-manager.js +509 -0
  1116. package/dist/src/web/websocket/websocket-manager.js.map +1 -0
  1117. package/dist/src/workflows/feature-lifecycle-manager.js +386 -0
  1118. package/dist/src/workflows/feature-lifecycle-manager.js.map +1 -0
  1119. package/dist/src/workflows/fullstack-coordination-manager.js +801 -0
  1120. package/dist/src/workflows/fullstack-coordination-manager.js.map +1 -0
  1121. package/dist/src/workflows/iterative-development-orchestrator.js +1128 -0
  1122. package/dist/src/workflows/iterative-development-orchestrator.js.map +1 -0
  1123. package/dist/src/workflows/progressive-rollout-manager.js +710 -0
  1124. package/dist/src/workflows/progressive-rollout-manager.js.map +1 -0
  1125. package/package.json +264 -0
  1126. package/scripts/README.md +339 -0
  1127. package/scripts/post-install-claude-md.js +50 -0
  1128. package/src/commands/dependency-recommendations.js +551 -0
  1129. package/src/commands/suggest-improvements.js +492 -0
  1130. package/src/commands/suggest-templates.js +916 -0
  1131. package/src/npx/claude-md-protection.js +169 -0
  1132. package/wiki/INDEX.md +264 -0
  1133. package/wiki/NAVIGATION.md +270 -0
  1134. package/wiki/README.md +101 -0
  1135. package/wiki/accessibility/README.md +103 -0
  1136. package/wiki/accessibility/assistive-tech/screen-reader-support.md +912 -0
  1137. package/wiki/accessibility/automation/agent-testing-automation.md +880 -0
  1138. package/wiki/accessibility/guidelines/wcag-compliance.md +278 -0
  1139. package/wiki/accessibility/i18n/internationalization-strategies.md +1022 -0
  1140. package/wiki/accessibility/motor-accessibility/keyboard-navigation.md +1182 -0
  1141. package/wiki/accessibility/patterns/inclusive-design-patterns.md +715 -0
  1142. package/wiki/accessibility/testing/automated-testing.md +665 -0
  1143. package/wiki/accessibility/visual-design/color-contrast.md +926 -0
  1144. package/wiki/accessibility/workflows/accessibility-first-development.md +916 -0
  1145. package/wiki/accessibility/workflows/inclusive-design-review.md +835 -0
  1146. package/wiki/api-reference/README.md +565 -0
  1147. package/wiki/api-reference/agent-management-api.md +931 -0
  1148. package/wiki/api-reference/cli-api.md +630 -0
  1149. package/wiki/api-reference/configuration-api.md +1355 -0
  1150. package/wiki/api-reference/examples-code-samples.md +2241 -0
  1151. package/wiki/api-reference/hooks-coordination-api.md +1406 -0
  1152. package/wiki/api-reference/mcp-tool-specifications.md +944 -0
  1153. package/wiki/api-reference/plugin-development.md +1695 -0
  1154. package/wiki/api-reference/technical-architecture.md +1729 -0
  1155. package/wiki/command-reference/README.md +305 -0
  1156. package/wiki/command-reference/agent-commands.md +571 -0
  1157. package/wiki/command-reference/cli-commands.md +516 -0
  1158. package/wiki/command-reference/command-syntax.md +676 -0
  1159. package/wiki/command-reference/expert/README.md +616 -0
  1160. package/wiki/command-reference/expert-tier.md +791 -0
  1161. package/wiki/command-reference/intermediate/README.md +628 -0
  1162. package/wiki/command-reference/intermediate-tier.md +1024 -0
  1163. package/wiki/command-reference/mcp-integration.md +412 -0
  1164. package/wiki/command-reference/mcp-tools/README.md +1743 -0
  1165. package/wiki/command-reference/mcp-tools/dual-access-workflows.md +911 -0
  1166. package/wiki/command-reference/mcp-tools/index.md +201 -0
  1167. package/wiki/command-reference/mcp-tools/integration-patterns.md +830 -0
  1168. package/wiki/command-reference/mcp-tools/quick-reference.md +383 -0
  1169. package/wiki/command-reference/mcp-tools/session-management.md +1183 -0
  1170. package/wiki/command-reference/mcp-tools/task-tool-integration.md +827 -0
  1171. package/wiki/command-reference/novice/README.md +661 -0
  1172. package/wiki/command-reference/novice-tier.md +1142 -0
  1173. package/wiki/command-reference/progression-guide.md +772 -0
  1174. package/wiki/command-reference/troubleshooting.md +803 -0
  1175. package/wiki/command-reference/workflows.md +752 -0
  1176. package/wiki/community/README.md +328 -0
  1177. package/wiki/community/contributing/README.md +623 -0
  1178. package/wiki/community/contributing/code-of-conduct.md +388 -0
  1179. package/wiki/community/contributing/collaboration-workflows.md +1 -0
  1180. package/wiki/community/contributing/issue-reporting.md +1 -0
  1181. package/wiki/community/contributing/onboarding-guide.md +1 -0
  1182. package/wiki/community/contributing/recognition-system.md +1 -0
  1183. package/wiki/community/discussions/README.md +54 -0
  1184. package/wiki/community/learning-resources.md +476 -0
  1185. package/wiki/community/showcase/README.md +1 -0
  1186. package/wiki/core-concepts/README.md +656 -0
  1187. package/wiki/core-concepts/agent-feedback-hooks/README.md +298 -0
  1188. package/wiki/core-concepts/agents/README.md +392 -0
  1189. package/wiki/core-concepts/agents/agent-creation-guide.md +431 -0
  1190. package/wiki/core-concepts/agents.md +301 -0
  1191. package/wiki/core-concepts/architecture.md +227 -0
  1192. package/wiki/core-concepts/hooks-lifecycle/README.md +543 -0
  1193. package/wiki/core-concepts/integration.md +507 -0
  1194. package/wiki/core-concepts/memory-system/README.md +521 -0
  1195. package/wiki/core-concepts/performance.md +463 -0
  1196. package/wiki/core-concepts/sparc-methodology/README.md +465 -0
  1197. package/wiki/core-concepts/sparc-workflow.md +407 -0
  1198. package/wiki/core-concepts/swarm-coordination/README.md +525 -0
  1199. package/wiki/core-concepts/swarm-coordination.md +453 -0
  1200. package/wiki/cost-optimization/enterprise-cost-management.md +1356 -0
  1201. package/wiki/deployment/enterprise-deployment-patterns.md +1739 -0
  1202. package/wiki/enterprise-architecture/enterprise-architecture-overview.md +348 -0
  1203. package/wiki/enterprise-architecture/enterprise-scaling-patterns.md +1184 -0
  1204. package/wiki/examples/README.md +288 -0
  1205. package/wiki/examples/automation/cicd-pipeline/README.md +1265 -0
  1206. package/wiki/examples/basic/hello-world/README.md +434 -0
  1207. package/wiki/examples/basic-projects/README.md +427 -0
  1208. package/wiki/examples/enterprise-integration/README.md +602 -0
  1209. package/wiki/examples/integration-patterns.md +825 -0
  1210. package/wiki/examples/legacy-migration/README.md +656 -0
  1211. package/wiki/examples/multi-cloud/README.md +1071 -0
  1212. package/wiki/examples/performance-benchmarks.md +729 -0
  1213. package/wiki/examples/performance-optimization/README.md +1214 -0
  1214. package/wiki/examples/projects/rest-api/README.md +845 -0
  1215. package/wiki/examples/real-time-collaboration/README.md +1092 -0
  1216. package/wiki/examples/scenarios/ecommerce/README.md +1273 -0
  1217. package/wiki/examples/swarm-patterns.md +1026 -0
  1218. package/wiki/examples/templates/download-system.md +993 -0
  1219. package/wiki/examples/templates/javascript/README.md +487 -0
  1220. package/wiki/examples/templates/javascript/package.json +119 -0
  1221. package/wiki/examples/troubleshooting/README.md +1317 -0
  1222. package/wiki/examples/utilities/patterns/README.md +1347 -0
  1223. package/wiki/examples/videos/01-setup.md +403 -0
  1224. package/wiki/examples/workflow-automation/README.md +1023 -0
  1225. package/wiki/getting-started/README.md +398 -0
  1226. package/wiki/getting-started/benefits.md +451 -0
  1227. package/wiki/getting-started/claude-code-mcp/README.md +319 -0
  1228. package/wiki/getting-started/claude-code-mcp/setup.md +431 -0
  1229. package/wiki/getting-started/claude-code-mcp/usage-examples.md +501 -0
  1230. package/wiki/getting-started/cli-access/README.md +300 -0
  1231. package/wiki/getting-started/cli-access/first-commands.md +319 -0
  1232. package/wiki/getting-started/installation/README.md +469 -0
  1233. package/wiki/getting-started/installation/troubleshooting.md +617 -0
  1234. package/wiki/getting-started/learning-path.md +494 -0
  1235. package/wiki/getting-started/learning-plan-generator.md +434 -0
  1236. package/wiki/getting-started/quick-start/README.md +255 -0
  1237. package/wiki/getting-started/quick-start/cli-tutorial.md +680 -0
  1238. package/wiki/getting-started/quick-start/mcp-tutorial.md +544 -0
  1239. package/wiki/governance/multi-project-coordination.md +820 -0
  1240. package/wiki/languages/README.md +349 -0
  1241. package/wiki/languages/go/README.md +124 -0
  1242. package/wiki/languages/go/examples/README.md +1066 -0
  1243. package/wiki/languages/go/frameworks/README.md +708 -0
  1244. package/wiki/languages/go/integration/README.md +748 -0
  1245. package/wiki/languages/go/microservices/README.md +1185 -0
  1246. package/wiki/languages/go/performance/README.md +1310 -0
  1247. package/wiki/languages/go/setup/README.md +397 -0
  1248. package/wiki/languages/go/systems/README.md +1116 -0
  1249. package/wiki/languages/go/testing/README.md +999 -0
  1250. package/wiki/languages/java/README.md +217 -0
  1251. package/wiki/languages/java/claude-flow-integration.md +1220 -0
  1252. package/wiki/languages/java/enterprise-java.md +1247 -0
  1253. package/wiki/languages/java/examples.md +1712 -0
  1254. package/wiki/languages/java/microservices.md +1600 -0
  1255. package/wiki/languages/java/performance.md +1122 -0
  1256. package/wiki/languages/java/project-setup.md +504 -0
  1257. package/wiki/languages/java/spring-boot.md +756 -0
  1258. package/wiki/languages/java/testing.md +1323 -0
  1259. package/wiki/languages/javascript/README.md +575 -0
  1260. package/wiki/languages/javascript/api/README.md +1445 -0
  1261. package/wiki/languages/javascript/backend/README.md +748 -0
  1262. package/wiki/languages/javascript/frontend/README.md +1048 -0
  1263. package/wiki/languages/javascript/integration.md +1107 -0
  1264. package/wiki/languages/javascript/setup/README.md +438 -0
  1265. package/wiki/languages/javascript/testing/README.md +1775 -0
  1266. package/wiki/languages/python/README.md +1002 -0
  1267. package/wiki/languages/python/data-science/README.md +1317 -0
  1268. package/wiki/languages/python/examples/README.md +911 -0
  1269. package/wiki/languages/python/integration.md +1515 -0
  1270. package/wiki/languages/python/mcp-integration.md +843 -0
  1271. package/wiki/languages/python/setup/README.md +622 -0
  1272. package/wiki/languages/python/testing/README.md +1680 -0
  1273. package/wiki/languages/python/web-development/README.md +974 -0
  1274. package/wiki/languages/rust/README.md +936 -0
  1275. package/wiki/languages/rust/examples/cli-mcp-workflows.md +850 -0
  1276. package/wiki/languages/rust/examples/rest-api.md +1927 -0
  1277. package/wiki/languages/rust/setup/cargo-integration.md +780 -0
  1278. package/wiki/languages/rust/testing/quality-validation.md +1098 -0
  1279. package/wiki/languages/rust/web-development/axum.md +1497 -0
  1280. package/wiki/languages/rust/workflows/systems-programming.md +1189 -0
  1281. package/wiki/languages/typescript/README.md +581 -0
  1282. package/wiki/languages/typescript/automation.md +1070 -0
  1283. package/wiki/languages/typescript/coordination.md +971 -0
  1284. package/wiki/languages/typescript/enterprise.md +1368 -0
  1285. package/wiki/languages/typescript/frameworks.md +970 -0
  1286. package/wiki/languages/typescript/migration.md +1384 -0
  1287. package/wiki/languages/typescript/patterns.md +694 -0
  1288. package/wiki/languages/typescript/performance.md +1195 -0
  1289. package/wiki/languages/typescript/setup.md +516 -0
  1290. package/wiki/languages/typescript/workflows.md +481 -0
  1291. package/wiki/monitoring/enterprise-observability.md +1141 -0
  1292. package/wiki/security/enterprise-security-framework.md +1174 -0
  1293. package/wiki/team-coordination/team-scaling-strategies.md +1486 -0
  1294. package/wiki/troubleshooting/README.md +654 -0
  1295. package/wiki/troubleshooting/common-issues/README.md +659 -0
  1296. package/wiki/troubleshooting/common-issues.md +458 -0
  1297. package/wiki/troubleshooting/error-resolution.md +763 -0
  1298. package/wiki/troubleshooting/performance-optimization.md +540 -0
  1299. package/wiki/tutorials/README.md +607 -0
  1300. package/wiki/tutorials/advanced/01-multi-agent-orchestration-patterns.md +585 -0
  1301. package/wiki/tutorials/advanced/02-enterprise-architecture-development.md +661 -0
  1302. package/wiki/tutorials/advanced/03-advanced-sparc-methodology.md +595 -0
  1303. package/wiki/tutorials/advanced/04-performance-optimization-workflows.md +613 -0
  1304. package/wiki/tutorials/advanced/05-custom-agent-development.md +681 -0
  1305. package/wiki/tutorials/advanced/06-legacy-system-integration.md +574 -0
  1306. package/wiki/tutorials/advanced/07-production-deployment-monitoring.md +684 -0
  1307. package/wiki/tutorials/advanced/08-enterprise-scenarios.md +700 -0
  1308. package/wiki/tutorials/advanced/README.md +577 -0
  1309. package/wiki/tutorials/advanced/performance-optimization.md +476 -0
  1310. package/wiki/tutorials/advanced/swarm-orchestration.md +627 -0
  1311. package/wiki/tutorials/beginner/01-first-project.md +532 -0
  1312. package/wiki/tutorials/beginner/02-basic-workflows.md +523 -0
  1313. package/wiki/tutorials/beginner/03-simple-automation.md +641 -0
  1314. package/wiki/tutorials/beginner/04-quality-testing.md +984 -0
  1315. package/wiki/tutorials/beginner/README.md +388 -0
  1316. package/wiki/tutorials/exercises/ecommerce-platform.md +1370 -0
  1317. package/wiki/tutorials/intermediate/01-multi-agent-teams.md +961 -0
  1318. package/wiki/tutorials/intermediate/README.md +452 -0
  1319. package/wiki/tutorials/intermediate/optimization.md +402 -0
  1320. package/wiki/tutorials/skill-assessment.md +522 -0
  1321. package/wiki/tutorials/skill-competency-matrix.md +548 -0
  1322. package/wiki/tutorials/troubleshooting/command-cheatsheet.md +425 -0
  1323. package/wiki/tutorials/troubleshooting/setup-issues.md +717 -0
  1324. package/wiki/video-tutorials/README.md +202 -0
  1325. package/wiki/video-tutorials/accessibility/README.md +1349 -0
  1326. package/wiki/video-tutorials/community/README.md +1366 -0
  1327. package/wiki/video-tutorials/content-organization/README.md +1295 -0
  1328. package/wiki/video-tutorials/distribution/README.md +1093 -0
  1329. package/wiki/video-tutorials/editing/README.md +751 -0
  1330. package/wiki/video-tutorials/interactive/README.md +1151 -0
  1331. package/wiki/video-tutorials/multi-language/README.md +1384 -0
  1332. package/wiki/video-tutorials/planning/README.md +461 -0
  1333. package/wiki/video-tutorials/recording/README.md +619 -0
  1334. package/wiki/video-tutorials/technical-specs/README.md +1018 -0
@@ -0,0 +1,1710 @@
1
+ /**
2
+ * Comprehensive Rollback Manager System
3
+ *
4
+ * Provides atomic rollback operations with state management, automated recovery,
5
+ * and git integration for maintaining system integrity.
6
+ *
7
+ * Features:
8
+ * - StateManager: Captures and manages system snapshots
9
+ * - RollbackTrigger: Configurable thresholds and automated monitoring
10
+ * - AutomatedRecovery: Multi-tier recovery strategies
11
+ * - RollbackHistory: Compressed history tracking with TTL
12
+ * - Git Integration: Code rollbacks with atomic commits
13
+ */ import { promises as fs } from 'fs';
14
+ import { join } from 'path';
15
+ import { exec } from 'child_process';
16
+ import { promisify } from 'util';
17
+ import { createHash } from 'crypto';
18
+ import { EventEmitter } from 'events';
19
+ import { gzip, gunzip } from 'zlib';
20
+ const execAsync = promisify(exec);
21
+ const gzipAsync = promisify(gzip);
22
+ const gunzipAsync = promisify(gunzip);
23
+ // ============================================================================
24
+ // StateManager - Captures and manages system snapshots
25
+ // ============================================================================
26
+ export class StateManager extends EventEmitter {
27
+ snapshots = new Map();
28
+ snapshotDir;
29
+ maxSnapshots;
30
+ compressionEnabled;
31
+ constructor(snapshotDir = './snapshots', maxSnapshots = 100, compressionEnabled = true){
32
+ super();
33
+ this.snapshotDir = snapshotDir;
34
+ this.maxSnapshots = maxSnapshots;
35
+ this.compressionEnabled = compressionEnabled;
36
+ this.initializeStorage();
37
+ }
38
+ async initializeStorage() {
39
+ try {
40
+ await fs.mkdir(this.snapshotDir, {
41
+ recursive: true
42
+ });
43
+ await this.loadExistingSnapshots();
44
+ } catch (error) {
45
+ this.emit('error', new Error(`Failed to initialize storage: ${error}`));
46
+ }
47
+ }
48
+ async loadExistingSnapshots() {
49
+ try {
50
+ const files = await fs.readdir(this.snapshotDir);
51
+ const snapshotFiles = files.filter((f)=>f.endsWith('.snapshot.json'));
52
+ for (const file of snapshotFiles){
53
+ try {
54
+ const content = await fs.readFile(join(this.snapshotDir, file), 'utf-8');
55
+ const snapshot = JSON.parse(content);
56
+ this.snapshots.set(snapshot.id, snapshot);
57
+ } catch (error) {
58
+ console.warn(`Failed to load snapshot ${file}:`, error);
59
+ }
60
+ }
61
+ this.emit('snapshots_loaded', this.snapshots.size);
62
+ } catch (error) {
63
+ this.emit('error', new Error(`Failed to load snapshots: ${error}`));
64
+ }
65
+ }
66
+ /**
67
+ * Creates a comprehensive system snapshot with atomic operations
68
+ */ async captureSnapshot(description, tags = [], triggeredBy = 'manual') {
69
+ const id = this.generateSnapshotId();
70
+ const timestamp = Date.now();
71
+ try {
72
+ // Capture system state atomically
73
+ const [config, memory, processes, files, git] = await Promise.all([
74
+ this.captureConfig(),
75
+ this.captureMemory(),
76
+ this.captureProcesses(),
77
+ this.captureFiles(),
78
+ this.captureGitState()
79
+ ]);
80
+ const snapshot = {
81
+ id,
82
+ timestamp,
83
+ version: '1.0.0',
84
+ metadata: {
85
+ description,
86
+ tags,
87
+ triggeredBy,
88
+ severity: 'medium'
89
+ },
90
+ state: {
91
+ config,
92
+ memory,
93
+ processes,
94
+ files,
95
+ git
96
+ },
97
+ integrity: {
98
+ checksum: '',
99
+ compressed: this.compressionEnabled,
100
+ size: 0
101
+ }
102
+ };
103
+ // Calculate integrity checksum
104
+ const serialized = JSON.stringify(snapshot.state);
105
+ snapshot.integrity.checksum = createHash('sha256').update(serialized).digest('hex');
106
+ snapshot.integrity.size = Buffer.byteLength(serialized, 'utf8');
107
+ // Store snapshot
108
+ await this.storeSnapshot(snapshot);
109
+ this.snapshots.set(id, snapshot);
110
+ // Cleanup old snapshots
111
+ await this.cleanupOldSnapshots();
112
+ this.emit('snapshot_created', snapshot);
113
+ return snapshot;
114
+ } catch (error) {
115
+ this.emit('error', new Error(`Failed to capture snapshot: ${error}`));
116
+ throw error;
117
+ }
118
+ }
119
+ async captureConfig() {
120
+ try {
121
+ // Capture application configuration
122
+ const configPaths = [
123
+ './claude-flow.config.json',
124
+ './package.json',
125
+ './config/typescript/tsconfig.json',
126
+ './.env'
127
+ ];
128
+ const config = {};
129
+ for (const path of configPaths){
130
+ try {
131
+ const content = await fs.readFile(path, 'utf-8');
132
+ config[path] = JSON.parse(content);
133
+ } catch {
134
+ // File might not exist or be invalid JSON
135
+ }
136
+ }
137
+ return config;
138
+ } catch (error) {
139
+ return {};
140
+ }
141
+ }
142
+ async captureMemory() {
143
+ try {
144
+ // Capture memory-related state
145
+ const memoryPaths = [
146
+ './memory/memory-store.json',
147
+ './memory/claude-flow-data.json',
148
+ './swarm-memory/state.json'
149
+ ];
150
+ const memory = {};
151
+ for (const path of memoryPaths){
152
+ try {
153
+ const content = await fs.readFile(path, 'utf-8');
154
+ memory[path] = JSON.parse(content);
155
+ } catch {
156
+ // File might not exist
157
+ }
158
+ }
159
+ return memory;
160
+ } catch (error) {
161
+ return {};
162
+ }
163
+ }
164
+ async captureProcesses() {
165
+ try {
166
+ // Capture running processes related to claude-flow
167
+ const { stdout } = await execAsync('ps aux | grep -E "(claude-flow|node)" | grep -v grep');
168
+ const lines = stdout.trim().split('\n');
169
+ return lines.map((line)=>{
170
+ const parts = line.trim().split(/\s+/);
171
+ return {
172
+ pid: parseInt(parts[1]) || 0,
173
+ name: parts[10] || 'unknown',
174
+ status: 'running',
175
+ memory: parseFloat(parts[5]) || 0,
176
+ cpu: parseFloat(parts[2]) || 0,
177
+ env: process.env
178
+ };
179
+ });
180
+ } catch {
181
+ return [];
182
+ }
183
+ }
184
+ async captureFiles() {
185
+ try {
186
+ // Capture critical files
187
+ const criticalPaths = [
188
+ './src/verification/rollback.ts',
189
+ './src/core/orchestrator.ts',
190
+ './src/memory/manager.ts',
191
+ './src/mcp/server.ts'
192
+ ];
193
+ const files = [];
194
+ for (const path of criticalPaths){
195
+ try {
196
+ const [content, stats] = await Promise.all([
197
+ fs.readFile(path, 'utf-8'),
198
+ fs.stat(path)
199
+ ]);
200
+ files.push({
201
+ path,
202
+ content,
203
+ stats: {
204
+ size: stats.size,
205
+ mtime: stats.mtime.getTime(),
206
+ mode: stats.mode
207
+ },
208
+ checksum: createHash('md5').update(content).digest('hex')
209
+ });
210
+ } catch {
211
+ // File might not exist
212
+ }
213
+ }
214
+ return files;
215
+ } catch {
216
+ return [];
217
+ }
218
+ }
219
+ async captureGitState() {
220
+ try {
221
+ const [branch, commit, status, staged, modified, untracked] = await Promise.all([
222
+ execAsync('git rev-parse --abbrev-ref HEAD').then((r)=>r.stdout.trim()).catch(()=>'unknown'),
223
+ execAsync('git rev-parse HEAD').then((r)=>r.stdout.trim()).catch(()=>'unknown'),
224
+ execAsync('git status --porcelain').then((r)=>r.stdout.trim()).catch(()=>''),
225
+ execAsync('git diff --cached --name-only').then((r)=>r.stdout.trim().split('\n').filter(Boolean)).catch(()=>[]),
226
+ execAsync('git diff --name-only').then((r)=>r.stdout.trim().split('\n').filter(Boolean)).catch(()=>[]),
227
+ execAsync('git ls-files --others --exclude-standard').then((r)=>r.stdout.trim().split('\n').filter(Boolean)).catch(()=>[])
228
+ ]);
229
+ return {
230
+ branch,
231
+ commit,
232
+ status,
233
+ staged,
234
+ modified,
235
+ untracked
236
+ };
237
+ } catch {
238
+ return {
239
+ branch: 'unknown',
240
+ commit: 'unknown',
241
+ status: '',
242
+ staged: [],
243
+ modified: [],
244
+ untracked: []
245
+ };
246
+ }
247
+ }
248
+ async storeSnapshot(snapshot) {
249
+ const filename = `${snapshot.id}.snapshot.json`;
250
+ const filepath = join(this.snapshotDir, filename);
251
+ let content = JSON.stringify(snapshot, null, 2);
252
+ if (this.compressionEnabled) {
253
+ const compressed = await gzipAsync(Buffer.from(content, 'utf-8'));
254
+ await fs.writeFile(filepath + '.gz', compressed);
255
+ } else {
256
+ await fs.writeFile(filepath, content);
257
+ }
258
+ }
259
+ async cleanupOldSnapshots() {
260
+ if (this.snapshots.size <= this.maxSnapshots) return;
261
+ const sorted = Array.from(this.snapshots.values()).sort((a, b)=>a.timestamp - b.timestamp);
262
+ const toDelete = sorted.slice(0, sorted.length - this.maxSnapshots);
263
+ for (const snapshot of toDelete){
264
+ try {
265
+ const filename = `${snapshot.id}.snapshot.json`;
266
+ const filepath = join(this.snapshotDir, filename);
267
+ await fs.unlink(filepath).catch(()=>{});
268
+ await fs.unlink(filepath + '.gz').catch(()=>{});
269
+ this.snapshots.delete(snapshot.id);
270
+ } catch (error) {
271
+ console.warn(`Failed to delete snapshot ${snapshot.id}:`, error);
272
+ }
273
+ }
274
+ }
275
+ generateSnapshotId() {
276
+ return `snapshot_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
277
+ }
278
+ async getSnapshot(id) {
279
+ return this.snapshots.get(id) || null;
280
+ }
281
+ listSnapshots() {
282
+ return Array.from(this.snapshots.values()).sort((a, b)=>b.timestamp - a.timestamp);
283
+ }
284
+ async deleteSnapshot(id) {
285
+ try {
286
+ const filename = `${id}.snapshot.json`;
287
+ const filepath = join(this.snapshotDir, filename);
288
+ await fs.unlink(filepath).catch(()=>{});
289
+ await fs.unlink(filepath + '.gz').catch(()=>{});
290
+ this.snapshots.delete(id);
291
+ this.emit('snapshot_deleted', id);
292
+ return true;
293
+ } catch {
294
+ return false;
295
+ }
296
+ }
297
+ }
298
+ // ============================================================================
299
+ // RollbackTrigger - Configurable thresholds and monitoring
300
+ // ============================================================================
301
+ export class RollbackTrigger extends EventEmitter {
302
+ config;
303
+ monitoring = false;
304
+ metrics = [];
305
+ monitoringInterval;
306
+ lastRollback = 0;
307
+ constructor(config = {}){
308
+ super();
309
+ this.config = this.mergeConfig(config);
310
+ }
311
+ mergeConfig(config) {
312
+ return {
313
+ enabled: config.enabled ?? true,
314
+ thresholds: {
315
+ errorRate: config.thresholds?.errorRate ?? 10,
316
+ memoryUsage: config.thresholds?.memoryUsage ?? 90,
317
+ cpuUsage: config.thresholds?.cpuUsage ?? 95,
318
+ responseTime: config.thresholds?.responseTime ?? 5000,
319
+ diskSpace: config.thresholds?.diskSpace ?? 10,
320
+ consecutiveFailures: config.thresholds?.consecutiveFailures ?? 3
321
+ },
322
+ monitoring: {
323
+ interval: config.monitoring?.interval ?? 30000,
324
+ cooldown: config.monitoring?.cooldown ?? 300000,
325
+ gracePeriod: config.monitoring?.gracePeriod ?? 60000
326
+ },
327
+ notifications: {
328
+ webhook: config.notifications?.webhook,
329
+ email: config.notifications?.email,
330
+ slack: config.notifications?.slack
331
+ }
332
+ };
333
+ }
334
+ startMonitoring() {
335
+ if (this.monitoring) return;
336
+ this.monitoring = true;
337
+ this.monitoringInterval = setInterval(()=>this.checkThresholds(), this.config.monitoring.interval);
338
+ this.emit('monitoring_started');
339
+ }
340
+ stopMonitoring() {
341
+ if (!this.monitoring) return;
342
+ this.monitoring = false;
343
+ if (this.monitoringInterval) {
344
+ clearInterval(this.monitoringInterval);
345
+ this.monitoringInterval = undefined;
346
+ }
347
+ this.emit('monitoring_stopped');
348
+ }
349
+ async checkThresholds() {
350
+ if (!this.config.enabled) return;
351
+ // Check cooldown period
352
+ if (Date.now() - this.lastRollback < this.config.monitoring.cooldown) {
353
+ return;
354
+ }
355
+ try {
356
+ const metrics = await this.collectMetrics();
357
+ this.metrics.push(metrics);
358
+ // Keep only recent metrics (last hour)
359
+ const oneHourAgo = Date.now() - 3600000;
360
+ this.metrics = this.metrics.filter((m)=>m.timestamp > oneHourAgo);
361
+ const violations = this.evaluateThresholds(metrics);
362
+ if (violations.length > 0) {
363
+ this.emit('threshold_violated', {
364
+ metrics,
365
+ violations
366
+ });
367
+ // Check grace period
368
+ const recentViolations = this.metrics.filter((m)=>m.timestamp > Date.now() - this.config.monitoring.gracePeriod).filter((m)=>this.evaluateThresholds(m).length > 0);
369
+ if (recentViolations.length >= 2) {
370
+ this.triggerRollback(metrics, violations);
371
+ }
372
+ }
373
+ } catch (error) {
374
+ this.emit('monitoring_error', error);
375
+ }
376
+ }
377
+ async collectMetrics() {
378
+ const timestamp = Date.now();
379
+ try {
380
+ const [memInfo, cpuInfo, diskInfo] = await Promise.all([
381
+ this.getMemoryInfo(),
382
+ this.getCpuInfo(),
383
+ this.getDiskInfo()
384
+ ]);
385
+ return {
386
+ timestamp,
387
+ errors: {
388
+ count: 0,
389
+ rate: 0,
390
+ recent: []
391
+ },
392
+ performance: {
393
+ memory: memInfo,
394
+ cpu: cpuInfo,
395
+ disk: diskInfo,
396
+ network: {
397
+ in: 0,
398
+ out: 0
399
+ }
400
+ },
401
+ health: {
402
+ status: 'healthy',
403
+ score: 100,
404
+ checks: []
405
+ }
406
+ };
407
+ } catch (error) {
408
+ return {
409
+ timestamp,
410
+ errors: {
411
+ count: 1,
412
+ rate: 1,
413
+ recent: [
414
+ error
415
+ ]
416
+ },
417
+ performance: {
418
+ memory: {
419
+ used: 0,
420
+ total: 0,
421
+ percentage: 0
422
+ },
423
+ cpu: {
424
+ usage: 0,
425
+ load: [
426
+ 0,
427
+ 0,
428
+ 0
429
+ ]
430
+ },
431
+ disk: {
432
+ used: 0,
433
+ total: 0,
434
+ free: 0
435
+ },
436
+ network: {
437
+ in: 0,
438
+ out: 0
439
+ }
440
+ },
441
+ health: {
442
+ status: 'critical',
443
+ score: 0,
444
+ checks: [
445
+ {
446
+ name: 'metrics_collection',
447
+ status: 'fail',
448
+ message: error?.toString() || 'Unknown error',
449
+ duration: 0
450
+ }
451
+ ]
452
+ }
453
+ };
454
+ }
455
+ }
456
+ async getMemoryInfo() {
457
+ try {
458
+ const meminfo = await fs.readFile('/proc/meminfo', 'utf-8');
459
+ const lines = meminfo.split('\n');
460
+ const memTotal = parseInt(lines.find((l)=>l.startsWith('MemTotal:'))?.split(/\s+/)[1] || '0') * 1024;
461
+ const memAvailable = parseInt(lines.find((l)=>l.startsWith('MemAvailable:'))?.split(/\s+/)[1] || '0') * 1024;
462
+ const memUsed = memTotal - memAvailable;
463
+ return {
464
+ used: memUsed,
465
+ total: memTotal,
466
+ percentage: memTotal > 0 ? memUsed / memTotal * 100 : 0
467
+ };
468
+ } catch {
469
+ return {
470
+ used: 0,
471
+ total: 0,
472
+ percentage: 0
473
+ };
474
+ }
475
+ }
476
+ async getCpuInfo() {
477
+ try {
478
+ const loadavg = await fs.readFile('/proc/loadavg', 'utf-8');
479
+ const loads = loadavg.trim().split(' ').slice(0, 3).map(parseFloat);
480
+ return {
481
+ usage: loads[0] * 100,
482
+ load: loads
483
+ };
484
+ } catch {
485
+ return {
486
+ usage: 0,
487
+ load: [
488
+ 0,
489
+ 0,
490
+ 0
491
+ ]
492
+ };
493
+ }
494
+ }
495
+ async getDiskInfo() {
496
+ try {
497
+ const { stdout } = await execAsync('df -h . | tail -1');
498
+ const parts = stdout.trim().split(/\s+/);
499
+ const total = this.parseSize(parts[1]);
500
+ const used = this.parseSize(parts[2]);
501
+ const free = this.parseSize(parts[3]);
502
+ return {
503
+ used,
504
+ total,
505
+ free
506
+ };
507
+ } catch {
508
+ return {
509
+ used: 0,
510
+ total: 0,
511
+ free: 0
512
+ };
513
+ }
514
+ }
515
+ parseSize(sizeStr) {
516
+ const match = sizeStr.match(/^(\d+(?:\.\d+)?)(K|M|G|T)?$/);
517
+ if (!match) return 0;
518
+ const value = parseFloat(match[1]);
519
+ const unit = match[2] || '';
520
+ const multipliers = {
521
+ '': 1,
522
+ K: 1024,
523
+ M: 1024 * 1024,
524
+ G: 1024 * 1024 * 1024,
525
+ T: 1024 * 1024 * 1024 * 1024
526
+ };
527
+ return value * (multipliers[unit] || 1);
528
+ }
529
+ evaluateThresholds(metrics) {
530
+ const violations = [];
531
+ if (metrics.performance.memory.percentage > this.config.thresholds.memoryUsage) {
532
+ violations.push(`Memory usage: ${metrics.performance.memory.percentage.toFixed(1)}% > ${this.config.thresholds.memoryUsage}%`);
533
+ }
534
+ if (metrics.performance.cpu.usage > this.config.thresholds.cpuUsage) {
535
+ violations.push(`CPU usage: ${metrics.performance.cpu.usage.toFixed(1)}% > ${this.config.thresholds.cpuUsage}%`);
536
+ }
537
+ const diskFreePercentage = metrics.performance.disk.free / metrics.performance.disk.total * 100;
538
+ if (diskFreePercentage < this.config.thresholds.diskSpace) {
539
+ violations.push(`Disk space: ${diskFreePercentage.toFixed(1)}% free < ${this.config.thresholds.diskSpace}%`);
540
+ }
541
+ if (metrics.errors.rate > this.config.thresholds.errorRate) {
542
+ violations.push(`Error rate: ${metrics.errors.rate}/min > ${this.config.thresholds.errorRate}/min`);
543
+ }
544
+ return violations;
545
+ }
546
+ async triggerRollback(metrics, violations) {
547
+ this.lastRollback = Date.now();
548
+ this.emit('rollback_triggered', {
549
+ reason: 'threshold_violations',
550
+ violations,
551
+ metrics
552
+ });
553
+ // Send notifications
554
+ await this.sendNotifications(violations, metrics);
555
+ }
556
+ async sendNotifications(violations, metrics) {
557
+ const message = `🚨 Rollback triggered due to threshold violations:\n${violations.join('\n')}`;
558
+ try {
559
+ if (this.config.notifications.webhook) {
560
+ // Send webhook notification
561
+ // Implementation would depend on the webhook service
562
+ }
563
+ if (this.config.notifications.slack) {
564
+ // Send Slack notification
565
+ // Implementation would depend on Slack integration
566
+ }
567
+ if (this.config.notifications.email) {
568
+ // Send email notification
569
+ // Implementation would depend on email service
570
+ }
571
+ } catch (error) {
572
+ this.emit('notification_error', error);
573
+ }
574
+ }
575
+ updateConfig(config) {
576
+ this.config = this.mergeConfig(config);
577
+ this.emit('config_updated', this.config);
578
+ }
579
+ getCurrentMetrics() {
580
+ return this.metrics[this.metrics.length - 1] || null;
581
+ }
582
+ getMetricsHistory() {
583
+ return [
584
+ ...this.metrics
585
+ ];
586
+ }
587
+ }
588
+ // ============================================================================
589
+ // AutomatedRecovery - Multi-tier recovery strategies
590
+ // ============================================================================
591
+ export class AutomatedRecovery extends EventEmitter {
592
+ strategies = new Map();
593
+ recoveryHistory = [];
594
+ stateManager;
595
+ isRecovering = false;
596
+ constructor(stateManager){
597
+ super();
598
+ this.stateManager = stateManager;
599
+ this.initializeDefaultStrategies();
600
+ }
601
+ initializeDefaultStrategies() {
602
+ // Strategy 1: Service Restart
603
+ this.registerStrategy({
604
+ name: 'service_restart',
605
+ priority: 1,
606
+ enabled: true,
607
+ timeout: 30000,
608
+ retries: 2,
609
+ conditions: (metrics)=>metrics.health.status === 'degraded',
610
+ execute: async (snapshot, context)=>{
611
+ try {
612
+ this.emit('recovery_step', {
613
+ strategy: 'service_restart',
614
+ action: 'restarting_services'
615
+ });
616
+ // Restart critical services
617
+ await execAsync('pkill -f "claude-flow" && sleep 2');
618
+ // Wait for services to restart
619
+ await new Promise((resolve)=>setTimeout(resolve, 5000));
620
+ return true;
621
+ } catch (error) {
622
+ this.emit('recovery_error', {
623
+ strategy: 'service_restart',
624
+ error
625
+ });
626
+ return false;
627
+ }
628
+ }
629
+ });
630
+ // Strategy 2: Memory Cleanup
631
+ this.registerStrategy({
632
+ name: 'memory_cleanup',
633
+ priority: 2,
634
+ enabled: true,
635
+ timeout: 15000,
636
+ retries: 1,
637
+ conditions: (metrics)=>metrics.performance.memory.percentage > 85,
638
+ execute: async (snapshot, context)=>{
639
+ try {
640
+ this.emit('recovery_step', {
641
+ strategy: 'memory_cleanup',
642
+ action: 'clearing_memory'
643
+ });
644
+ // Force garbage collection
645
+ if (global.gc) {
646
+ global.gc();
647
+ }
648
+ // Clear caches
649
+ await this.clearApplicationCaches();
650
+ return true;
651
+ } catch (error) {
652
+ this.emit('recovery_error', {
653
+ strategy: 'memory_cleanup',
654
+ error
655
+ });
656
+ return false;
657
+ }
658
+ }
659
+ });
660
+ // Strategy 3: Configuration Reset
661
+ this.registerStrategy({
662
+ name: 'config_reset',
663
+ priority: 3,
664
+ enabled: true,
665
+ timeout: 20000,
666
+ retries: 1,
667
+ conditions: (metrics)=>metrics.health.status === 'critical',
668
+ execute: async (snapshot, context)=>{
669
+ try {
670
+ this.emit('recovery_step', {
671
+ strategy: 'config_reset',
672
+ action: 'resetting_config'
673
+ });
674
+ // Restore configuration from snapshot
675
+ await this.restoreConfiguration(snapshot);
676
+ return true;
677
+ } catch (error) {
678
+ this.emit('recovery_error', {
679
+ strategy: 'config_reset',
680
+ error
681
+ });
682
+ return false;
683
+ }
684
+ }
685
+ });
686
+ // Strategy 4: Full State Rollback
687
+ this.registerStrategy({
688
+ name: 'full_rollback',
689
+ priority: 10,
690
+ enabled: true,
691
+ timeout: 60000,
692
+ retries: 1,
693
+ conditions: ()=>true,
694
+ execute: async (snapshot, context)=>{
695
+ try {
696
+ this.emit('recovery_step', {
697
+ strategy: 'full_rollback',
698
+ action: 'rolling_back_state'
699
+ });
700
+ // Full system rollback
701
+ await this.performFullRollback(snapshot);
702
+ return true;
703
+ } catch (error) {
704
+ this.emit('recovery_error', {
705
+ strategy: 'full_rollback',
706
+ error
707
+ });
708
+ return false;
709
+ }
710
+ }
711
+ });
712
+ }
713
+ registerStrategy(strategy) {
714
+ this.strategies.set(strategy.name, strategy);
715
+ this.emit('strategy_registered', strategy.name);
716
+ }
717
+ async executeRecovery(metrics, triggerReason, preferredSnapshot) {
718
+ if (this.isRecovering) {
719
+ this.emit('recovery_blocked', 'Recovery already in progress');
720
+ return false;
721
+ }
722
+ this.isRecovering = true;
723
+ try {
724
+ this.emit('recovery_started', {
725
+ reason: triggerReason,
726
+ metrics
727
+ });
728
+ // Get appropriate snapshot
729
+ const snapshots = this.stateManager.listSnapshots();
730
+ const snapshot = preferredSnapshot ? await this.stateManager.getSnapshot(preferredSnapshot) : snapshots[0]; // Most recent snapshot
731
+ if (!snapshot) {
732
+ throw new Error('No snapshot available for recovery');
733
+ }
734
+ // Get applicable strategies
735
+ const applicableStrategies = Array.from(this.strategies.values()).filter((s)=>s.enabled && s.conditions(metrics)).sort((a, b)=>a.priority - b.priority);
736
+ if (applicableStrategies.length === 0) {
737
+ throw new Error('No applicable recovery strategies found');
738
+ }
739
+ const context = {
740
+ triggeredBy: triggerReason,
741
+ reason: triggerReason,
742
+ metrics,
743
+ previousAttempts: this.recoveryHistory.slice(-10)
744
+ };
745
+ // Execute strategies in priority order
746
+ for (const strategy of applicableStrategies){
747
+ const success = await this.executeStrategy(strategy, snapshot, context);
748
+ if (success) {
749
+ this.emit('recovery_success', {
750
+ strategy: strategy.name,
751
+ snapshot: snapshot.id,
752
+ duration: Date.now() - metrics.timestamp
753
+ });
754
+ return true;
755
+ }
756
+ }
757
+ throw new Error('All recovery strategies failed');
758
+ } catch (error) {
759
+ this.emit('recovery_failed', {
760
+ error: error?.toString(),
761
+ metrics
762
+ });
763
+ return false;
764
+ } finally{
765
+ this.isRecovering = false;
766
+ }
767
+ }
768
+ async executeStrategy(strategy, snapshot, context) {
769
+ const startTime = Date.now();
770
+ for(let attempt = 0; attempt <= strategy.retries; attempt++){
771
+ try {
772
+ this.emit('strategy_attempt', {
773
+ strategy: strategy.name,
774
+ attempt: attempt + 1,
775
+ maxAttempts: strategy.retries + 1
776
+ });
777
+ // Execute with timeout
778
+ const success = await Promise.race([
779
+ strategy.execute(snapshot, context),
780
+ new Promise((_, reject)=>setTimeout(()=>reject(new Error('Strategy timeout')), strategy.timeout))
781
+ ]);
782
+ const duration = Date.now() - startTime;
783
+ const recoveryAttempt = {
784
+ strategy: strategy.name,
785
+ timestamp: Date.now(),
786
+ success,
787
+ duration
788
+ };
789
+ this.recoveryHistory.push(recoveryAttempt);
790
+ if (success) {
791
+ this.emit('strategy_success', {
792
+ strategy: strategy.name,
793
+ attempt,
794
+ duration
795
+ });
796
+ return true;
797
+ }
798
+ } catch (error) {
799
+ const duration = Date.now() - startTime;
800
+ const recoveryAttempt = {
801
+ strategy: strategy.name,
802
+ timestamp: Date.now(),
803
+ success: false,
804
+ error: error?.toString(),
805
+ duration
806
+ };
807
+ this.recoveryHistory.push(recoveryAttempt);
808
+ this.emit('strategy_failed', {
809
+ strategy: strategy.name,
810
+ attempt,
811
+ error: error?.toString(),
812
+ duration
813
+ });
814
+ if (attempt === strategy.retries) {
815
+ return false; // All retries exhausted
816
+ }
817
+ // Wait before retry
818
+ await new Promise((resolve)=>setTimeout(resolve, 1000 * (attempt + 1)));
819
+ }
820
+ }
821
+ return false;
822
+ }
823
+ async clearApplicationCaches() {
824
+ try {
825
+ // Clear memory caches
826
+ const memoryPaths = [
827
+ './memory/cache',
828
+ './swarm-memory/cache',
829
+ './temp'
830
+ ];
831
+ for (const path of memoryPaths){
832
+ try {
833
+ await fs.rm(path, {
834
+ recursive: true,
835
+ force: true
836
+ });
837
+ await fs.mkdir(path, {
838
+ recursive: true
839
+ });
840
+ } catch {
841
+ // Path might not exist
842
+ }
843
+ }
844
+ } catch (error) {
845
+ throw new Error(`Failed to clear caches: ${error}`);
846
+ }
847
+ }
848
+ async restoreConfiguration(snapshot) {
849
+ try {
850
+ // Restore configuration files from snapshot
851
+ for (const [path, content] of Object.entries(snapshot.state.config)){
852
+ try {
853
+ await fs.writeFile(path, JSON.stringify(content, null, 2));
854
+ } catch (error) {
855
+ console.warn(`Failed to restore config file ${path}:`, error);
856
+ }
857
+ }
858
+ } catch (error) {
859
+ throw new Error(`Failed to restore configuration: ${error}`);
860
+ }
861
+ }
862
+ async performFullRollback(snapshot) {
863
+ try {
864
+ // 1. Stop services
865
+ await execAsync('pkill -f "claude-flow"').catch(()=>{});
866
+ // 2. Restore files
867
+ for (const file of snapshot.state.files){
868
+ try {
869
+ await fs.writeFile(file.path, file.content);
870
+ await fs.chmod(file.path, file.stats.mode);
871
+ } catch (error) {
872
+ console.warn(`Failed to restore file ${file.path}:`, error);
873
+ }
874
+ }
875
+ // 3. Restore memory
876
+ for (const [path, content] of Object.entries(snapshot.state.memory)){
877
+ try {
878
+ await fs.writeFile(path, JSON.stringify(content, null, 2));
879
+ } catch (error) {
880
+ console.warn(`Failed to restore memory file ${path}:`, error);
881
+ }
882
+ }
883
+ // 4. Git rollback if needed
884
+ if (snapshot.state.git.commit !== 'unknown') {
885
+ try {
886
+ await execAsync(`git reset --hard ${snapshot.state.git.commit}`);
887
+ } catch (error) {
888
+ console.warn('Failed to perform git rollback:', error);
889
+ }
890
+ }
891
+ // 5. Restart services
892
+ await new Promise((resolve)=>setTimeout(resolve, 2000));
893
+ } catch (error) {
894
+ throw new Error(`Failed to perform full rollback: ${error}`);
895
+ }
896
+ }
897
+ getStrategyNames() {
898
+ return Array.from(this.strategies.keys());
899
+ }
900
+ getStrategy(name) {
901
+ return this.strategies.get(name);
902
+ }
903
+ enableStrategy(name) {
904
+ const strategy = this.strategies.get(name);
905
+ if (strategy) {
906
+ strategy.enabled = true;
907
+ this.emit('strategy_enabled', name);
908
+ return true;
909
+ }
910
+ return false;
911
+ }
912
+ disableStrategy(name) {
913
+ const strategy = this.strategies.get(name);
914
+ if (strategy) {
915
+ strategy.enabled = false;
916
+ this.emit('strategy_disabled', name);
917
+ return true;
918
+ }
919
+ return false;
920
+ }
921
+ getRecoveryHistory() {
922
+ return [
923
+ ...this.recoveryHistory
924
+ ];
925
+ }
926
+ }
927
+ // ============================================================================
928
+ // RollbackHistory - Compressed history tracking with TTL
929
+ // ============================================================================
930
+ export class RollbackHistory extends EventEmitter {
931
+ history = new Map();
932
+ historyDir;
933
+ maxHistorySize;
934
+ compressionEnabled;
935
+ ttlMs;
936
+ cleanupInterval;
937
+ constructor(historyDir = './rollback-history', maxHistorySize = 1000, ttlDays = 30, compressionEnabled = true){
938
+ super();
939
+ this.historyDir = historyDir;
940
+ this.maxHistorySize = maxHistorySize;
941
+ this.ttlMs = ttlDays * 24 * 60 * 60 * 1000; // Convert days to ms
942
+ this.compressionEnabled = compressionEnabled;
943
+ this.initializeStorage();
944
+ this.startCleanupInterval();
945
+ }
946
+ async initializeStorage() {
947
+ try {
948
+ await fs.mkdir(this.historyDir, {
949
+ recursive: true
950
+ });
951
+ await this.loadExistingHistory();
952
+ } catch (error) {
953
+ this.emit('error', new Error(`Failed to initialize history storage: ${error}`));
954
+ }
955
+ }
956
+ async loadExistingHistory() {
957
+ try {
958
+ const files = await fs.readdir(this.historyDir);
959
+ const historyFiles = files.filter((f)=>f.endsWith('.history.json') || f.endsWith('.history.json.gz'));
960
+ for (const file of historyFiles){
961
+ try {
962
+ const filepath = join(this.historyDir, file);
963
+ let content;
964
+ if (file.endsWith('.gz')) {
965
+ const compressed = await fs.readFile(filepath);
966
+ const decompressed = await gunzipAsync(compressed);
967
+ content = decompressed.toString('utf-8');
968
+ } else {
969
+ content = await fs.readFile(filepath, 'utf-8');
970
+ }
971
+ const entry = JSON.parse(content);
972
+ this.history.set(entry.id, entry);
973
+ } catch (error) {
974
+ console.warn(`Failed to load history entry ${file}:`, error);
975
+ }
976
+ }
977
+ this.emit('history_loaded', this.history.size);
978
+ } catch (error) {
979
+ this.emit('error', new Error(`Failed to load history: ${error}`));
980
+ }
981
+ }
982
+ startCleanupInterval() {
983
+ // Run cleanup every 6 hours
984
+ this.cleanupInterval = setInterval(()=>{
985
+ this.cleanupExpiredEntries();
986
+ }, 6 * 60 * 60 * 1000);
987
+ }
988
+ async addEntry(snapshot, triggerType, triggerReason, triggerMetrics, recoveryStrategy, recoverySuccess, recoveryDuration, recoveryAttempts, verificationChecks, verificationPassed, rollbackRequired) {
989
+ const id = this.generateHistoryId();
990
+ const entry = {
991
+ id,
992
+ timestamp: Date.now(),
993
+ snapshot,
994
+ trigger: {
995
+ type: triggerType,
996
+ reason: triggerReason,
997
+ metrics: triggerMetrics
998
+ },
999
+ recovery: {
1000
+ strategy: recoveryStrategy,
1001
+ success: recoverySuccess,
1002
+ duration: recoveryDuration,
1003
+ attempts: recoveryAttempts
1004
+ },
1005
+ verification: {
1006
+ passed: verificationPassed,
1007
+ checks: verificationChecks,
1008
+ rollbackRequired
1009
+ }
1010
+ };
1011
+ try {
1012
+ await this.storeHistoryEntry(entry);
1013
+ this.history.set(id, entry);
1014
+ // Cleanup if we exceed max size
1015
+ await this.cleanupOldEntries();
1016
+ this.emit('entry_added', entry);
1017
+ return id;
1018
+ } catch (error) {
1019
+ this.emit('error', new Error(`Failed to add history entry: ${error}`));
1020
+ throw error;
1021
+ }
1022
+ }
1023
+ async storeHistoryEntry(entry) {
1024
+ const filename = `${entry.id}.history.json`;
1025
+ const filepath = join(this.historyDir, filename);
1026
+ let content = JSON.stringify(entry, null, 2);
1027
+ if (this.compressionEnabled) {
1028
+ const compressed = await gzipAsync(Buffer.from(content, 'utf-8'));
1029
+ await fs.writeFile(filepath + '.gz', compressed);
1030
+ } else {
1031
+ await fs.writeFile(filepath, content);
1032
+ }
1033
+ }
1034
+ async cleanupExpiredEntries() {
1035
+ const now = Date.now();
1036
+ const expiredEntries = [];
1037
+ for (const [id, entry] of this.history.entries()){
1038
+ if (now - entry.timestamp > this.ttlMs) {
1039
+ expiredEntries.push(id);
1040
+ }
1041
+ }
1042
+ for (const id of expiredEntries){
1043
+ await this.deleteEntry(id);
1044
+ }
1045
+ if (expiredEntries.length > 0) {
1046
+ this.emit('entries_expired', expiredEntries.length);
1047
+ }
1048
+ }
1049
+ async cleanupOldEntries() {
1050
+ if (this.history.size <= this.maxHistorySize) return;
1051
+ const sorted = Array.from(this.history.values()).sort((a, b)=>a.timestamp - b.timestamp);
1052
+ const toDelete = sorted.slice(0, sorted.length - this.maxHistorySize);
1053
+ for (const entry of toDelete){
1054
+ await this.deleteEntry(entry.id);
1055
+ }
1056
+ }
1057
+ async deleteEntry(id) {
1058
+ try {
1059
+ const filename = `${id}.history.json`;
1060
+ const filepath = join(this.historyDir, filename);
1061
+ await fs.unlink(filepath).catch(()=>{});
1062
+ await fs.unlink(filepath + '.gz').catch(()=>{});
1063
+ this.history.delete(id);
1064
+ } catch (error) {
1065
+ console.warn(`Failed to delete history entry ${id}:`, error);
1066
+ }
1067
+ }
1068
+ generateHistoryId() {
1069
+ return `history_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
1070
+ }
1071
+ getEntry(id) {
1072
+ return this.history.get(id) || null;
1073
+ }
1074
+ getRecentEntries(limit = 50) {
1075
+ return Array.from(this.history.values()).sort((a, b)=>b.timestamp - a.timestamp).slice(0, limit);
1076
+ }
1077
+ getEntriesByDateRange(startDate, endDate) {
1078
+ const startTime = startDate.getTime();
1079
+ const endTime = endDate.getTime();
1080
+ return Array.from(this.history.values()).filter((entry)=>entry.timestamp >= startTime && entry.timestamp <= endTime).sort((a, b)=>b.timestamp - a.timestamp);
1081
+ }
1082
+ getSuccessRate(timeframe = 24 * 60 * 60 * 1000) {
1083
+ const cutoff = Date.now() - timeframe;
1084
+ const recentEntries = Array.from(this.history.values()).filter((entry)=>entry.timestamp > cutoff);
1085
+ if (recentEntries.length === 0) return 100;
1086
+ const successCount = recentEntries.filter((entry)=>entry.recovery.success).length;
1087
+ return successCount / recentEntries.length * 100;
1088
+ }
1089
+ getStatistics() {
1090
+ const entries = Array.from(this.history.values());
1091
+ if (entries.length === 0) {
1092
+ return {
1093
+ totalEntries: 0,
1094
+ successRate: 100,
1095
+ averageRecoveryTime: 0,
1096
+ mostCommonFailureReason: 'none',
1097
+ rollbacksByTrigger: {}
1098
+ };
1099
+ }
1100
+ const successCount = entries.filter((e)=>e.recovery.success).length;
1101
+ const successRate = successCount / entries.length * 100;
1102
+ const totalRecoveryTime = entries.reduce((sum, e)=>sum + e.recovery.duration, 0);
1103
+ const averageRecoveryTime = totalRecoveryTime / entries.length;
1104
+ const failureReasons = entries.filter((e)=>!e.recovery.success).map((e)=>e.trigger.reason);
1105
+ const reasonCounts = failureReasons.reduce((acc, reason)=>{
1106
+ acc[reason] = (acc[reason] || 0) + 1;
1107
+ return acc;
1108
+ }, {});
1109
+ const mostCommonFailureReason = Object.entries(reasonCounts).sort(([, a], [, b])=>b - a)[0]?.[0] || 'none';
1110
+ const rollbacksByTrigger = entries.reduce((acc, entry)=>{
1111
+ acc[entry.trigger.type] = (acc[entry.trigger.type] || 0) + 1;
1112
+ return acc;
1113
+ }, {});
1114
+ return {
1115
+ totalEntries: entries.length,
1116
+ successRate,
1117
+ averageRecoveryTime,
1118
+ mostCommonFailureReason,
1119
+ rollbacksByTrigger
1120
+ };
1121
+ }
1122
+ destroy() {
1123
+ if (this.cleanupInterval) {
1124
+ clearInterval(this.cleanupInterval);
1125
+ this.cleanupInterval = undefined;
1126
+ }
1127
+ }
1128
+ }
1129
+ // ============================================================================
1130
+ // GitRollbackManager - Git integration for code rollbacks
1131
+ // ============================================================================
1132
+ export class GitRollbackManager extends EventEmitter {
1133
+ gitDir;
1134
+ backupBranch;
1135
+ safetyChecks;
1136
+ constructor(gitDir = './', backupBranch = 'rollback-backup', safetyChecks = true){
1137
+ super();
1138
+ this.gitDir = gitDir;
1139
+ this.backupBranch = backupBranch;
1140
+ this.safetyChecks = safetyChecks;
1141
+ }
1142
+ /**
1143
+ * Creates an atomic git commit with rollback marker
1144
+ */ async createRollbackPoint(message = 'Automated rollback point', tags = []) {
1145
+ try {
1146
+ // Ensure we're in a git repository
1147
+ await this.ensureGitRepo();
1148
+ if (this.safetyChecks) {
1149
+ await this.performSafetyChecks();
1150
+ }
1151
+ // Create backup branch
1152
+ await this.createBackupBranch();
1153
+ // Stage all changes
1154
+ await execAsync('git add -A', {
1155
+ cwd: this.gitDir
1156
+ });
1157
+ // Create commit with rollback metadata
1158
+ const rollbackMessage = this.formatRollbackMessage(message, tags);
1159
+ await execAsync(`git commit -m "${rollbackMessage}"`, {
1160
+ cwd: this.gitDir
1161
+ });
1162
+ // Get commit hash
1163
+ const { stdout: commitHash } = await execAsync('git rev-parse HEAD', {
1164
+ cwd: this.gitDir
1165
+ });
1166
+ const hash = commitHash.trim();
1167
+ // Create tag for easy reference
1168
+ const tagName = `rollback-${Date.now()}`;
1169
+ await execAsync(`git tag -a "${tagName}" -m "Rollback point: ${message}"`, {
1170
+ cwd: this.gitDir
1171
+ });
1172
+ this.emit('rollback_point_created', {
1173
+ hash,
1174
+ tag: tagName,
1175
+ message
1176
+ });
1177
+ return hash;
1178
+ } catch (error) {
1179
+ this.emit('error', new Error(`Failed to create rollback point: ${error}`));
1180
+ throw error;
1181
+ }
1182
+ }
1183
+ /**
1184
+ * Performs atomic rollback to a specific commit
1185
+ */ async rollbackToCommit(commitHash, strategy = 'mixed', preserveUntracked = true) {
1186
+ try {
1187
+ if (this.safetyChecks) {
1188
+ await this.performSafetyChecks();
1189
+ await this.validateCommit(commitHash);
1190
+ }
1191
+ // Stash any current changes if preserving untracked files
1192
+ let stashRef = null;
1193
+ if (preserveUntracked) {
1194
+ try {
1195
+ await execAsync('git stash push -u -m "Pre-rollback stash"', {
1196
+ cwd: this.gitDir
1197
+ });
1198
+ stashRef = await this.getLastStashRef();
1199
+ } catch {
1200
+ // No changes to stash
1201
+ }
1202
+ }
1203
+ // Perform the rollback
1204
+ await execAsync(`git reset --${strategy} ${commitHash}`, {
1205
+ cwd: this.gitDir
1206
+ });
1207
+ // If hard reset and preserving untracked, restore stashed files
1208
+ if (strategy === 'hard' && stashRef && preserveUntracked) {
1209
+ try {
1210
+ // Only restore untracked files from stash
1211
+ await execAsync(`git stash show -p ${stashRef} | git apply --index`, {
1212
+ cwd: this.gitDir
1213
+ });
1214
+ await execAsync(`git stash drop ${stashRef}`, {
1215
+ cwd: this.gitDir
1216
+ });
1217
+ } catch {
1218
+ // Stash restoration failed, but rollback succeeded
1219
+ this.emit('warning', 'Rollback completed but failed to restore untracked files');
1220
+ }
1221
+ }
1222
+ // Verify rollback success
1223
+ const { stdout: currentHash } = await execAsync('git rev-parse HEAD', {
1224
+ cwd: this.gitDir
1225
+ });
1226
+ const success = currentHash.trim() === commitHash;
1227
+ if (success) {
1228
+ this.emit('rollback_completed', {
1229
+ commitHash,
1230
+ strategy
1231
+ });
1232
+ } else {
1233
+ throw new Error('Rollback verification failed');
1234
+ }
1235
+ return success;
1236
+ } catch (error) {
1237
+ this.emit('error', new Error(`Rollback failed: ${error}`));
1238
+ // Attempt emergency recovery
1239
+ try {
1240
+ await this.emergencyRecovery();
1241
+ } catch (recoveryError) {
1242
+ this.emit('error', new Error(`Emergency recovery failed: ${recoveryError}`));
1243
+ }
1244
+ return false;
1245
+ }
1246
+ }
1247
+ /**
1248
+ * Rolls back specific files to their state at a given commit
1249
+ */ async rollbackFiles(files, commitHash) {
1250
+ try {
1251
+ if (this.safetyChecks) {
1252
+ await this.validateCommit(commitHash);
1253
+ await this.validateFiles(files);
1254
+ }
1255
+ // Backup current state of files
1256
+ const backupStash = await this.createFileBackup(files);
1257
+ try {
1258
+ // Rollback each file
1259
+ for (const file of files){
1260
+ await execAsync(`git checkout ${commitHash} -- "${file}"`, {
1261
+ cwd: this.gitDir
1262
+ });
1263
+ }
1264
+ this.emit('files_rolled_back', {
1265
+ files,
1266
+ commitHash
1267
+ });
1268
+ return true;
1269
+ } catch (error) {
1270
+ // Restore from backup on failure
1271
+ if (backupStash) {
1272
+ await this.restoreFileBackup(backupStash, files);
1273
+ }
1274
+ throw error;
1275
+ }
1276
+ } catch (error) {
1277
+ this.emit('error', new Error(`File rollback failed: ${error}`));
1278
+ return false;
1279
+ }
1280
+ }
1281
+ /**
1282
+ * Creates a branch from current state for safe rollback testing
1283
+ */ async createTestBranch(name) {
1284
+ try {
1285
+ const branchName = name || `rollback-test-${Date.now()}`;
1286
+ await execAsync(`git checkout -b "${branchName}"`, {
1287
+ cwd: this.gitDir
1288
+ });
1289
+ this.emit('test_branch_created', branchName);
1290
+ return branchName;
1291
+ } catch (error) {
1292
+ this.emit('error', new Error(`Failed to create test branch: ${error}`));
1293
+ throw error;
1294
+ }
1295
+ }
1296
+ /**
1297
+ * Lists available rollback points (commits with rollback markers)
1298
+ */ async listRollbackPoints() {
1299
+ try {
1300
+ // Get commits with rollback markers
1301
+ const { stdout } = await execAsync('git log --grep="\\[ROLLBACK\\]" --oneline --format="%H|%ai|%s" -n 50', {
1302
+ cwd: this.gitDir
1303
+ });
1304
+ const commits = stdout.trim().split('\n').filter(Boolean).map((line)=>{
1305
+ const [hash, dateStr, message] = line.split('|');
1306
+ return {
1307
+ hash,
1308
+ date: new Date(dateStr),
1309
+ message: message.replace(/\[ROLLBACK\]/, '').trim(),
1310
+ tags: this.extractTagsFromMessage(message)
1311
+ };
1312
+ });
1313
+ // Also get tagged rollback points
1314
+ const { stdout: tagOutput } = await execAsync('git tag -l "rollback-*" --format="%(refname:short)|%(creatordate)|%(subject)"', {
1315
+ cwd: this.gitDir
1316
+ }).catch(()=>({
1317
+ stdout: ''
1318
+ }));
1319
+ const taggedCommits = tagOutput.trim().split('\n').filter(Boolean).map((line)=>{
1320
+ const [tag, dateStr, message] = line.split('|');
1321
+ return {
1322
+ hash: tag,
1323
+ date: new Date(dateStr),
1324
+ message: message || 'Tagged rollback point',
1325
+ tags: [
1326
+ tag
1327
+ ]
1328
+ };
1329
+ });
1330
+ return [
1331
+ ...commits,
1332
+ ...taggedCommits
1333
+ ].sort((a, b)=>b.date.getTime() - a.date.getTime());
1334
+ } catch (error) {
1335
+ this.emit('error', new Error(`Failed to list rollback points: ${error}`));
1336
+ return [];
1337
+ }
1338
+ }
1339
+ async ensureGitRepo() {
1340
+ try {
1341
+ await execAsync('git rev-parse --git-dir', {
1342
+ cwd: this.gitDir
1343
+ });
1344
+ } catch {
1345
+ throw new Error('Not a git repository');
1346
+ }
1347
+ }
1348
+ async performSafetyChecks() {
1349
+ // Check for uncommitted changes
1350
+ const { stdout: status } = await execAsync('git status --porcelain', {
1351
+ cwd: this.gitDir
1352
+ });
1353
+ if (status.trim()) {
1354
+ this.emit('warning', 'Uncommitted changes detected');
1355
+ }
1356
+ // Check if we're on a protected branch
1357
+ const { stdout: branch } = await execAsync('git rev-parse --abbrev-ref HEAD', {
1358
+ cwd: this.gitDir
1359
+ });
1360
+ const currentBranch = branch.trim();
1361
+ const protectedBranches = [
1362
+ 'main',
1363
+ 'master',
1364
+ 'production',
1365
+ 'release'
1366
+ ];
1367
+ if (protectedBranches.includes(currentBranch)) {
1368
+ this.emit('warning', `Operating on protected branch: ${currentBranch}`);
1369
+ }
1370
+ }
1371
+ async createBackupBranch() {
1372
+ try {
1373
+ // Delete existing backup branch if it exists
1374
+ await execAsync(`git branch -D "${this.backupBranch}"`, {
1375
+ cwd: this.gitDir
1376
+ }).catch(()=>{});
1377
+ // Create new backup branch
1378
+ await execAsync(`git checkout -b "${this.backupBranch}"`, {
1379
+ cwd: this.gitDir
1380
+ });
1381
+ // Switch back to original branch
1382
+ await execAsync('git checkout -', {
1383
+ cwd: this.gitDir
1384
+ });
1385
+ } catch (error) {
1386
+ this.emit('warning', `Failed to create backup branch: ${error}`);
1387
+ }
1388
+ }
1389
+ formatRollbackMessage(message, tags) {
1390
+ const tagStr = tags.length > 0 ? ` [${tags.join(', ')}]` : '';
1391
+ return `[ROLLBACK] ${message}${tagStr}`;
1392
+ }
1393
+ extractTagsFromMessage(message) {
1394
+ const match = message.match(/\[([^\]]+)\]/g);
1395
+ if (!match) return [];
1396
+ return match.map((tag)=>tag.slice(1, -1)).filter((tag)=>tag !== 'ROLLBACK');
1397
+ }
1398
+ async validateCommit(commitHash) {
1399
+ try {
1400
+ await execAsync(`git cat-file -e ${commitHash}`, {
1401
+ cwd: this.gitDir
1402
+ });
1403
+ } catch {
1404
+ throw new Error(`Invalid commit hash: ${commitHash}`);
1405
+ }
1406
+ }
1407
+ async validateFiles(files) {
1408
+ for (const file of files){
1409
+ try {
1410
+ await fs.access(join(this.gitDir, file));
1411
+ } catch {
1412
+ throw new Error(`File not found: ${file}`);
1413
+ }
1414
+ }
1415
+ }
1416
+ async getLastStashRef() {
1417
+ const { stdout } = await execAsync('git stash list -1 --format="%H"', {
1418
+ cwd: this.gitDir
1419
+ });
1420
+ return stdout.trim();
1421
+ }
1422
+ async createFileBackup(files) {
1423
+ try {
1424
+ // Create a stash with only the specified files
1425
+ for (const file of files){
1426
+ await execAsync(`git add "${file}"`, {
1427
+ cwd: this.gitDir
1428
+ });
1429
+ }
1430
+ await execAsync('git stash push -m "File backup before rollback"', {
1431
+ cwd: this.gitDir
1432
+ });
1433
+ return await this.getLastStashRef();
1434
+ } catch {
1435
+ return null;
1436
+ }
1437
+ }
1438
+ async restoreFileBackup(stashRef, files) {
1439
+ try {
1440
+ // Restore files from stash
1441
+ await execAsync(`git stash show -p ${stashRef} | git apply`, {
1442
+ cwd: this.gitDir
1443
+ });
1444
+ await execAsync(`git stash drop ${stashRef}`, {
1445
+ cwd: this.gitDir
1446
+ });
1447
+ } catch (error) {
1448
+ this.emit('error', new Error(`Failed to restore file backup: ${error}`));
1449
+ }
1450
+ }
1451
+ async emergencyRecovery() {
1452
+ try {
1453
+ // Try to recover using backup branch
1454
+ if (this.backupBranch) {
1455
+ await execAsync(`git checkout "${this.backupBranch}"`, {
1456
+ cwd: this.gitDir
1457
+ });
1458
+ await execAsync('git checkout -b "emergency-recovery"', {
1459
+ cwd: this.gitDir
1460
+ });
1461
+ this.emit('emergency_recovery_completed', 'emergency-recovery');
1462
+ }
1463
+ } catch (error) {
1464
+ throw new Error(`Emergency recovery failed: ${error}`);
1465
+ }
1466
+ }
1467
+ }
1468
+ // ============================================================================
1469
+ // Main RollbackManager - Orchestrates all rollback components
1470
+ // ============================================================================
1471
+ export class RollbackManager extends EventEmitter {
1472
+ stateManager;
1473
+ rollbackTrigger;
1474
+ automatedRecovery;
1475
+ rollbackHistory;
1476
+ gitRollbackManager;
1477
+ isInitialized = false;
1478
+ constructor(config = {}){
1479
+ super();
1480
+ // Initialize components
1481
+ this.stateManager = new StateManager(config.snapshotDir, config.maxSnapshots, config.compressionEnabled);
1482
+ this.rollbackTrigger = new RollbackTrigger(config.triggerConfig);
1483
+ this.automatedRecovery = new AutomatedRecovery(this.stateManager);
1484
+ this.rollbackHistory = new RollbackHistory(config.historyDir, config.maxHistorySize, config.historyTtlDays, config.compressionEnabled);
1485
+ this.gitRollbackManager = new GitRollbackManager(config.gitDir);
1486
+ this.setupEventHandlers();
1487
+ }
1488
+ setupEventHandlers() {
1489
+ // Connect rollback trigger to automated recovery
1490
+ this.rollbackTrigger.on('rollback_triggered', async (event)=>{
1491
+ await this.handleAutomaticRollback(event.metrics, event.reason);
1492
+ });
1493
+ // Forward important events
1494
+ this.stateManager.on('error', (error)=>this.emit('error', error));
1495
+ this.rollbackTrigger.on('error', (error)=>this.emit('error', error));
1496
+ this.automatedRecovery.on('error', (error)=>this.emit('error', error));
1497
+ this.rollbackHistory.on('error', (error)=>this.emit('error', error));
1498
+ this.gitRollbackManager.on('error', (error)=>this.emit('error', error));
1499
+ // Aggregate events
1500
+ this.stateManager.on('snapshot_created', (snapshot)=>this.emit('snapshot_created', snapshot));
1501
+ this.automatedRecovery.on('recovery_success', (event)=>this.emit('recovery_success', event));
1502
+ this.gitRollbackManager.on('rollback_completed', (event)=>this.emit('git_rollback_completed', event));
1503
+ }
1504
+ async initialize() {
1505
+ if (this.isInitialized) return;
1506
+ try {
1507
+ // Start monitoring
1508
+ this.rollbackTrigger.startMonitoring();
1509
+ this.isInitialized = true;
1510
+ this.emit('initialized');
1511
+ } catch (error) {
1512
+ this.emit('error', new Error(`Failed to initialize RollbackManager: ${error}`));
1513
+ throw error;
1514
+ }
1515
+ }
1516
+ async shutdown() {
1517
+ if (!this.isInitialized) return;
1518
+ try {
1519
+ this.rollbackTrigger.stopMonitoring();
1520
+ this.rollbackHistory.destroy();
1521
+ this.isInitialized = false;
1522
+ this.emit('shutdown');
1523
+ } catch (error) {
1524
+ this.emit('error', new Error(`Failed to shutdown RollbackManager: ${error}`));
1525
+ }
1526
+ }
1527
+ /**
1528
+ * Creates a comprehensive system checkpoint
1529
+ */ async createCheckpoint(description, tags = []) {
1530
+ try {
1531
+ // Create system snapshot
1532
+ const snapshot = await this.stateManager.captureSnapshot(description, tags, 'manual_checkpoint');
1533
+ // Create git rollback point
1534
+ await this.gitRollbackManager.createRollbackPoint(description, tags);
1535
+ this.emit('checkpoint_created', {
1536
+ snapshot: snapshot.id,
1537
+ description,
1538
+ tags
1539
+ });
1540
+ return snapshot.id;
1541
+ } catch (error) {
1542
+ this.emit('error', new Error(`Failed to create checkpoint: ${error}`));
1543
+ throw error;
1544
+ }
1545
+ }
1546
+ /**
1547
+ * Performs a manual rollback to a specific checkpoint
1548
+ */ async rollbackToCheckpoint(snapshotId, strategy = 'graceful') {
1549
+ try {
1550
+ const snapshot = await this.stateManager.getSnapshot(snapshotId);
1551
+ if (!snapshot) {
1552
+ throw new Error(`Snapshot not found: ${snapshotId}`);
1553
+ }
1554
+ const startTime = Date.now();
1555
+ // Execute rollback based on strategy
1556
+ let success;
1557
+ if (strategy === 'graceful') {
1558
+ success = await this.performGracefulRollback(snapshot);
1559
+ } else {
1560
+ success = await this.performImmediateRollback(snapshot);
1561
+ }
1562
+ const duration = Date.now() - startTime;
1563
+ // Record in history
1564
+ await this.rollbackHistory.addEntry(snapshot, 'manual', `Manual rollback to checkpoint ${snapshotId}`, undefined, strategy, success, duration, [], [], success, !success);
1565
+ if (success) {
1566
+ this.emit('manual_rollback_success', {
1567
+ snapshotId,
1568
+ strategy,
1569
+ duration
1570
+ });
1571
+ } else {
1572
+ this.emit('manual_rollback_failed', {
1573
+ snapshotId,
1574
+ strategy,
1575
+ duration
1576
+ });
1577
+ }
1578
+ return success;
1579
+ } catch (error) {
1580
+ this.emit('error', new Error(`Manual rollback failed: ${error}`));
1581
+ return false;
1582
+ }
1583
+ }
1584
+ async handleAutomaticRollback(metrics, reason) {
1585
+ try {
1586
+ const success = await this.automatedRecovery.executeRecovery(metrics, reason);
1587
+ if (success) {
1588
+ this.emit('automatic_rollback_success', {
1589
+ reason,
1590
+ metrics
1591
+ });
1592
+ } else {
1593
+ this.emit('automatic_rollback_failed', {
1594
+ reason,
1595
+ metrics
1596
+ });
1597
+ }
1598
+ } catch (error) {
1599
+ this.emit('error', new Error(`Automatic rollback failed: ${error}`));
1600
+ }
1601
+ }
1602
+ async performGracefulRollback(snapshot) {
1603
+ try {
1604
+ // 1. Create backup of current state
1605
+ await this.stateManager.captureSnapshot('Pre-rollback backup', [
1606
+ 'auto-backup'
1607
+ ], 'rollback_backup');
1608
+ // 2. Gradually restore components
1609
+ const restoreSteps = [
1610
+ ()=>this.restoreConfiguration(snapshot),
1611
+ ()=>this.restoreMemoryState(snapshot),
1612
+ ()=>this.restoreFileSystem(snapshot),
1613
+ ()=>this.performGitRollback(snapshot)
1614
+ ];
1615
+ for (const step of restoreSteps){
1616
+ await step();
1617
+ // Small delay between steps
1618
+ await new Promise((resolve)=>setTimeout(resolve, 1000));
1619
+ }
1620
+ return true;
1621
+ } catch (error) {
1622
+ this.emit('graceful_rollback_error', error);
1623
+ return false;
1624
+ }
1625
+ }
1626
+ async performImmediateRollback(snapshot) {
1627
+ try {
1628
+ // Perform all restoration steps in parallel for speed
1629
+ await Promise.all([
1630
+ this.restoreConfiguration(snapshot),
1631
+ this.restoreMemoryState(snapshot),
1632
+ this.restoreFileSystem(snapshot),
1633
+ this.performGitRollback(snapshot)
1634
+ ]);
1635
+ return true;
1636
+ } catch (error) {
1637
+ this.emit('immediate_rollback_error', error);
1638
+ return false;
1639
+ }
1640
+ }
1641
+ async restoreConfiguration(snapshot) {
1642
+ for (const [path, content] of Object.entries(snapshot.state.config)){
1643
+ try {
1644
+ await fs.writeFile(path, JSON.stringify(content, null, 2));
1645
+ } catch (error) {
1646
+ console.warn(`Failed to restore config ${path}:`, error);
1647
+ }
1648
+ }
1649
+ }
1650
+ async restoreMemoryState(snapshot) {
1651
+ for (const [path, content] of Object.entries(snapshot.state.memory)){
1652
+ try {
1653
+ await fs.writeFile(path, JSON.stringify(content, null, 2));
1654
+ } catch (error) {
1655
+ console.warn(`Failed to restore memory ${path}:`, error);
1656
+ }
1657
+ }
1658
+ }
1659
+ async restoreFileSystem(snapshot) {
1660
+ for (const file of snapshot.state.files){
1661
+ try {
1662
+ await fs.writeFile(file.path, file.content);
1663
+ await fs.chmod(file.path, file.stats.mode);
1664
+ } catch (error) {
1665
+ console.warn(`Failed to restore file ${file.path}:`, error);
1666
+ }
1667
+ }
1668
+ }
1669
+ async performGitRollback(snapshot) {
1670
+ if (snapshot.state.git.commit !== 'unknown') {
1671
+ try {
1672
+ await this.gitRollbackManager.rollbackToCommit(snapshot.state.git.commit);
1673
+ } catch (error) {
1674
+ console.warn('Git rollback failed:', error);
1675
+ }
1676
+ }
1677
+ }
1678
+ // Public API methods
1679
+ getStateManager() {
1680
+ return this.stateManager;
1681
+ }
1682
+ getRollbackTrigger() {
1683
+ return this.rollbackTrigger;
1684
+ }
1685
+ getAutomatedRecovery() {
1686
+ return this.automatedRecovery;
1687
+ }
1688
+ getRollbackHistory() {
1689
+ return this.rollbackHistory;
1690
+ }
1691
+ getGitRollbackManager() {
1692
+ return this.gitRollbackManager;
1693
+ }
1694
+ async getSystemStatus() {
1695
+ const snapshots = this.stateManager.listSnapshots();
1696
+ const recentEntries = this.rollbackHistory.getRecentEntries(10);
1697
+ const successRate = this.rollbackHistory.getSuccessRate();
1698
+ return {
1699
+ isMonitoring: this.rollbackTrigger.getCurrentMetrics() !== null,
1700
+ snapshotCount: snapshots.length,
1701
+ historyEntries: recentEntries.length,
1702
+ lastCheckpoint: snapshots[0]?.id || null,
1703
+ healthScore: successRate
1704
+ };
1705
+ }
1706
+ }
1707
+ // Export the main class and interfaces
1708
+ export default RollbackManager;
1709
+
1710
+ //# sourceMappingURL=rollback.js.map