snow-flow 1.4.48 → 2.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 (529) hide show
  1. package/.claude/helpers/github-setup.sh +28 -0
  2. package/.claude/helpers/quick-start.sh +19 -0
  3. package/.claude/helpers/setup-mcp.sh +18 -0
  4. package/.claude/settings.local.json +33 -0
  5. package/.claude-flow/metrics/system-metrics.json +12396 -0
  6. package/.env.example +21 -0
  7. package/.roo/README.md +402 -0
  8. package/.roo/mcp-list.txt +257 -0
  9. package/.roo/mcp.json +32 -0
  10. package/.roo/workflows/basic-tdd.json +32 -0
  11. package/.roomodes +201 -0
  12. package/README.md +114 -628
  13. package/activate-mcp.sh +15 -0
  14. package/dist/cli.js.bak +2052 -0
  15. package/manual-register-mcp.js +134 -0
  16. package/mcp-wrapper.sh +12 -0
  17. package/package.json +2 -2
  18. package/scripts/create-env.js +6 -1
  19. package/scripts/reset-mcp-servers.js +246 -0
  20. package/scripts/update-version.js +31 -0
  21. package/src/agents/README.md +192 -0
  22. package/src/agents/base-agent.ts +251 -0
  23. package/src/agents/coordinator.ts +971 -0
  24. package/src/agents/index.ts +18 -0
  25. package/src/agents/queen-403-handler.ts +230 -0
  26. package/src/agents/queen-agent.ts +1399 -0
  27. package/src/agents/script-writer-agent.ts +769 -0
  28. package/src/agents/security-agent.ts +726 -0
  29. package/src/agents/widget-creator-agent.ts +568 -0
  30. package/src/api/error-handling.ts +1758 -0
  31. package/src/api/natural-language-mapper.ts +630 -0
  32. package/src/api/performance-optimizer.ts +891 -0
  33. package/src/api/transaction-manager.ts +754 -0
  34. package/src/cli/deploy-artifact.ts +304 -0
  35. package/src/cli/snow-flow-cli-integration.ts +434 -0
  36. package/src/cli.ts +4455 -0
  37. package/src/cli.ts.bak +5616 -0
  38. package/src/compliance/advanced-compliance-system.ts +1268 -0
  39. package/src/compliance/index.ts +19 -0
  40. package/src/config/snow-flow-config.ts +1019 -0
  41. package/src/documentation/index.ts +16 -0
  42. package/src/documentation/self-documenting-system.ts +1421 -0
  43. package/src/dynamic-version.ts +44 -0
  44. package/src/healing/index.ts +20 -0
  45. package/src/healing/self-healing-system.ts +1435 -0
  46. package/src/health/README.md +161 -0
  47. package/src/health/system-health.ts +995 -0
  48. package/src/index.ts +60 -0
  49. package/src/intelligence/acl-analyzer.ts +377 -0
  50. package/src/intelligence/auto-resolution-engine.ts +643 -0
  51. package/src/intelligence/gap-analysis-engine.ts +488 -0
  52. package/src/intelligence/manual-instructions-generator.ts +744 -0
  53. package/src/intelligence/mcp-coverage-analyzer.ts +708 -0
  54. package/src/intelligence/multi-pass-requirements-analyzer.ts +603 -0
  55. package/src/intelligence/performance-recommendations-engine.ts +1223 -0
  56. package/src/intelligence/requirements-analyzer.ts +1148 -0
  57. package/src/intelligence/task-analyzer.ts +628 -0
  58. package/src/managers/scope-manager.ts +555 -0
  59. package/src/mcp/advanced/servicenow-advanced-features-mcp.ts +16110 -0
  60. package/src/mcp/base-mcp-server.ts +660 -0
  61. package/src/mcp/http-transport-wrapper.ts +426 -0
  62. package/src/mcp/service-discovery-client.ts +312 -0
  63. package/src/mcp/servicenow-automation-mcp-refactored.ts +678 -0
  64. package/src/mcp/servicenow-automation-mcp.ts +838 -0
  65. package/src/mcp/servicenow-deployment-mcp-refactored.ts +1292 -0
  66. package/src/mcp/servicenow-deployment-mcp.ts +7244 -0
  67. package/src/mcp/servicenow-graph-memory-mcp-refactored.ts +721 -0
  68. package/src/mcp/servicenow-graph-memory-mcp.ts +832 -0
  69. package/src/mcp/servicenow-integration-mcp-refactored.ts +655 -0
  70. package/src/mcp/servicenow-integration-mcp.ts +819 -0
  71. package/src/mcp/servicenow-intelligent-mcp-refactored.ts +977 -0
  72. package/src/mcp/servicenow-intelligent-mcp.ts +4638 -0
  73. package/src/mcp/servicenow-mcp-server.ts +728 -0
  74. package/src/mcp/servicenow-memory-mcp.ts +474 -0
  75. package/src/mcp/servicenow-operations-mcp-refactored.ts +1995 -0
  76. package/src/mcp/servicenow-operations-mcp.ts +3384 -0
  77. package/src/mcp/servicenow-platform-development-mcp-refactored.ts +611 -0
  78. package/src/mcp/servicenow-platform-development-mcp.ts +970 -0
  79. package/src/mcp/servicenow-progressive-indexer.ts +370 -0
  80. package/src/mcp/servicenow-reporting-analytics-mcp-refactored.ts +695 -0
  81. package/src/mcp/servicenow-reporting-analytics-mcp.ts +1123 -0
  82. package/src/mcp/servicenow-security-compliance-mcp-refactored.ts +642 -0
  83. package/src/mcp/servicenow-security-compliance-mcp.ts +1157 -0
  84. package/src/mcp/servicenow-update-set-mcp-refactored.ts +751 -0
  85. package/src/mcp/servicenow-update-set-mcp.ts +811 -0
  86. package/src/mcp/shared/agent-context-provider.ts +365 -0
  87. package/src/mcp/shared/base-mcp-server.ts +2463 -0
  88. package/src/mcp/shared/mcp-memory-manager.ts +540 -0
  89. package/src/mcp/shared/mcp-resource-manager.ts +367 -0
  90. package/src/mcp/snow-flow-mcp.ts +911 -0
  91. package/src/mcp/start-all-mcp-servers.ts +102 -0
  92. package/src/mcp/start-servicenow-mcp.ts +67 -0
  93. package/src/monitoring/enhanced-monitoring-system.ts +1345 -0
  94. package/src/monitoring/performance-tracker.ts +777 -0
  95. package/src/optimization/cost-optimization-engine.ts +1125 -0
  96. package/src/optimization/index.ts +10 -0
  97. package/src/queen/README.md +403 -0
  98. package/src/queen/agent-factory.ts +574 -0
  99. package/src/queen/index.ts +94 -0
  100. package/src/queen/mcp-execution-bridge.ts +681 -0
  101. package/src/queen/neural-learning.ts +319 -0
  102. package/src/queen/parallel-agent-engine.ts +848 -0
  103. package/src/queen/queen-memory-system.ts +490 -0
  104. package/src/queen/queen-memory.ts +456 -0
  105. package/src/queen/servicenow-queen.ts +1029 -0
  106. package/src/queen/types.ts +87 -0
  107. package/src/rollback/smart-rollback-system.ts +866 -0
  108. package/src/schemas/deployment.schema.json +58 -0
  109. package/src/schemas/flow.schema.json +79 -0
  110. package/src/schemas/widget.schema.json +72 -0
  111. package/src/snow-flow-system.ts +541 -0
  112. package/src/sparc/sparc-help.ts +49 -0
  113. package/src/sparc/team-sparc.ts +88 -0
  114. package/src/strategies/global-scope-strategy.ts +736 -0
  115. package/src/templates/base/application.template.json +45 -0
  116. package/src/templates/base/business_rule.template.json +33 -0
  117. package/src/templates/base/script_include.template.json +18 -0
  118. package/src/templates/base/table.template.json +64 -0
  119. package/src/templates/base/widget.template.json +25 -0
  120. package/src/templates/patterns/composite.incident-management.template.json +140 -0
  121. package/src/templates/patterns/widget.dashboard.template.json +238 -0
  122. package/src/templates/patterns/widget.datatable.template.json +292 -0
  123. package/src/testing/integration-test-suite.ts +1276 -0
  124. package/src/types/index.ts +183 -0
  125. package/src/types/neo4j-driver.d.ts +23 -0
  126. package/src/types/servicenow.types.ts +307 -0
  127. package/src/types/snow-flow.types.ts +186 -0
  128. package/src/types/todo.types.ts +70 -0
  129. package/src/utils/action-type-cache.ts +286 -0
  130. package/src/utils/agent-detector.ts +573 -0
  131. package/src/utils/artifact-tracker.ts +379 -0
  132. package/src/utils/dependency-detector.ts +233 -0
  133. package/src/utils/deployment-metadata-handler.ts +518 -0
  134. package/src/utils/error-recovery.ts +680 -0
  135. package/src/utils/logger.ts +60 -0
  136. package/src/utils/mcp-auth-middleware.ts +262 -0
  137. package/src/utils/mcp-config-manager.ts +270 -0
  138. package/src/utils/mcp-server-manager.ts +446 -0
  139. package/src/utils/mcp-tool-registry.ts +298 -0
  140. package/src/utils/migrate-snow-flow.ts +98 -0
  141. package/src/utils/oauth-html-templates.ts +188 -0
  142. package/src/utils/scope-utils.ts +443 -0
  143. package/src/utils/servicenow-client.ts +3321 -0
  144. package/src/utils/servicenow-id-generator.ts +181 -0
  145. package/src/utils/snow-memory-manager.ts +605 -0
  146. package/src/utils/snow-oauth.ts +797 -0
  147. package/src/utils/template-engine.ts +463 -0
  148. package/src/utils/theme-manager.ts +295 -0
  149. package/src/utils/unified-auth-store.ts +222 -0
  150. package/src/utils/update-set-importer.ts +422 -0
  151. package/src/utils/update-set-xml-packager.ts +371 -0
  152. package/src/utils/widget-template-generator.ts +1744 -0
  153. package/src/version.ts +1950 -0
  154. package/dist/agents/app-creator.agent.d.ts.map +0 -1
  155. package/dist/agents/app-creator.agent.js.map +0 -1
  156. package/dist/agents/base/base-snow-agent.d.ts.map +0 -1
  157. package/dist/agents/base/base-snow-agent.js.map +0 -1
  158. package/dist/agents/base-agent.d.ts.map +0 -1
  159. package/dist/agents/base-agent.js.map +0 -1
  160. package/dist/agents/base-snow-agent.d.ts.map +0 -1
  161. package/dist/agents/base-snow-agent.js.map +0 -1
  162. package/dist/agents/coordinator.d.ts.map +0 -1
  163. package/dist/agents/coordinator.js.map +0 -1
  164. package/dist/agents/flow-builder-agent.d.ts.map +0 -1
  165. package/dist/agents/flow-builder-agent.js.map +0 -1
  166. package/dist/agents/index.d.ts.map +0 -1
  167. package/dist/agents/index.js.map +0 -1
  168. package/dist/agents/queen-403-handler.d.ts.map +0 -1
  169. package/dist/agents/queen-403-handler.js.map +0 -1
  170. package/dist/agents/queen-agent-example.d.ts.map +0 -1
  171. package/dist/agents/queen-agent-example.js.map +0 -1
  172. package/dist/agents/queen-agent.d.ts.map +0 -1
  173. package/dist/agents/queen-agent.js.map +0 -1
  174. package/dist/agents/queen-agent.test.d.ts.map +0 -1
  175. package/dist/agents/queen-agent.test.js.map +0 -1
  176. package/dist/agents/script-generator.agent.d.ts.map +0 -1
  177. package/dist/agents/script-generator.agent.js.map +0 -1
  178. package/dist/agents/script-writer-agent.d.ts.map +0 -1
  179. package/dist/agents/script-writer-agent.js.map +0 -1
  180. package/dist/agents/security-agent.d.ts.map +0 -1
  181. package/dist/agents/security-agent.js.map +0 -1
  182. package/dist/agents/specialists/automation-specialist.agent.d.ts.map +0 -1
  183. package/dist/agents/specialists/automation-specialist.agent.js.map +0 -1
  184. package/dist/agents/specialists/data-specialist.agent.d.ts.map +0 -1
  185. package/dist/agents/specialists/data-specialist.agent.js.map +0 -1
  186. package/dist/agents/specialists/integration-specialist.agent.d.ts.map +0 -1
  187. package/dist/agents/specialists/integration-specialist.agent.js.map +0 -1
  188. package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +0 -1
  189. package/dist/agents/specialists/reporting-specialist.agent.js.map +0 -1
  190. package/dist/agents/specialists/security-specialist.agent.d.ts.map +0 -1
  191. package/dist/agents/specialists/security-specialist.agent.js.map +0 -1
  192. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +0 -1
  193. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +0 -1
  194. package/dist/agents/teams/base-team.d.ts.map +0 -1
  195. package/dist/agents/teams/base-team.js.map +0 -1
  196. package/dist/agents/teams/team-types.d.ts.map +0 -1
  197. package/dist/agents/teams/team-types.js.map +0 -1
  198. package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +0 -1
  199. package/dist/agents/teams/widget/widget-architect.agent.js.map +0 -1
  200. package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +0 -1
  201. package/dist/agents/teams/widget/widget-backend.agent.js.map +0 -1
  202. package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +0 -1
  203. package/dist/agents/teams/widget/widget-frontend.agent.js.map +0 -1
  204. package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +0 -1
  205. package/dist/agents/teams/widget/widget-platform.agent.js.map +0 -1
  206. package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +0 -1
  207. package/dist/agents/teams/widget/widget-uiux.agent.js.map +0 -1
  208. package/dist/agents/test-agent.d.ts.map +0 -1
  209. package/dist/agents/test-agent.js.map +0 -1
  210. package/dist/agents/test-agents.d.ts.map +0 -1
  211. package/dist/agents/test-agents.js.map +0 -1
  212. package/dist/agents/ui-builder.agent.d.ts.map +0 -1
  213. package/dist/agents/ui-builder.agent.js.map +0 -1
  214. package/dist/agents/widget-builder.agent.d.ts.map +0 -1
  215. package/dist/agents/widget-builder.agent.js.map +0 -1
  216. package/dist/agents/widget-creator-agent.d.ts.map +0 -1
  217. package/dist/agents/widget-creator-agent.js.map +0 -1
  218. package/dist/agents/workflow-designer.agent.d.ts.map +0 -1
  219. package/dist/agents/workflow-designer.agent.js.map +0 -1
  220. package/dist/api/error-handling.d.ts.map +0 -1
  221. package/dist/api/error-handling.js.map +0 -1
  222. package/dist/api/flow-designer-api.d.ts.map +0 -1
  223. package/dist/api/flow-designer-api.js.map +0 -1
  224. package/dist/api/natural-language-mapper.d.ts.map +0 -1
  225. package/dist/api/natural-language-mapper.js.map +0 -1
  226. package/dist/api/performance-optimizer.d.ts.map +0 -1
  227. package/dist/api/performance-optimizer.js.map +0 -1
  228. package/dist/api/transaction-manager.d.ts.map +0 -1
  229. package/dist/api/transaction-manager.js.map +0 -1
  230. package/dist/assembly/team-assembler.d.ts.map +0 -1
  231. package/dist/assembly/team-assembler.js.map +0 -1
  232. package/dist/cli/deploy-artifact.d.ts.map +0 -1
  233. package/dist/cli/deploy-artifact.js.map +0 -1
  234. package/dist/cli/snow-flow-cli-integration.d.ts.map +0 -1
  235. package/dist/cli/snow-flow-cli-integration.js.map +0 -1
  236. package/dist/cli.d.ts.map +0 -1
  237. package/dist/cli.js.map +0 -1
  238. package/dist/compliance/advanced-compliance-system.d.ts.map +0 -1
  239. package/dist/compliance/advanced-compliance-system.js.map +0 -1
  240. package/dist/compliance/index.d.ts.map +0 -1
  241. package/dist/compliance/index.js.map +0 -1
  242. package/dist/config/snow-flow-config.d.ts.map +0 -1
  243. package/dist/config/snow-flow-config.js.map +0 -1
  244. package/dist/documentation/index.d.ts.map +0 -1
  245. package/dist/documentation/index.js.map +0 -1
  246. package/dist/documentation/self-documenting-system.d.ts.map +0 -1
  247. package/dist/documentation/self-documenting-system.js.map +0 -1
  248. package/dist/dynamic-version.d.ts.map +0 -1
  249. package/dist/dynamic-version.js.map +0 -1
  250. package/dist/healing/index.d.ts.map +0 -1
  251. package/dist/healing/index.js.map +0 -1
  252. package/dist/healing/self-healing-system.d.ts.map +0 -1
  253. package/dist/healing/self-healing-system.js.map +0 -1
  254. package/dist/health/system-health.d.ts.map +0 -1
  255. package/dist/health/system-health.js.map +0 -1
  256. package/dist/index.d.ts.map +0 -1
  257. package/dist/index.js.map +0 -1
  258. package/dist/intelligence/acl-analyzer.d.ts.map +0 -1
  259. package/dist/intelligence/acl-analyzer.js.map +0 -1
  260. package/dist/intelligence/auto-resolution-engine.d.ts.map +0 -1
  261. package/dist/intelligence/auto-resolution-engine.js.map +0 -1
  262. package/dist/intelligence/gap-analysis-engine.d.ts.map +0 -1
  263. package/dist/intelligence/gap-analysis-engine.js.map +0 -1
  264. package/dist/intelligence/manual-instructions-generator.d.ts.map +0 -1
  265. package/dist/intelligence/manual-instructions-generator.js.map +0 -1
  266. package/dist/intelligence/mcp-coverage-analyzer.d.ts.map +0 -1
  267. package/dist/intelligence/mcp-coverage-analyzer.js.map +0 -1
  268. package/dist/intelligence/multi-pass-requirements-analyzer.d.ts.map +0 -1
  269. package/dist/intelligence/multi-pass-requirements-analyzer.js.map +0 -1
  270. package/dist/intelligence/performance-recommendations-engine.d.ts.map +0 -1
  271. package/dist/intelligence/performance-recommendations-engine.js.map +0 -1
  272. package/dist/intelligence/requirements-analyzer.d.ts.map +0 -1
  273. package/dist/intelligence/requirements-analyzer.js.map +0 -1
  274. package/dist/intelligence/task-analyzer.d.ts.map +0 -1
  275. package/dist/intelligence/task-analyzer.js.map +0 -1
  276. package/dist/managers/scope-manager.d.ts.map +0 -1
  277. package/dist/managers/scope-manager.js.map +0 -1
  278. package/dist/mcp/advanced/servicenow-advanced-features-mcp.d.ts.map +0 -1
  279. package/dist/mcp/advanced/servicenow-advanced-features-mcp.js.map +0 -1
  280. package/dist/mcp/base-mcp-server.d.ts.map +0 -1
  281. package/dist/mcp/base-mcp-server.js.map +0 -1
  282. package/dist/mcp/example-refactored-server.d.ts.map +0 -1
  283. package/dist/mcp/example-refactored-server.js.map +0 -1
  284. package/dist/mcp/http-transport-wrapper.d.ts.map +0 -1
  285. package/dist/mcp/http-transport-wrapper.js.map +0 -1
  286. package/dist/mcp/mcp-wrapper.d.ts.map +0 -1
  287. package/dist/mcp/mcp-wrapper.js.map +0 -1
  288. package/dist/mcp/service-discovery-client.d.ts.map +0 -1
  289. package/dist/mcp/service-discovery-client.js.map +0 -1
  290. package/dist/mcp/servicenow-automation-mcp-refactored.d.ts.map +0 -1
  291. package/dist/mcp/servicenow-automation-mcp-refactored.js.map +0 -1
  292. package/dist/mcp/servicenow-automation-mcp.d.ts.map +0 -1
  293. package/dist/mcp/servicenow-automation-mcp.js.map +0 -1
  294. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +0 -1
  295. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +0 -1
  296. package/dist/mcp/servicenow-deployment-mcp.d.ts.map +0 -1
  297. package/dist/mcp/servicenow-deployment-mcp.js.map +0 -1
  298. package/dist/mcp/servicenow-flow-composer-mcp-refactored.d.ts.map +0 -1
  299. package/dist/mcp/servicenow-flow-composer-mcp-refactored.js.map +0 -1
  300. package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +0 -1
  301. package/dist/mcp/servicenow-flow-composer-mcp.js.map +0 -1
  302. package/dist/mcp/servicenow-graph-memory-mcp-refactored.d.ts.map +0 -1
  303. package/dist/mcp/servicenow-graph-memory-mcp-refactored.js.map +0 -1
  304. package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +0 -1
  305. package/dist/mcp/servicenow-graph-memory-mcp.js.map +0 -1
  306. package/dist/mcp/servicenow-integration-mcp-refactored.d.ts.map +0 -1
  307. package/dist/mcp/servicenow-integration-mcp-refactored.js.map +0 -1
  308. package/dist/mcp/servicenow-integration-mcp.d.ts.map +0 -1
  309. package/dist/mcp/servicenow-integration-mcp.js.map +0 -1
  310. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +0 -1
  311. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +0 -1
  312. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +0 -1
  313. package/dist/mcp/servicenow-intelligent-mcp.js.map +0 -1
  314. package/dist/mcp/servicenow-mcp-server.d.ts.map +0 -1
  315. package/dist/mcp/servicenow-mcp-server.js.map +0 -1
  316. package/dist/mcp/servicenow-memory-mcp.d.ts.map +0 -1
  317. package/dist/mcp/servicenow-memory-mcp.js.map +0 -1
  318. package/dist/mcp/servicenow-operations-mcp-refactored.d.ts.map +0 -1
  319. package/dist/mcp/servicenow-operations-mcp-refactored.js.map +0 -1
  320. package/dist/mcp/servicenow-operations-mcp.d.ts.map +0 -1
  321. package/dist/mcp/servicenow-operations-mcp.js.map +0 -1
  322. package/dist/mcp/servicenow-platform-development-mcp-refactored.d.ts.map +0 -1
  323. package/dist/mcp/servicenow-platform-development-mcp-refactored.js.map +0 -1
  324. package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +0 -1
  325. package/dist/mcp/servicenow-platform-development-mcp.js.map +0 -1
  326. package/dist/mcp/servicenow-progressive-indexer.d.ts.map +0 -1
  327. package/dist/mcp/servicenow-progressive-indexer.js.map +0 -1
  328. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.d.ts.map +0 -1
  329. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.js.map +0 -1
  330. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +0 -1
  331. package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +0 -1
  332. package/dist/mcp/servicenow-security-compliance-mcp-refactored.d.ts.map +0 -1
  333. package/dist/mcp/servicenow-security-compliance-mcp-refactored.js.map +0 -1
  334. package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +0 -1
  335. package/dist/mcp/servicenow-security-compliance-mcp.js.map +0 -1
  336. package/dist/mcp/servicenow-update-set-mcp-refactored.d.ts.map +0 -1
  337. package/dist/mcp/servicenow-update-set-mcp-refactored.js.map +0 -1
  338. package/dist/mcp/servicenow-update-set-mcp.d.ts.map +0 -1
  339. package/dist/mcp/servicenow-update-set-mcp.js.map +0 -1
  340. package/dist/mcp/servicenow-xml-flow-mcp.d.ts.map +0 -1
  341. package/dist/mcp/servicenow-xml-flow-mcp.js.map +0 -1
  342. package/dist/mcp/shared/agent-context-provider.d.ts.map +0 -1
  343. package/dist/mcp/shared/agent-context-provider.js.map +0 -1
  344. package/dist/mcp/shared/base-mcp-server.d.ts.map +0 -1
  345. package/dist/mcp/shared/base-mcp-server.js.map +0 -1
  346. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +0 -1
  347. package/dist/mcp/shared/mcp-memory-manager.js.map +0 -1
  348. package/dist/mcp/shared/mcp-resource-manager.d.ts.map +0 -1
  349. package/dist/mcp/shared/mcp-resource-manager.js.map +0 -1
  350. package/dist/mcp/snow-flow-mcp.d.ts.map +0 -1
  351. package/dist/mcp/snow-flow-mcp.js.map +0 -1
  352. package/dist/mcp/start-all-mcp-servers.d.ts.map +0 -1
  353. package/dist/mcp/start-all-mcp-servers.js.map +0 -1
  354. package/dist/mcp/start-servicenow-mcp.d.ts.map +0 -1
  355. package/dist/mcp/start-servicenow-mcp.js.map +0 -1
  356. package/dist/mcp/test-simple-mcp.d.ts.map +0 -1
  357. package/dist/mcp/test-simple-mcp.js.map +0 -1
  358. package/dist/monitoring/enhanced-monitoring-system.d.ts.map +0 -1
  359. package/dist/monitoring/enhanced-monitoring-system.js.map +0 -1
  360. package/dist/monitoring/performance-tracker.d.ts.map +0 -1
  361. package/dist/monitoring/performance-tracker.js.map +0 -1
  362. package/dist/optimization/cost-optimization-engine.d.ts.map +0 -1
  363. package/dist/optimization/cost-optimization-engine.js.map +0 -1
  364. package/dist/optimization/index.d.ts.map +0 -1
  365. package/dist/optimization/index.js.map +0 -1
  366. package/dist/orchestration/discovery/service-discovery.d.ts.map +0 -1
  367. package/dist/orchestration/discovery/service-discovery.js.map +0 -1
  368. package/dist/orchestration/distributed-orchestrator.d.ts.map +0 -1
  369. package/dist/orchestration/distributed-orchestrator.js.map +0 -1
  370. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +0 -1
  371. package/dist/orchestration/distribution/task-distribution-engine.js.map +0 -1
  372. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +0 -1
  373. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +0 -1
  374. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +0 -1
  375. package/dist/orchestration/protocols/mcpx-protocol.js.map +0 -1
  376. package/dist/orchestration/state/distributed-state-manager.d.ts.map +0 -1
  377. package/dist/orchestration/state/distributed-state-manager.js.map +0 -1
  378. package/dist/orchestrator/flow-composer.d.ts.map +0 -1
  379. package/dist/orchestrator/flow-composer.js.map +0 -1
  380. package/dist/orchestrator/flow-pattern-templates.d.ts.map +0 -1
  381. package/dist/orchestrator/flow-pattern-templates.js.map +0 -1
  382. package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +0 -1
  383. package/dist/orchestrator/flow-subflow-decision-engine.js.map +0 -1
  384. package/dist/orchestrator/flow-validation-engine.d.ts.map +0 -1
  385. package/dist/orchestrator/flow-validation-engine.js.map +0 -1
  386. package/dist/orchestrator/snow-orchestrator.d.ts.map +0 -1
  387. package/dist/orchestrator/snow-orchestrator.js.map +0 -1
  388. package/dist/orchestrator/subflow-creation-handler.d.ts.map +0 -1
  389. package/dist/orchestrator/subflow-creation-handler.js.map +0 -1
  390. package/dist/patterns/adaptive-patterns.d.ts.map +0 -1
  391. package/dist/patterns/adaptive-patterns.js.map +0 -1
  392. package/dist/queen/advanced-integration-test.d.ts.map +0 -1
  393. package/dist/queen/advanced-integration-test.js.map +0 -1
  394. package/dist/queen/agent-factory.d.ts.map +0 -1
  395. package/dist/queen/agent-factory.js.map +0 -1
  396. package/dist/queen/index.d.ts.map +0 -1
  397. package/dist/queen/index.js.map +0 -1
  398. package/dist/queen/integration-example.d.ts.map +0 -1
  399. package/dist/queen/integration-example.js.map +0 -1
  400. package/dist/queen/integration-test.d.ts.map +0 -1
  401. package/dist/queen/integration-test.js.map +0 -1
  402. package/dist/queen/mcp-execution-bridge.d.ts.map +0 -1
  403. package/dist/queen/mcp-execution-bridge.js.map +0 -1
  404. package/dist/queen/mock-mcp-client.d.ts.map +0 -1
  405. package/dist/queen/mock-mcp-client.js.map +0 -1
  406. package/dist/queen/neural-learning.d.ts.map +0 -1
  407. package/dist/queen/neural-learning.js.map +0 -1
  408. package/dist/queen/parallel-agent-engine.d.ts.map +0 -1
  409. package/dist/queen/parallel-agent-engine.js.map +0 -1
  410. package/dist/queen/queen-memory-system.d.ts.map +0 -1
  411. package/dist/queen/queen-memory-system.js.map +0 -1
  412. package/dist/queen/queen-memory.d.ts.map +0 -1
  413. package/dist/queen/queen-memory.js.map +0 -1
  414. package/dist/queen/run-integration-tests.d.ts.map +0 -1
  415. package/dist/queen/run-integration-tests.js.map +0 -1
  416. package/dist/queen/servicenow-queen.d.ts.map +0 -1
  417. package/dist/queen/servicenow-queen.js.map +0 -1
  418. package/dist/queen/types.d.ts.map +0 -1
  419. package/dist/queen/types.js.map +0 -1
  420. package/dist/rollback/smart-rollback-system.d.ts.map +0 -1
  421. package/dist/rollback/smart-rollback-system.js.map +0 -1
  422. package/dist/snow-flow-system.d.ts.map +0 -1
  423. package/dist/snow-flow-system.js.map +0 -1
  424. package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +0 -1
  425. package/dist/sparc/coordinators/adaptive-coordinator.js.map +0 -1
  426. package/dist/sparc/coordinators/team-coordinator.d.ts.map +0 -1
  427. package/dist/sparc/coordinators/team-coordinator.js.map +0 -1
  428. package/dist/sparc/modes/team-modes.d.ts.map +0 -1
  429. package/dist/sparc/modes/team-modes.js.map +0 -1
  430. package/dist/sparc/sparc-help.d.ts.map +0 -1
  431. package/dist/sparc/sparc-help.js.map +0 -1
  432. package/dist/sparc/team-sparc.d.ts.map +0 -1
  433. package/dist/sparc/team-sparc.js.map +0 -1
  434. package/dist/sparc/teams/application-team.d.ts.map +0 -1
  435. package/dist/sparc/teams/application-team.js.map +0 -1
  436. package/dist/sparc/teams/flow-team.d.ts.map +0 -1
  437. package/dist/sparc/teams/flow-team.js.map +0 -1
  438. package/dist/sparc/teams/widget-team.d.ts.map +0 -1
  439. package/dist/sparc/teams/widget-team.js.map +0 -1
  440. package/dist/specialists/app-specialists.d.ts.map +0 -1
  441. package/dist/specialists/app-specialists.js.map +0 -1
  442. package/dist/specialists/base-specialist.d.ts.map +0 -1
  443. package/dist/specialists/base-specialist.js.map +0 -1
  444. package/dist/specialists/flow-specialists.d.ts.map +0 -1
  445. package/dist/specialists/flow-specialists.js.map +0 -1
  446. package/dist/specialists/individual-specialists.d.ts.map +0 -1
  447. package/dist/specialists/individual-specialists.js.map +0 -1
  448. package/dist/specialists/widget-specialists.d.ts.map +0 -1
  449. package/dist/specialists/widget-specialists.js.map +0 -1
  450. package/dist/strategies/global-scope-strategy.d.ts.map +0 -1
  451. package/dist/strategies/global-scope-strategy.js.map +0 -1
  452. package/dist/teams/adaptive-team.d.ts.map +0 -1
  453. package/dist/teams/adaptive-team.js.map +0 -1
  454. package/dist/teams/application-team.d.ts.map +0 -1
  455. package/dist/teams/application-team.js.map +0 -1
  456. package/dist/teams/base-team.d.ts.map +0 -1
  457. package/dist/teams/base-team.js.map +0 -1
  458. package/dist/teams/flow-team.d.ts.map +0 -1
  459. package/dist/teams/flow-team.js.map +0 -1
  460. package/dist/teams/widget-team.d.ts.map +0 -1
  461. package/dist/teams/widget-team.js.map +0 -1
  462. package/dist/testing/integration-test-suite.d.ts.map +0 -1
  463. package/dist/testing/integration-test-suite.js.map +0 -1
  464. package/dist/types/index.d.ts.map +0 -1
  465. package/dist/types/index.js.map +0 -1
  466. package/dist/types/servicenow.types.d.ts.map +0 -1
  467. package/dist/types/servicenow.types.js.map +0 -1
  468. package/dist/types/snow-flow.types.d.ts.map +0 -1
  469. package/dist/types/snow-flow.types.js.map +0 -1
  470. package/dist/types/todo.types.d.ts.map +0 -1
  471. package/dist/types/todo.types.js.map +0 -1
  472. package/dist/utils/action-type-cache.d.ts.map +0 -1
  473. package/dist/utils/action-type-cache.js.map +0 -1
  474. package/dist/utils/agent-detector.d.ts.map +0 -1
  475. package/dist/utils/agent-detector.js.map +0 -1
  476. package/dist/utils/artifact-tracker.d.ts.map +0 -1
  477. package/dist/utils/artifact-tracker.js.map +0 -1
  478. package/dist/utils/dependency-detector.d.ts.map +0 -1
  479. package/dist/utils/dependency-detector.js.map +0 -1
  480. package/dist/utils/deployment-metadata-handler.d.ts.map +0 -1
  481. package/dist/utils/deployment-metadata-handler.js.map +0 -1
  482. package/dist/utils/error-recovery.d.ts.map +0 -1
  483. package/dist/utils/error-recovery.js.map +0 -1
  484. package/dist/utils/flow-api-discovery.d.ts.map +0 -1
  485. package/dist/utils/flow-api-discovery.js.map +0 -1
  486. package/dist/utils/flow-xml-generator.d.ts.map +0 -1
  487. package/dist/utils/flow-xml-generator.js.map +0 -1
  488. package/dist/utils/logger.d.ts.map +0 -1
  489. package/dist/utils/logger.js.map +0 -1
  490. package/dist/utils/mcp-auth-middleware.d.ts.map +0 -1
  491. package/dist/utils/mcp-auth-middleware.js.map +0 -1
  492. package/dist/utils/mcp-config-manager.d.ts.map +0 -1
  493. package/dist/utils/mcp-config-manager.js.map +0 -1
  494. package/dist/utils/mcp-server-manager.d.ts.map +0 -1
  495. package/dist/utils/mcp-server-manager.js.map +0 -1
  496. package/dist/utils/mcp-tool-registry.d.ts.map +0 -1
  497. package/dist/utils/mcp-tool-registry.js.map +0 -1
  498. package/dist/utils/migrate-claude-flow.d.ts.map +0 -1
  499. package/dist/utils/migrate-claude-flow.js.map +0 -1
  500. package/dist/utils/migrate-snow-flow.d.ts.map +0 -1
  501. package/dist/utils/migrate-snow-flow.js.map +0 -1
  502. package/dist/utils/oauth-html-templates.d.ts.map +0 -1
  503. package/dist/utils/oauth-html-templates.js.map +0 -1
  504. package/dist/utils/scope-utils.d.ts.map +0 -1
  505. package/dist/utils/scope-utils.js.map +0 -1
  506. package/dist/utils/servicenow-client.d.ts.map +0 -1
  507. package/dist/utils/servicenow-client.js.map +0 -1
  508. package/dist/utils/servicenow-id-generator.d.ts.map +0 -1
  509. package/dist/utils/servicenow-id-generator.js.map +0 -1
  510. package/dist/utils/snow-memory-manager.d.ts.map +0 -1
  511. package/dist/utils/snow-memory-manager.js.map +0 -1
  512. package/dist/utils/snow-oauth-old.d.ts.map +0 -1
  513. package/dist/utils/snow-oauth-old.js.map +0 -1
  514. package/dist/utils/snow-oauth.d.ts.map +0 -1
  515. package/dist/utils/snow-oauth.js.map +0 -1
  516. package/dist/utils/template-engine.d.ts.map +0 -1
  517. package/dist/utils/template-engine.js.map +0 -1
  518. package/dist/utils/theme-manager.d.ts.map +0 -1
  519. package/dist/utils/theme-manager.js.map +0 -1
  520. package/dist/utils/unified-auth-store.d.ts.map +0 -1
  521. package/dist/utils/unified-auth-store.js.map +0 -1
  522. package/dist/utils/update-set-importer.d.ts.map +0 -1
  523. package/dist/utils/update-set-importer.js.map +0 -1
  524. package/dist/utils/update-set-xml-packager.d.ts.map +0 -1
  525. package/dist/utils/update-set-xml-packager.js.map +0 -1
  526. package/dist/utils/widget-template-generator.d.ts.map +0 -1
  527. package/dist/utils/widget-template-generator.js.map +0 -1
  528. package/dist/version.d.ts.map +0 -1
  529. package/dist/version.js.map +0 -1
@@ -0,0 +1,866 @@
1
+ /**
2
+ * 🚀 Smart Rollback System for Deployment Failures
3
+ *
4
+ * Advanced rollback system that automatically detects deployment failures,
5
+ * creates recovery plans, and executes intelligent rollback strategies
6
+ * with minimal downtime and data preservation.
7
+ */
8
+
9
+ import { Logger } from '../utils/logger.js';
10
+ import { ServiceNowClient } from '../utils/servicenow-client.js';
11
+ import { MemorySystem } from '../memory/memory-system.js';
12
+ // Flow generator removed in v1.4.0
13
+ // import { XMLFlowDefinition } from '../utils/xml-first-flow-generator.js';
14
+
15
+ export interface RollbackPoint {
16
+ id: string;
17
+ name: string;
18
+ description: string;
19
+ createdAt: string;
20
+ type: 'automatic' | 'manual' | 'scheduled';
21
+ trigger: RollbackTrigger;
22
+ snapshot: SystemSnapshot;
23
+ metadata: {
24
+ deploymentId?: string;
25
+ updateSetId?: string;
26
+ userId: string;
27
+ environment: string;
28
+ artifacts: ArtifactBackup[];
29
+ };
30
+ status: 'active' | 'used' | 'expired' | 'corrupted';
31
+ retentionPolicy: RetentionPolicy;
32
+ }
33
+
34
+ export interface RollbackTrigger {
35
+ type: 'deployment_failure' | 'performance_degradation' | 'error_threshold' | 'manual' | 'scheduled';
36
+ condition?: string;
37
+ threshold?: {
38
+ metric: string;
39
+ value: number;
40
+ operator: '<' | '>' | '=' | '<=' | '>=';
41
+ };
42
+ timeWindow?: number; // milliseconds
43
+ severity: 'low' | 'medium' | 'high' | 'critical';
44
+ }
45
+
46
+ export interface SystemSnapshot {
47
+ timestamp: string;
48
+ version: string;
49
+ components: ComponentSnapshot[];
50
+ dependencies: DependencyMap[];
51
+ configuration: ConfigurationSnapshot;
52
+ data: DataSnapshot;
53
+ integrity: IntegrityCheck;
54
+ }
55
+
56
+ export interface ComponentSnapshot {
57
+ type: 'flow' | 'widget' | 'script' | 'table' | 'business_rule' | 'client_script';
58
+ id: string;
59
+ name: string;
60
+ state: any;
61
+ version: string;
62
+ dependencies: string[];
63
+ checksum: string;
64
+ }
65
+
66
+ export interface DependencyMap {
67
+ from: string;
68
+ to: string;
69
+ type: 'required' | 'optional' | 'circular';
70
+ version?: string;
71
+ }
72
+
73
+ export interface ConfigurationSnapshot {
74
+ updateSets: UpdateSetBackup[];
75
+ systemProperties: Record<string, any>;
76
+ userPermissions: PermissionSnapshot[];
77
+ activeSchedules: ScheduleSnapshot[];
78
+ }
79
+
80
+ export interface DataSnapshot {
81
+ criticalTables: TableBackup[];
82
+ recentChanges: ChangeRecord[];
83
+ transactionLog: TransactionEntry[];
84
+ consistencyCheck: ConsistencyResult;
85
+ }
86
+
87
+ export interface ArtifactBackup {
88
+ type: string;
89
+ id: string;
90
+ name: string;
91
+ content: string;
92
+ checksum: string;
93
+ dependencies: string[];
94
+ backupLocation: string;
95
+ }
96
+
97
+ export interface UpdateSetBackup {
98
+ sys_id: string;
99
+ name: string;
100
+ state: string;
101
+ xml: string;
102
+ changes: ChangeRecord[];
103
+ }
104
+
105
+ export interface PermissionSnapshot {
106
+ userId: string;
107
+ roles: string[];
108
+ groups: string[];
109
+ permissions: string[];
110
+ }
111
+
112
+ export interface ScheduleSnapshot {
113
+ id: string;
114
+ name: string;
115
+ type: string;
116
+ schedule: string;
117
+ active: boolean;
118
+ }
119
+
120
+ export interface TableBackup {
121
+ name: string;
122
+ records: Record<string, any>[];
123
+ schema: TableSchema;
124
+ indexes: IndexDefinition[];
125
+ }
126
+
127
+ export interface ChangeRecord {
128
+ table: string;
129
+ sys_id: string;
130
+ operation: 'insert' | 'update' | 'delete';
131
+ before?: any;
132
+ after?: any;
133
+ timestamp: string;
134
+ user: string;
135
+ }
136
+
137
+ export interface TransactionEntry {
138
+ id: string;
139
+ timestamp: string;
140
+ operation: string;
141
+ success: boolean;
142
+ error?: string;
143
+ rollbackable: boolean;
144
+ }
145
+
146
+ export interface TableSchema {
147
+ fields: FieldDefinition[];
148
+ relationships: RelationshipDefinition[];
149
+ constraints: ConstraintDefinition[];
150
+ }
151
+
152
+ export interface FieldDefinition {
153
+ name: string;
154
+ type: string;
155
+ nullable: boolean;
156
+ defaultValue?: any;
157
+ }
158
+
159
+ export interface RelationshipDefinition {
160
+ type: 'one_to_one' | 'one_to_many' | 'many_to_many';
161
+ fromTable: string;
162
+ toTable: string;
163
+ fromField: string;
164
+ toField: string;
165
+ }
166
+
167
+ export interface ConstraintDefinition {
168
+ name: string;
169
+ type: 'primary_key' | 'foreign_key' | 'unique' | 'check';
170
+ fields: string[];
171
+ reference?: string;
172
+ }
173
+
174
+ export interface IndexDefinition {
175
+ name: string;
176
+ fields: string[];
177
+ unique: boolean;
178
+ type: 'btree' | 'hash' | 'gist' | 'gin';
179
+ }
180
+
181
+ export interface IntegrityCheck {
182
+ checksum: string;
183
+ timestamp: string;
184
+ valid: boolean;
185
+ errors: string[];
186
+ }
187
+
188
+ export interface ConsistencyResult {
189
+ valid: boolean;
190
+ issues: ConsistencyIssue[];
191
+ recommendations: string[];
192
+ }
193
+
194
+ export interface ConsistencyIssue {
195
+ severity: 'low' | 'medium' | 'high' | 'critical';
196
+ type: 'referential_integrity' | 'data_corruption' | 'orphaned_records' | 'duplicate_keys';
197
+ description: string;
198
+ affectedRecords: string[];
199
+ autoFixable: boolean;
200
+ }
201
+
202
+ export interface RetentionPolicy {
203
+ maxAge: number; // milliseconds
204
+ maxCount: number;
205
+ compressionEnabled: boolean;
206
+ archiveLocation?: string;
207
+ }
208
+
209
+ export interface RollbackPlan {
210
+ id: string;
211
+ name: string;
212
+ description: string;
213
+ createdAt: string;
214
+ rollbackPointId: string;
215
+ strategy: RollbackStrategy;
216
+ steps: RollbackStep[];
217
+ estimatedTime: number;
218
+ riskLevel: 'low' | 'medium' | 'high' | 'critical';
219
+ impactAssessment: ImpactAssessment;
220
+ validationChecks: ValidationCheck[];
221
+ }
222
+
223
+ export interface RollbackStrategy {
224
+ type: 'full_restore' | 'selective_restore' | 'incremental_rollback' | 'blue_green_switch';
225
+ approach: 'aggressive' | 'conservative' | 'minimal_impact';
226
+ preserveData: boolean;
227
+ maintainSessions: boolean;
228
+ downtime: 'zero' | 'minimal' | 'scheduled';
229
+ }
230
+
231
+ export interface RollbackStep {
232
+ order: number;
233
+ name: string;
234
+ description: string;
235
+ action: string;
236
+ parameters: Record<string, any>;
237
+ reversible: boolean;
238
+ critical: boolean;
239
+ estimatedTime: number;
240
+ dependencies: string[];
241
+ validationRequired: boolean;
242
+ }
243
+
244
+ export interface ImpactAssessment {
245
+ affectedUsers: number;
246
+ affectedSystems: string[];
247
+ dataLoss: 'none' | 'minimal' | 'moderate' | 'significant';
248
+ downtime: number; // milliseconds
249
+ businessImpact: 'low' | 'medium' | 'high' | 'critical';
250
+ complianceViolations: string[];
251
+ }
252
+
253
+ export interface ValidationCheck {
254
+ name: string;
255
+ description: string;
256
+ type: 'pre_rollback' | 'post_rollback' | 'continuous';
257
+ script: string;
258
+ expectedResult: any;
259
+ critical: boolean;
260
+ timeout: number;
261
+ }
262
+
263
+ export interface RollbackExecution {
264
+ planId: string;
265
+ executionId: string;
266
+ startTime: string;
267
+ endTime?: string;
268
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
269
+ progress: number;
270
+ currentStep?: number;
271
+ results: StepResult[];
272
+ issues: ExecutionIssue[];
273
+ metrics: ExecutionMetrics;
274
+ }
275
+
276
+ export interface StepResult {
277
+ stepOrder: number;
278
+ name: string;
279
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
280
+ startTime: string;
281
+ endTime?: string;
282
+ result?: any;
283
+ error?: string;
284
+ validationResults: ValidationResult[];
285
+ }
286
+
287
+ export interface ValidationResult {
288
+ check: string;
289
+ passed: boolean;
290
+ message: string;
291
+ expected: any;
292
+ actual: any;
293
+ }
294
+
295
+ export interface ExecutionIssue {
296
+ severity: 'low' | 'medium' | 'high' | 'critical';
297
+ type: 'validation_failure' | 'step_failure' | 'timeout' | 'dependency_error';
298
+ description: string;
299
+ step?: number;
300
+ resolution?: string;
301
+ autoResolved: boolean;
302
+ }
303
+
304
+ export interface ExecutionMetrics {
305
+ totalSteps: number;
306
+ completedSteps: number;
307
+ failedSteps: number;
308
+ skippedSteps: number;
309
+ totalTime: number;
310
+ averageStepTime: number;
311
+ resourceUsage: ResourceUsage;
312
+ }
313
+
314
+ export interface ResourceUsage {
315
+ memory: number;
316
+ cpu: number;
317
+ disk: number;
318
+ network: number;
319
+ }
320
+
321
+ export class SmartRollbackSystem {
322
+ private logger: Logger;
323
+ private client: ServiceNowClient;
324
+ private memory: MemorySystem;
325
+ private rollbackPoints: Map<string, RollbackPoint> = new Map();
326
+ private rollbackPlans: Map<string, RollbackPlan> = new Map();
327
+ private activeExecutions: Map<string, RollbackExecution> = new Map();
328
+ private monitoringEnabled: boolean = true;
329
+
330
+ constructor(client: ServiceNowClient, memory: MemorySystem) {
331
+ this.logger = new Logger('SmartRollbackSystem');
332
+ this.client = client;
333
+ this.memory = memory;
334
+
335
+ // Start monitoring for automatic rollback triggers
336
+ this.startMonitoring();
337
+ }
338
+
339
+ /**
340
+ * Create a new rollback point before deployment
341
+ */
342
+ async createRollbackPoint(
343
+ name: string,
344
+ description: string,
345
+ options: {
346
+ type?: 'automatic' | 'manual' | 'scheduled';
347
+ triggers?: RollbackTrigger[];
348
+ includeData?: boolean;
349
+ compressionEnabled?: boolean;
350
+ } = {}
351
+ ): Promise<RollbackPoint> {
352
+ this.logger.info('🔄 Creating rollback point', { name, options });
353
+
354
+ const rollbackPointId = `rb_${Date.now()}_${Math.random().toString(36).substr(2, 8)}`;
355
+
356
+ try {
357
+ // Create system snapshot
358
+ const snapshot = await this.createSystemSnapshot(options.includeData || false);
359
+
360
+ // Create rollback point
361
+ const rollbackPoint: RollbackPoint = {
362
+ id: rollbackPointId,
363
+ name,
364
+ description,
365
+ createdAt: new Date().toISOString(),
366
+ type: options.type || 'manual',
367
+ trigger: {
368
+ type: 'manual',
369
+ severity: 'medium'
370
+ },
371
+ snapshot,
372
+ metadata: {
373
+ userId: 'system',
374
+ environment: process.env.NODE_ENV || 'development',
375
+ artifacts: []
376
+ },
377
+ status: 'active',
378
+ retentionPolicy: {
379
+ maxAge: 604800000, // 7 days
380
+ maxCount: 10,
381
+ compressionEnabled: options.compressionEnabled || true
382
+ }
383
+ };
384
+
385
+ // Store rollback point
386
+ this.rollbackPoints.set(rollbackPointId, rollbackPoint);
387
+ await this.memory.store(`rollback_point_${rollbackPointId}`, rollbackPoint, rollbackPoint.retentionPolicy.maxAge);
388
+
389
+ // Clean up old rollback points
390
+ await this.cleanupOldRollbackPoints();
391
+
392
+ this.logger.info('✅ Rollback point created successfully', {
393
+ id: rollbackPointId,
394
+ snapshotSize: JSON.stringify(snapshot).length,
395
+ artifactsCount: rollbackPoint.metadata.artifacts.length
396
+ });
397
+
398
+ return rollbackPoint;
399
+
400
+ } catch (error) {
401
+ this.logger.error('❌ Failed to create rollback point', error);
402
+ throw error;
403
+ }
404
+ }
405
+
406
+ /**
407
+ * Generate intelligent rollback plan
408
+ */
409
+ async generateRollbackPlan(
410
+ rollbackPointId: string,
411
+ options: {
412
+ strategy?: 'conservative' | 'aggressive' | 'minimal_impact';
413
+ preserveData?: boolean;
414
+ targetDowntime?: number;
415
+ } = {}
416
+ ): Promise<RollbackPlan> {
417
+ this.logger.info('📋 Generating rollback plan', { rollbackPointId, options });
418
+
419
+ const rollbackPoint = this.rollbackPoints.get(rollbackPointId);
420
+ if (!rollbackPoint) {
421
+ throw new Error(`Rollback point not found: ${rollbackPointId}`);
422
+ }
423
+
424
+ const planId = `plan_${Date.now()}_${Math.random().toString(36).substr(2, 6)}`;
425
+
426
+ try {
427
+ // Analyze current system state vs rollback point
428
+ const currentSnapshot = await this.createSystemSnapshot(false);
429
+ const differences = this.analyzeDifferences(rollbackPoint.snapshot, currentSnapshot);
430
+
431
+ // Determine rollback strategy
432
+ const strategy = this.determineOptimalStrategy(differences, options);
433
+
434
+ // Generate rollback steps
435
+ const steps = await this.generateRollbackSteps(differences, strategy);
436
+
437
+ // Assess impact
438
+ const impactAssessment = this.assessRollbackImpact(differences, strategy);
439
+
440
+ // Generate validation checks
441
+ const validationChecks = this.generateValidationChecks(rollbackPoint, steps);
442
+
443
+ const rollbackPlan: RollbackPlan = {
444
+ id: planId,
445
+ name: `Rollback to: ${rollbackPoint.name}`,
446
+ description: `Intelligent rollback plan generated for rollback point: ${rollbackPoint.name}`,
447
+ createdAt: new Date().toISOString(),
448
+ rollbackPointId,
449
+ strategy,
450
+ steps,
451
+ estimatedTime: steps.reduce((total, step) => total + step.estimatedTime, 0),
452
+ riskLevel: this.calculateRiskLevel(impactAssessment, strategy),
453
+ impactAssessment,
454
+ validationChecks
455
+ };
456
+
457
+ // Store rollback plan
458
+ this.rollbackPlans.set(planId, rollbackPlan);
459
+ await this.memory.store(`rollback_plan_${planId}`, rollbackPlan, 86400000); // 24 hours
460
+
461
+ this.logger.info('✅ Rollback plan generated', {
462
+ planId,
463
+ stepsCount: steps.length,
464
+ estimatedTime: rollbackPlan.estimatedTime,
465
+ riskLevel: rollbackPlan.riskLevel
466
+ });
467
+
468
+ return rollbackPlan;
469
+
470
+ } catch (error) {
471
+ this.logger.error('❌ Failed to generate rollback plan', error);
472
+ throw error;
473
+ }
474
+ }
475
+
476
+ /**
477
+ * Execute rollback plan with monitoring
478
+ */
479
+ async executeRollbackPlan(
480
+ planId: string,
481
+ options: {
482
+ dryRun?: boolean;
483
+ skipValidation?: boolean;
484
+ continueOnError?: boolean;
485
+ } = {}
486
+ ): Promise<RollbackExecution> {
487
+ this.logger.info('🚀 Executing rollback plan', { planId, options });
488
+
489
+ const plan = this.rollbackPlans.get(planId);
490
+ if (!plan) {
491
+ throw new Error(`Rollback plan not found: ${planId}`);
492
+ }
493
+
494
+ const executionId = `exec_${Date.now()}_${Math.random().toString(36).substr(2, 6)}`;
495
+
496
+ const execution: RollbackExecution = {
497
+ planId,
498
+ executionId,
499
+ startTime: new Date().toISOString(),
500
+ status: 'pending',
501
+ progress: 0,
502
+ results: [],
503
+ issues: [],
504
+ metrics: {
505
+ totalSteps: plan.steps.length,
506
+ completedSteps: 0,
507
+ failedSteps: 0,
508
+ skippedSteps: 0,
509
+ totalTime: 0,
510
+ averageStepTime: 0,
511
+ resourceUsage: {
512
+ memory: 0,
513
+ cpu: 0,
514
+ disk: 0,
515
+ network: 0
516
+ }
517
+ }
518
+ };
519
+
520
+ this.activeExecutions.set(executionId, execution);
521
+
522
+ try {
523
+ execution.status = 'running';
524
+
525
+ // Pre-rollback validation
526
+ if (!options.skipValidation) {
527
+ await this.runValidationChecks(plan, 'pre_rollback', execution);
528
+ }
529
+
530
+ // Execute rollback steps
531
+ for (let i = 0; i < plan.steps.length; i++) {
532
+ const step = plan.steps[i];
533
+ execution.currentStep = i + 1;
534
+ execution.progress = ((i + 1) / plan.steps.length) * 100;
535
+
536
+ this.logger.info(`Executing step ${i + 1}/${plan.steps.length}: ${step.name}`);
537
+
538
+ const stepResult = await this.executeRollbackStep(step, options.dryRun || false, execution);
539
+ execution.results.push(stepResult);
540
+
541
+ if (stepResult.status === 'failed') {
542
+ execution.metrics.failedSteps++;
543
+
544
+ if (step.critical && !options.continueOnError) {
545
+ execution.issues.push({
546
+ severity: 'critical',
547
+ type: 'step_failure',
548
+ description: `Critical step failed: ${step.name}`,
549
+ step: i + 1,
550
+ autoResolved: false
551
+ });
552
+
553
+ execution.status = 'failed';
554
+ break;
555
+ }
556
+ } else if (stepResult.status === 'completed') {
557
+ execution.metrics.completedSteps++;
558
+ } else if (stepResult.status === 'skipped') {
559
+ execution.metrics.skippedSteps++;
560
+ }
561
+
562
+ // Update metrics
563
+ await this.updateExecutionMetrics(execution);
564
+ }
565
+
566
+ // Post-rollback validation
567
+ if (!options.skipValidation && execution.status !== 'failed') {
568
+ await this.runValidationChecks(plan, 'post_rollback', execution);
569
+ }
570
+
571
+ // Finalize execution
572
+ if (execution.status === 'running') {
573
+ execution.status = 'completed';
574
+ }
575
+
576
+ execution.endTime = new Date().toISOString();
577
+ execution.progress = 100;
578
+ execution.metrics.totalTime = Date.now() - new Date(execution.startTime).getTime();
579
+ execution.metrics.averageStepTime = execution.metrics.totalTime / execution.metrics.totalSteps;
580
+
581
+ this.logger.info('✅ Rollback execution completed', {
582
+ executionId,
583
+ status: execution.status,
584
+ completedSteps: execution.metrics.completedSteps,
585
+ failedSteps: execution.metrics.failedSteps,
586
+ totalTime: execution.metrics.totalTime
587
+ });
588
+
589
+ return execution;
590
+
591
+ } catch (error) {
592
+ execution.status = 'failed';
593
+ execution.endTime = new Date().toISOString();
594
+ execution.issues.push({
595
+ severity: 'critical',
596
+ type: 'step_failure',
597
+ description: `Rollback execution failed: ${error instanceof Error ? error.message : String(error)}`,
598
+ autoResolved: false
599
+ });
600
+
601
+ this.logger.error('❌ Rollback execution failed', error);
602
+ throw error;
603
+
604
+ } finally {
605
+ // Store execution results
606
+ await this.memory.store(`rollback_execution_${executionId}`, execution, 604800000); // 7 days
607
+ this.activeExecutions.delete(executionId);
608
+ }
609
+ }
610
+
611
+ /**
612
+ * Get rollback points with filtering
613
+ */
614
+ getRollbackPoints(filter?: {
615
+ type?: string;
616
+ status?: string;
617
+ maxAge?: number;
618
+ }): RollbackPoint[] {
619
+ let points = Array.from(this.rollbackPoints.values());
620
+
621
+ if (filter) {
622
+ if (filter.type) {
623
+ points = points.filter(p => p.type === filter.type);
624
+ }
625
+ if (filter.status) {
626
+ points = points.filter(p => p.status === filter.status);
627
+ }
628
+ if (filter.maxAge) {
629
+ const cutoff = Date.now() - filter.maxAge;
630
+ points = points.filter(p => new Date(p.createdAt).getTime() > cutoff);
631
+ }
632
+ }
633
+
634
+ return points.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
635
+ }
636
+
637
+ /**
638
+ * Get active rollback executions
639
+ */
640
+ getActiveExecutions(): RollbackExecution[] {
641
+ return Array.from(this.activeExecutions.values());
642
+ }
643
+
644
+ /**
645
+ * Cancel active rollback execution
646
+ */
647
+ async cancelExecution(executionId: string): Promise<boolean> {
648
+ const execution = this.activeExecutions.get(executionId);
649
+ if (!execution) {
650
+ return false;
651
+ }
652
+
653
+ execution.status = 'cancelled';
654
+ execution.endTime = new Date().toISOString();
655
+
656
+ this.logger.info('🛑 Rollback execution cancelled', { executionId });
657
+ return true;
658
+ }
659
+
660
+ /**
661
+ * Private helper methods
662
+ */
663
+
664
+ private async createSystemSnapshot(includeData: boolean): Promise<SystemSnapshot> {
665
+ // Implementation for creating comprehensive system snapshot
666
+ return {
667
+ timestamp: new Date().toISOString(),
668
+ version: '1.0.0',
669
+ components: [],
670
+ dependencies: [],
671
+ configuration: {
672
+ updateSets: [],
673
+ systemProperties: {},
674
+ userPermissions: [],
675
+ activeSchedules: []
676
+ },
677
+ data: {
678
+ criticalTables: [],
679
+ recentChanges: [],
680
+ transactionLog: [],
681
+ consistencyCheck: {
682
+ valid: true,
683
+ issues: [],
684
+ recommendations: []
685
+ }
686
+ },
687
+ integrity: {
688
+ checksum: 'placeholder',
689
+ timestamp: new Date().toISOString(),
690
+ valid: true,
691
+ errors: []
692
+ }
693
+ };
694
+ }
695
+
696
+ private analyzeDifferences(originalSnapshot: SystemSnapshot, currentSnapshot: SystemSnapshot): any {
697
+ // Implementation for analyzing differences between snapshots
698
+ return {
699
+ componentChanges: [],
700
+ configurationChanges: [],
701
+ dataChanges: [],
702
+ severity: 'medium'
703
+ };
704
+ }
705
+
706
+ private determineOptimalStrategy(differences: any, options: any): RollbackStrategy {
707
+ // Implementation for determining optimal rollback strategy
708
+ return {
709
+ type: 'selective_restore',
710
+ approach: options.strategy || 'conservative',
711
+ preserveData: options.preserveData !== false,
712
+ maintainSessions: true,
713
+ downtime: 'minimal'
714
+ };
715
+ }
716
+
717
+ private async generateRollbackSteps(differences: any, strategy: RollbackStrategy): Promise<RollbackStep[]> {
718
+ // Implementation for generating rollback steps
719
+ return [
720
+ {
721
+ order: 1,
722
+ name: 'Create backup',
723
+ description: 'Create backup of current state before rollback',
724
+ action: 'backup_current_state',
725
+ parameters: {},
726
+ reversible: false,
727
+ critical: true,
728
+ estimatedTime: 30000,
729
+ dependencies: [],
730
+ validationRequired: true
731
+ }
732
+ ];
733
+ }
734
+
735
+ private assessRollbackImpact(differences: any, strategy: RollbackStrategy): ImpactAssessment {
736
+ // Implementation for assessing rollback impact
737
+ return {
738
+ affectedUsers: 0,
739
+ affectedSystems: [],
740
+ dataLoss: 'none',
741
+ downtime: 0,
742
+ businessImpact: 'low',
743
+ complianceViolations: []
744
+ };
745
+ }
746
+
747
+ private generateValidationChecks(rollbackPoint: RollbackPoint, steps: RollbackStep[]): ValidationCheck[] {
748
+ // Implementation for generating validation checks
749
+ return [
750
+ {
751
+ name: 'System Health Check',
752
+ description: 'Verify system is healthy after rollback',
753
+ type: 'post_rollback',
754
+ script: 'return system.isHealthy();',
755
+ expectedResult: true,
756
+ critical: true,
757
+ timeout: 30000
758
+ }
759
+ ];
760
+ }
761
+
762
+ private calculateRiskLevel(impact: ImpactAssessment, strategy: RollbackStrategy): 'low' | 'medium' | 'high' | 'critical' {
763
+ // Implementation for calculating risk level
764
+ return 'medium';
765
+ }
766
+
767
+ private async executeRollbackStep(step: RollbackStep, dryRun: boolean, execution: RollbackExecution): Promise<StepResult> {
768
+ const stepResult: StepResult = {
769
+ stepOrder: step.order,
770
+ name: step.name,
771
+ status: 'running',
772
+ startTime: new Date().toISOString(),
773
+ validationResults: []
774
+ };
775
+
776
+ try {
777
+ if (dryRun) {
778
+ this.logger.info(`[DRY RUN] Would execute: ${step.name}`);
779
+ stepResult.status = 'completed';
780
+ stepResult.result = { dryRun: true, message: 'Step would be executed' };
781
+ } else {
782
+ // Actual step execution logic would go here
783
+ stepResult.status = 'completed';
784
+ stepResult.result = { success: true };
785
+ }
786
+
787
+ stepResult.endTime = new Date().toISOString();
788
+ return stepResult;
789
+
790
+ } catch (error) {
791
+ stepResult.status = 'failed';
792
+ stepResult.error = error instanceof Error ? error.message : String(error);
793
+ stepResult.endTime = new Date().toISOString();
794
+
795
+ this.logger.error(`Step failed: ${step.name}`, error);
796
+ return stepResult;
797
+ }
798
+ }
799
+
800
+ private async runValidationChecks(plan: RollbackPlan, type: string, execution: RollbackExecution): Promise<void> {
801
+ const checks = plan.validationChecks.filter(check => check.type === type);
802
+
803
+ for (const check of checks) {
804
+ try {
805
+ // Run validation check logic
806
+ this.logger.info(`Running validation: ${check.name}`);
807
+ } catch (error) {
808
+ if (check.critical) {
809
+ throw error;
810
+ }
811
+ this.logger.warn(`Non-critical validation failed: ${check.name}`, error);
812
+ }
813
+ }
814
+ }
815
+
816
+ private async updateExecutionMetrics(execution: RollbackExecution): Promise<void> {
817
+ // Update execution metrics with current resource usage
818
+ execution.metrics.resourceUsage = {
819
+ memory: process.memoryUsage().heapUsed,
820
+ cpu: 0, // Would be calculated from system metrics
821
+ disk: 0,
822
+ network: 0
823
+ };
824
+ }
825
+
826
+ private async cleanupOldRollbackPoints(): Promise<void> {
827
+ const now = Date.now();
828
+ const pointsToDelete: string[] = [];
829
+
830
+ for (const [id, point] of this.rollbackPoints.entries()) {
831
+ const age = now - new Date(point.createdAt).getTime();
832
+ if (age > point.retentionPolicy.maxAge) {
833
+ pointsToDelete.push(id);
834
+ }
835
+ }
836
+
837
+ for (const id of pointsToDelete) {
838
+ this.rollbackPoints.delete(id);
839
+ await this.memory.delete(`rollback_point_${id}`);
840
+ }
841
+
842
+ if (pointsToDelete.length > 0) {
843
+ this.logger.info(`Cleaned up ${pointsToDelete.length} expired rollback points`);
844
+ }
845
+ }
846
+
847
+ private startMonitoring(): void {
848
+ if (!this.monitoringEnabled) return;
849
+
850
+ // Start monitoring for automatic rollback triggers
851
+ setInterval(async () => {
852
+ try {
853
+ await this.checkAutomaticTriggers();
854
+ } catch (error) {
855
+ this.logger.error('Error in automatic trigger monitoring', error);
856
+ }
857
+ }, 30000); // Check every 30 seconds
858
+ }
859
+
860
+ private async checkAutomaticTriggers(): Promise<void> {
861
+ // Implementation for checking automatic rollback triggers
862
+ // This would monitor system health, performance metrics, error rates, etc.
863
+ }
864
+ }
865
+
866
+ export default SmartRollbackSystem;