snow-flow 1.4.49 → 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 (595) 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 +1992 -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/.claude/commands/memory/README.md +0 -9
  155. package/dist/agents/app-creator.agent.d.ts.map +0 -1
  156. package/dist/agents/app-creator.agent.js.map +0 -1
  157. package/dist/agents/base/base-snow-agent.d.ts.map +0 -1
  158. package/dist/agents/base/base-snow-agent.js.map +0 -1
  159. package/dist/agents/base-agent.d.ts.map +0 -1
  160. package/dist/agents/base-agent.js.map +0 -1
  161. package/dist/agents/base-snow-agent.d.ts.map +0 -1
  162. package/dist/agents/base-snow-agent.js.map +0 -1
  163. package/dist/agents/coordinator.d.ts.map +0 -1
  164. package/dist/agents/coordinator.js.map +0 -1
  165. package/dist/agents/flow-builder-agent.d.ts.map +0 -1
  166. package/dist/agents/flow-builder-agent.js.map +0 -1
  167. package/dist/agents/index.d.ts.map +0 -1
  168. package/dist/agents/index.js.map +0 -1
  169. package/dist/agents/queen-403-handler.d.ts.map +0 -1
  170. package/dist/agents/queen-403-handler.js.map +0 -1
  171. package/dist/agents/queen-agent-example.d.ts.map +0 -1
  172. package/dist/agents/queen-agent-example.js.map +0 -1
  173. package/dist/agents/queen-agent.d.ts.map +0 -1
  174. package/dist/agents/queen-agent.js.map +0 -1
  175. package/dist/agents/queen-agent.test.d.ts.map +0 -1
  176. package/dist/agents/queen-agent.test.js.map +0 -1
  177. package/dist/agents/script-generator.agent.d.ts.map +0 -1
  178. package/dist/agents/script-generator.agent.js.map +0 -1
  179. package/dist/agents/script-writer-agent.d.ts.map +0 -1
  180. package/dist/agents/script-writer-agent.js.map +0 -1
  181. package/dist/agents/security-agent.d.ts.map +0 -1
  182. package/dist/agents/security-agent.js.map +0 -1
  183. package/dist/agents/specialists/automation-specialist.agent.d.ts.map +0 -1
  184. package/dist/agents/specialists/automation-specialist.agent.js.map +0 -1
  185. package/dist/agents/specialists/data-specialist.agent.d.ts.map +0 -1
  186. package/dist/agents/specialists/data-specialist.agent.js.map +0 -1
  187. package/dist/agents/specialists/integration-specialist.agent.d.ts.map +0 -1
  188. package/dist/agents/specialists/integration-specialist.agent.js.map +0 -1
  189. package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +0 -1
  190. package/dist/agents/specialists/reporting-specialist.agent.js.map +0 -1
  191. package/dist/agents/specialists/security-specialist.agent.d.ts.map +0 -1
  192. package/dist/agents/specialists/security-specialist.agent.js.map +0 -1
  193. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +0 -1
  194. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +0 -1
  195. package/dist/agents/teams/base-team.d.ts.map +0 -1
  196. package/dist/agents/teams/base-team.js.map +0 -1
  197. package/dist/agents/teams/team-types.d.ts.map +0 -1
  198. package/dist/agents/teams/team-types.js.map +0 -1
  199. package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +0 -1
  200. package/dist/agents/teams/widget/widget-architect.agent.js.map +0 -1
  201. package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +0 -1
  202. package/dist/agents/teams/widget/widget-backend.agent.js.map +0 -1
  203. package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +0 -1
  204. package/dist/agents/teams/widget/widget-frontend.agent.js.map +0 -1
  205. package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +0 -1
  206. package/dist/agents/teams/widget/widget-platform.agent.js.map +0 -1
  207. package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +0 -1
  208. package/dist/agents/teams/widget/widget-uiux.agent.js.map +0 -1
  209. package/dist/agents/test-agent.d.ts.map +0 -1
  210. package/dist/agents/test-agent.js.map +0 -1
  211. package/dist/agents/test-agents.d.ts.map +0 -1
  212. package/dist/agents/test-agents.js.map +0 -1
  213. package/dist/agents/ui-builder.agent.d.ts.map +0 -1
  214. package/dist/agents/ui-builder.agent.js.map +0 -1
  215. package/dist/agents/widget-builder.agent.d.ts.map +0 -1
  216. package/dist/agents/widget-builder.agent.js.map +0 -1
  217. package/dist/agents/widget-creator-agent.d.ts.map +0 -1
  218. package/dist/agents/widget-creator-agent.js.map +0 -1
  219. package/dist/agents/workflow-designer.agent.d.ts.map +0 -1
  220. package/dist/agents/workflow-designer.agent.js.map +0 -1
  221. package/dist/api/error-handling.d.ts.map +0 -1
  222. package/dist/api/error-handling.js.map +0 -1
  223. package/dist/api/flow-designer-api.d.ts.map +0 -1
  224. package/dist/api/flow-designer-api.js.map +0 -1
  225. package/dist/api/natural-language-mapper.d.ts.map +0 -1
  226. package/dist/api/natural-language-mapper.js.map +0 -1
  227. package/dist/api/performance-optimizer.d.ts.map +0 -1
  228. package/dist/api/performance-optimizer.js.map +0 -1
  229. package/dist/api/transaction-manager.d.ts.map +0 -1
  230. package/dist/api/transaction-manager.js.map +0 -1
  231. package/dist/assembly/team-assembler.d.ts.map +0 -1
  232. package/dist/assembly/team-assembler.js.map +0 -1
  233. package/dist/cli/deploy-artifact.d.ts.map +0 -1
  234. package/dist/cli/deploy-artifact.js.map +0 -1
  235. package/dist/cli/snow-flow-cli-integration.d.ts.map +0 -1
  236. package/dist/cli/snow-flow-cli-integration.js.map +0 -1
  237. package/dist/cli.d.ts.map +0 -1
  238. package/dist/cli.js.map +0 -1
  239. package/dist/compliance/advanced-compliance-system.d.ts.map +0 -1
  240. package/dist/compliance/advanced-compliance-system.js.map +0 -1
  241. package/dist/compliance/index.d.ts.map +0 -1
  242. package/dist/compliance/index.js.map +0 -1
  243. package/dist/config/snow-flow-config.d.ts.map +0 -1
  244. package/dist/config/snow-flow-config.js.map +0 -1
  245. package/dist/documentation/index.d.ts.map +0 -1
  246. package/dist/documentation/index.js.map +0 -1
  247. package/dist/documentation/self-documenting-system.d.ts.map +0 -1
  248. package/dist/documentation/self-documenting-system.js.map +0 -1
  249. package/dist/dynamic-version.d.ts.map +0 -1
  250. package/dist/dynamic-version.js.map +0 -1
  251. package/dist/healing/index.d.ts.map +0 -1
  252. package/dist/healing/index.js.map +0 -1
  253. package/dist/healing/self-healing-system.d.ts.map +0 -1
  254. package/dist/healing/self-healing-system.js.map +0 -1
  255. package/dist/health/system-health.d.ts.map +0 -1
  256. package/dist/health/system-health.js.map +0 -1
  257. package/dist/index.d.ts.map +0 -1
  258. package/dist/index.js.map +0 -1
  259. package/dist/intelligence/acl-analyzer.d.ts.map +0 -1
  260. package/dist/intelligence/acl-analyzer.js.map +0 -1
  261. package/dist/intelligence/auto-resolution-engine.d.ts.map +0 -1
  262. package/dist/intelligence/auto-resolution-engine.js.map +0 -1
  263. package/dist/intelligence/gap-analysis-engine.d.ts.map +0 -1
  264. package/dist/intelligence/gap-analysis-engine.js.map +0 -1
  265. package/dist/intelligence/manual-instructions-generator.d.ts.map +0 -1
  266. package/dist/intelligence/manual-instructions-generator.js.map +0 -1
  267. package/dist/intelligence/mcp-coverage-analyzer.d.ts.map +0 -1
  268. package/dist/intelligence/mcp-coverage-analyzer.js.map +0 -1
  269. package/dist/intelligence/multi-pass-requirements-analyzer.d.ts.map +0 -1
  270. package/dist/intelligence/multi-pass-requirements-analyzer.js.map +0 -1
  271. package/dist/intelligence/performance-recommendations-engine.d.ts.map +0 -1
  272. package/dist/intelligence/performance-recommendations-engine.js.map +0 -1
  273. package/dist/intelligence/requirements-analyzer.d.ts.map +0 -1
  274. package/dist/intelligence/requirements-analyzer.js.map +0 -1
  275. package/dist/intelligence/task-analyzer.d.ts.map +0 -1
  276. package/dist/intelligence/task-analyzer.js.map +0 -1
  277. package/dist/managers/scope-manager.d.ts.map +0 -1
  278. package/dist/managers/scope-manager.js.map +0 -1
  279. package/dist/mcp/advanced/servicenow-advanced-features-mcp.d.ts.map +0 -1
  280. package/dist/mcp/advanced/servicenow-advanced-features-mcp.js.map +0 -1
  281. package/dist/mcp/base-mcp-server.d.ts.map +0 -1
  282. package/dist/mcp/base-mcp-server.js.map +0 -1
  283. package/dist/mcp/example-refactored-server.d.ts.map +0 -1
  284. package/dist/mcp/example-refactored-server.js.map +0 -1
  285. package/dist/mcp/http-transport-wrapper.d.ts.map +0 -1
  286. package/dist/mcp/http-transport-wrapper.js.map +0 -1
  287. package/dist/mcp/mcp-wrapper.d.ts.map +0 -1
  288. package/dist/mcp/mcp-wrapper.js.map +0 -1
  289. package/dist/mcp/service-discovery-client.d.ts.map +0 -1
  290. package/dist/mcp/service-discovery-client.js.map +0 -1
  291. package/dist/mcp/servicenow-automation-mcp-refactored.d.ts.map +0 -1
  292. package/dist/mcp/servicenow-automation-mcp-refactored.js.map +0 -1
  293. package/dist/mcp/servicenow-automation-mcp.d.ts.map +0 -1
  294. package/dist/mcp/servicenow-automation-mcp.js.map +0 -1
  295. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +0 -1
  296. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +0 -1
  297. package/dist/mcp/servicenow-deployment-mcp.d.ts.map +0 -1
  298. package/dist/mcp/servicenow-deployment-mcp.js.map +0 -1
  299. package/dist/mcp/servicenow-flow-composer-mcp-refactored.d.ts.map +0 -1
  300. package/dist/mcp/servicenow-flow-composer-mcp-refactored.js.map +0 -1
  301. package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +0 -1
  302. package/dist/mcp/servicenow-flow-composer-mcp.js.map +0 -1
  303. package/dist/mcp/servicenow-graph-memory-mcp-refactored.d.ts.map +0 -1
  304. package/dist/mcp/servicenow-graph-memory-mcp-refactored.js.map +0 -1
  305. package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +0 -1
  306. package/dist/mcp/servicenow-graph-memory-mcp.js.map +0 -1
  307. package/dist/mcp/servicenow-integration-mcp-refactored.d.ts.map +0 -1
  308. package/dist/mcp/servicenow-integration-mcp-refactored.js.map +0 -1
  309. package/dist/mcp/servicenow-integration-mcp.d.ts.map +0 -1
  310. package/dist/mcp/servicenow-integration-mcp.js.map +0 -1
  311. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +0 -1
  312. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +0 -1
  313. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +0 -1
  314. package/dist/mcp/servicenow-intelligent-mcp.js.map +0 -1
  315. package/dist/mcp/servicenow-mcp-server.d.ts.map +0 -1
  316. package/dist/mcp/servicenow-mcp-server.js.map +0 -1
  317. package/dist/mcp/servicenow-memory-mcp.d.ts.map +0 -1
  318. package/dist/mcp/servicenow-memory-mcp.js.map +0 -1
  319. package/dist/mcp/servicenow-operations-mcp-refactored.d.ts.map +0 -1
  320. package/dist/mcp/servicenow-operations-mcp-refactored.js.map +0 -1
  321. package/dist/mcp/servicenow-operations-mcp.d.ts.map +0 -1
  322. package/dist/mcp/servicenow-operations-mcp.js.map +0 -1
  323. package/dist/mcp/servicenow-platform-development-mcp-refactored.d.ts.map +0 -1
  324. package/dist/mcp/servicenow-platform-development-mcp-refactored.js.map +0 -1
  325. package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +0 -1
  326. package/dist/mcp/servicenow-platform-development-mcp.js.map +0 -1
  327. package/dist/mcp/servicenow-progressive-indexer.d.ts.map +0 -1
  328. package/dist/mcp/servicenow-progressive-indexer.js.map +0 -1
  329. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.d.ts.map +0 -1
  330. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.js.map +0 -1
  331. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +0 -1
  332. package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +0 -1
  333. package/dist/mcp/servicenow-security-compliance-mcp-refactored.d.ts.map +0 -1
  334. package/dist/mcp/servicenow-security-compliance-mcp-refactored.js.map +0 -1
  335. package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +0 -1
  336. package/dist/mcp/servicenow-security-compliance-mcp.js.map +0 -1
  337. package/dist/mcp/servicenow-update-set-mcp-refactored.d.ts.map +0 -1
  338. package/dist/mcp/servicenow-update-set-mcp-refactored.js.map +0 -1
  339. package/dist/mcp/servicenow-update-set-mcp.d.ts.map +0 -1
  340. package/dist/mcp/servicenow-update-set-mcp.js.map +0 -1
  341. package/dist/mcp/servicenow-xml-flow-mcp.d.ts.map +0 -1
  342. package/dist/mcp/servicenow-xml-flow-mcp.js.map +0 -1
  343. package/dist/mcp/shared/agent-context-provider.d.ts.map +0 -1
  344. package/dist/mcp/shared/agent-context-provider.js.map +0 -1
  345. package/dist/mcp/shared/base-mcp-server.d.ts.map +0 -1
  346. package/dist/mcp/shared/base-mcp-server.js.map +0 -1
  347. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +0 -1
  348. package/dist/mcp/shared/mcp-memory-manager.js.map +0 -1
  349. package/dist/mcp/shared/mcp-resource-manager.d.ts.map +0 -1
  350. package/dist/mcp/shared/mcp-resource-manager.js.map +0 -1
  351. package/dist/mcp/snow-flow-mcp.d.ts.map +0 -1
  352. package/dist/mcp/snow-flow-mcp.js.map +0 -1
  353. package/dist/mcp/start-all-mcp-servers.d.ts.map +0 -1
  354. package/dist/mcp/start-all-mcp-servers.js.map +0 -1
  355. package/dist/mcp/start-servicenow-mcp.d.ts.map +0 -1
  356. package/dist/mcp/start-servicenow-mcp.js.map +0 -1
  357. package/dist/mcp/test-simple-mcp.d.ts.map +0 -1
  358. package/dist/mcp/test-simple-mcp.js.map +0 -1
  359. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  360. package/dist/memory/hierarchical-memory-system.d.ts.map +0 -1
  361. package/dist/memory/hierarchical-memory-system.js +0 -400
  362. package/dist/memory/hierarchical-memory-system.js.map +0 -1
  363. package/dist/memory/index.d.ts +0 -9
  364. package/dist/memory/index.d.ts.map +0 -1
  365. package/dist/memory/index.js +0 -20
  366. package/dist/memory/index.js.map +0 -1
  367. package/dist/memory/mcp-integration-example.d.ts +0 -6
  368. package/dist/memory/mcp-integration-example.d.ts.map +0 -1
  369. package/dist/memory/mcp-integration-example.js +0 -281
  370. package/dist/memory/mcp-integration-example.js.map +0 -1
  371. package/dist/memory/memory-client.d.ts +0 -199
  372. package/dist/memory/memory-client.d.ts.map +0 -1
  373. package/dist/memory/memory-client.js +0 -364
  374. package/dist/memory/memory-client.js.map +0 -1
  375. package/dist/memory/memory-manager.d.ts +0 -29
  376. package/dist/memory/memory-manager.d.ts.map +0 -1
  377. package/dist/memory/memory-manager.js +0 -280
  378. package/dist/memory/memory-manager.js.map +0 -1
  379. package/dist/memory/memory-operations.d.ts +0 -179
  380. package/dist/memory/memory-operations.d.ts.map +0 -1
  381. package/dist/memory/memory-operations.js +0 -691
  382. package/dist/memory/memory-operations.js.map +0 -1
  383. package/dist/memory/memory-system.d.ts +0 -152
  384. package/dist/memory/memory-system.d.ts.map +0 -1
  385. package/dist/memory/memory-system.js +0 -632
  386. package/dist/memory/memory-system.js.map +0 -1
  387. package/dist/memory/memory-test.d.ts +0 -6
  388. package/dist/memory/memory-test.d.ts.map +0 -1
  389. package/dist/memory/memory-test.js +0 -161
  390. package/dist/memory/memory-test.js.map +0 -1
  391. package/dist/memory/servicenow-artifact-indexer.d.ts +0 -119
  392. package/dist/memory/servicenow-artifact-indexer.d.ts.map +0 -1
  393. package/dist/memory/servicenow-artifact-indexer.js +0 -560
  394. package/dist/memory/servicenow-artifact-indexer.js.map +0 -1
  395. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  396. package/dist/memory/snow-flow-memory-patterns.d.ts.map +0 -1
  397. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  398. package/dist/memory/snow-flow-memory-patterns.js.map +0 -1
  399. package/dist/memory/snow-memory.d.ts +0 -54
  400. package/dist/memory/snow-memory.d.ts.map +0 -1
  401. package/dist/memory/snow-memory.js +0 -301
  402. package/dist/memory/snow-memory.js.map +0 -1
  403. package/dist/memory/swarm-memory.d.ts +0 -135
  404. package/dist/memory/swarm-memory.d.ts.map +0 -1
  405. package/dist/memory/swarm-memory.js +0 -378
  406. package/dist/memory/swarm-memory.js.map +0 -1
  407. package/dist/monitoring/enhanced-monitoring-system.d.ts.map +0 -1
  408. package/dist/monitoring/enhanced-monitoring-system.js.map +0 -1
  409. package/dist/monitoring/performance-tracker.d.ts.map +0 -1
  410. package/dist/monitoring/performance-tracker.js.map +0 -1
  411. package/dist/optimization/cost-optimization-engine.d.ts.map +0 -1
  412. package/dist/optimization/cost-optimization-engine.js.map +0 -1
  413. package/dist/optimization/index.d.ts.map +0 -1
  414. package/dist/optimization/index.js.map +0 -1
  415. package/dist/orchestration/discovery/service-discovery.d.ts.map +0 -1
  416. package/dist/orchestration/discovery/service-discovery.js.map +0 -1
  417. package/dist/orchestration/distributed-orchestrator.d.ts.map +0 -1
  418. package/dist/orchestration/distributed-orchestrator.js.map +0 -1
  419. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +0 -1
  420. package/dist/orchestration/distribution/task-distribution-engine.js.map +0 -1
  421. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +0 -1
  422. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +0 -1
  423. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +0 -1
  424. package/dist/orchestration/protocols/mcpx-protocol.js.map +0 -1
  425. package/dist/orchestration/state/distributed-state-manager.d.ts.map +0 -1
  426. package/dist/orchestration/state/distributed-state-manager.js.map +0 -1
  427. package/dist/orchestrator/flow-composer.d.ts.map +0 -1
  428. package/dist/orchestrator/flow-composer.js.map +0 -1
  429. package/dist/orchestrator/flow-pattern-templates.d.ts.map +0 -1
  430. package/dist/orchestrator/flow-pattern-templates.js.map +0 -1
  431. package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +0 -1
  432. package/dist/orchestrator/flow-subflow-decision-engine.js.map +0 -1
  433. package/dist/orchestrator/flow-validation-engine.d.ts.map +0 -1
  434. package/dist/orchestrator/flow-validation-engine.js.map +0 -1
  435. package/dist/orchestrator/snow-orchestrator.d.ts.map +0 -1
  436. package/dist/orchestrator/snow-orchestrator.js.map +0 -1
  437. package/dist/orchestrator/subflow-creation-handler.d.ts.map +0 -1
  438. package/dist/orchestrator/subflow-creation-handler.js.map +0 -1
  439. package/dist/patterns/adaptive-patterns.d.ts.map +0 -1
  440. package/dist/patterns/adaptive-patterns.js.map +0 -1
  441. package/dist/queen/advanced-integration-test.d.ts.map +0 -1
  442. package/dist/queen/advanced-integration-test.js.map +0 -1
  443. package/dist/queen/agent-factory.d.ts.map +0 -1
  444. package/dist/queen/agent-factory.js.map +0 -1
  445. package/dist/queen/index.d.ts.map +0 -1
  446. package/dist/queen/index.js.map +0 -1
  447. package/dist/queen/integration-example.d.ts.map +0 -1
  448. package/dist/queen/integration-example.js.map +0 -1
  449. package/dist/queen/integration-test.d.ts.map +0 -1
  450. package/dist/queen/integration-test.js.map +0 -1
  451. package/dist/queen/mcp-execution-bridge.d.ts.map +0 -1
  452. package/dist/queen/mcp-execution-bridge.js.map +0 -1
  453. package/dist/queen/mock-mcp-client.d.ts.map +0 -1
  454. package/dist/queen/mock-mcp-client.js.map +0 -1
  455. package/dist/queen/neural-learning.d.ts.map +0 -1
  456. package/dist/queen/neural-learning.js.map +0 -1
  457. package/dist/queen/parallel-agent-engine.d.ts.map +0 -1
  458. package/dist/queen/parallel-agent-engine.js.map +0 -1
  459. package/dist/queen/queen-memory-system.d.ts.map +0 -1
  460. package/dist/queen/queen-memory-system.js.map +0 -1
  461. package/dist/queen/queen-memory.d.ts.map +0 -1
  462. package/dist/queen/queen-memory.js.map +0 -1
  463. package/dist/queen/run-integration-tests.d.ts.map +0 -1
  464. package/dist/queen/run-integration-tests.js.map +0 -1
  465. package/dist/queen/servicenow-queen.d.ts.map +0 -1
  466. package/dist/queen/servicenow-queen.js.map +0 -1
  467. package/dist/queen/types.d.ts.map +0 -1
  468. package/dist/queen/types.js.map +0 -1
  469. package/dist/rollback/smart-rollback-system.d.ts.map +0 -1
  470. package/dist/rollback/smart-rollback-system.js.map +0 -1
  471. package/dist/snow-flow-system.d.ts.map +0 -1
  472. package/dist/snow-flow-system.js.map +0 -1
  473. package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +0 -1
  474. package/dist/sparc/coordinators/adaptive-coordinator.js.map +0 -1
  475. package/dist/sparc/coordinators/team-coordinator.d.ts.map +0 -1
  476. package/dist/sparc/coordinators/team-coordinator.js.map +0 -1
  477. package/dist/sparc/modes/team-modes.d.ts.map +0 -1
  478. package/dist/sparc/modes/team-modes.js.map +0 -1
  479. package/dist/sparc/sparc-help.d.ts.map +0 -1
  480. package/dist/sparc/sparc-help.js.map +0 -1
  481. package/dist/sparc/team-sparc.d.ts.map +0 -1
  482. package/dist/sparc/team-sparc.js.map +0 -1
  483. package/dist/sparc/teams/application-team.d.ts.map +0 -1
  484. package/dist/sparc/teams/application-team.js.map +0 -1
  485. package/dist/sparc/teams/flow-team.d.ts.map +0 -1
  486. package/dist/sparc/teams/flow-team.js.map +0 -1
  487. package/dist/sparc/teams/widget-team.d.ts.map +0 -1
  488. package/dist/sparc/teams/widget-team.js.map +0 -1
  489. package/dist/specialists/app-specialists.d.ts.map +0 -1
  490. package/dist/specialists/app-specialists.js.map +0 -1
  491. package/dist/specialists/base-specialist.d.ts.map +0 -1
  492. package/dist/specialists/base-specialist.js.map +0 -1
  493. package/dist/specialists/flow-specialists.d.ts.map +0 -1
  494. package/dist/specialists/flow-specialists.js.map +0 -1
  495. package/dist/specialists/individual-specialists.d.ts.map +0 -1
  496. package/dist/specialists/individual-specialists.js.map +0 -1
  497. package/dist/specialists/widget-specialists.d.ts.map +0 -1
  498. package/dist/specialists/widget-specialists.js.map +0 -1
  499. package/dist/strategies/global-scope-strategy.d.ts.map +0 -1
  500. package/dist/strategies/global-scope-strategy.js.map +0 -1
  501. package/dist/teams/adaptive-team.d.ts.map +0 -1
  502. package/dist/teams/adaptive-team.js.map +0 -1
  503. package/dist/teams/application-team.d.ts.map +0 -1
  504. package/dist/teams/application-team.js.map +0 -1
  505. package/dist/teams/base-team.d.ts.map +0 -1
  506. package/dist/teams/base-team.js.map +0 -1
  507. package/dist/teams/flow-team.d.ts.map +0 -1
  508. package/dist/teams/flow-team.js.map +0 -1
  509. package/dist/teams/widget-team.d.ts.map +0 -1
  510. package/dist/teams/widget-team.js.map +0 -1
  511. package/dist/testing/integration-test-suite.d.ts.map +0 -1
  512. package/dist/testing/integration-test-suite.js.map +0 -1
  513. package/dist/types/index.d.ts.map +0 -1
  514. package/dist/types/index.js.map +0 -1
  515. package/dist/types/servicenow.types.d.ts.map +0 -1
  516. package/dist/types/servicenow.types.js.map +0 -1
  517. package/dist/types/snow-flow.types.d.ts.map +0 -1
  518. package/dist/types/snow-flow.types.js.map +0 -1
  519. package/dist/types/todo.types.d.ts.map +0 -1
  520. package/dist/types/todo.types.js.map +0 -1
  521. package/dist/utils/action-type-cache.d.ts.map +0 -1
  522. package/dist/utils/action-type-cache.js.map +0 -1
  523. package/dist/utils/agent-detector.d.ts.map +0 -1
  524. package/dist/utils/agent-detector.js.map +0 -1
  525. package/dist/utils/artifact-tracker.d.ts.map +0 -1
  526. package/dist/utils/artifact-tracker.js.map +0 -1
  527. package/dist/utils/dependency-detector.d.ts.map +0 -1
  528. package/dist/utils/dependency-detector.js.map +0 -1
  529. package/dist/utils/deployment-metadata-handler.d.ts.map +0 -1
  530. package/dist/utils/deployment-metadata-handler.js.map +0 -1
  531. package/dist/utils/error-recovery.d.ts.map +0 -1
  532. package/dist/utils/error-recovery.js.map +0 -1
  533. package/dist/utils/flow-api-discovery.d.ts.map +0 -1
  534. package/dist/utils/flow-api-discovery.js.map +0 -1
  535. package/dist/utils/flow-xml-generator.d.ts.map +0 -1
  536. package/dist/utils/flow-xml-generator.js.map +0 -1
  537. package/dist/utils/logger.d.ts.map +0 -1
  538. package/dist/utils/logger.js.map +0 -1
  539. package/dist/utils/mcp-auth-middleware.d.ts.map +0 -1
  540. package/dist/utils/mcp-auth-middleware.js.map +0 -1
  541. package/dist/utils/mcp-config-manager.d.ts.map +0 -1
  542. package/dist/utils/mcp-config-manager.js.map +0 -1
  543. package/dist/utils/mcp-server-manager.d.ts.map +0 -1
  544. package/dist/utils/mcp-server-manager.js.map +0 -1
  545. package/dist/utils/mcp-tool-registry.d.ts.map +0 -1
  546. package/dist/utils/mcp-tool-registry.js.map +0 -1
  547. package/dist/utils/migrate-claude-flow.d.ts.map +0 -1
  548. package/dist/utils/migrate-claude-flow.js.map +0 -1
  549. package/dist/utils/migrate-snow-flow.d.ts.map +0 -1
  550. package/dist/utils/migrate-snow-flow.js.map +0 -1
  551. package/dist/utils/oauth-html-templates.d.ts.map +0 -1
  552. package/dist/utils/oauth-html-templates.js.map +0 -1
  553. package/dist/utils/scope-utils.d.ts.map +0 -1
  554. package/dist/utils/scope-utils.js.map +0 -1
  555. package/dist/utils/servicenow-client.d.ts.map +0 -1
  556. package/dist/utils/servicenow-client.js.map +0 -1
  557. package/dist/utils/servicenow-id-generator.d.ts.map +0 -1
  558. package/dist/utils/servicenow-id-generator.js.map +0 -1
  559. package/dist/utils/snow-memory-manager.d.ts.map +0 -1
  560. package/dist/utils/snow-memory-manager.js.map +0 -1
  561. package/dist/utils/snow-oauth-old.d.ts.map +0 -1
  562. package/dist/utils/snow-oauth-old.js.map +0 -1
  563. package/dist/utils/snow-oauth.d.ts.map +0 -1
  564. package/dist/utils/snow-oauth.js.map +0 -1
  565. package/dist/utils/template-engine.d.ts.map +0 -1
  566. package/dist/utils/template-engine.js.map +0 -1
  567. package/dist/utils/theme-manager.d.ts.map +0 -1
  568. package/dist/utils/theme-manager.js.map +0 -1
  569. package/dist/utils/unified-auth-store.d.ts.map +0 -1
  570. package/dist/utils/unified-auth-store.js.map +0 -1
  571. package/dist/utils/update-set-importer.d.ts.map +0 -1
  572. package/dist/utils/update-set-importer.js.map +0 -1
  573. package/dist/utils/update-set-xml-packager.d.ts.map +0 -1
  574. package/dist/utils/update-set-xml-packager.js.map +0 -1
  575. package/dist/utils/widget-template-generator.d.ts.map +0 -1
  576. package/dist/utils/widget-template-generator.js.map +0 -1
  577. package/dist/version.d.ts.map +0 -1
  578. package/dist/version.js.map +0 -1
  579. package/memory/agents/README.md +0 -31
  580. package/memory/claude-flow-data.json +0 -5
  581. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  582. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  583. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  584. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  585. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  586. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  587. package/memory/sessions/README.md +0 -32
  588. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  589. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  590. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  591. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  592. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  593. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  594. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  595. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
@@ -0,0 +1,680 @@
1
+ /**
2
+ * Snow-Flow Error Handling & Recovery System
3
+ * Implements comprehensive error recovery patterns from MCP Architecture
4
+ */
5
+
6
+ import { EventEmitter } from 'events';
7
+ import { Logger } from './logger';
8
+ import { MemorySystem } from '../memory/memory-system';
9
+
10
+ export interface ErrorContext {
11
+ operation: string;
12
+ sessionId?: string;
13
+ agentId?: string;
14
+ artifactId?: string;
15
+ attemptNumber?: number;
16
+ fallbackStrategies?: string[];
17
+ metadata?: Record<string, any>;
18
+ }
19
+
20
+ export interface RecoveryStrategy {
21
+ name: string;
22
+ condition: (error: Error, context: ErrorContext) => boolean;
23
+ execute: (error: Error, context: ErrorContext) => Promise<RecoveryResult>;
24
+ priority: number;
25
+ }
26
+
27
+ export interface RecoveryResult {
28
+ success: boolean;
29
+ strategyUsed?: string;
30
+ result?: any;
31
+ error?: Error;
32
+ nextStrategies?: string[];
33
+ }
34
+
35
+ export interface ErrorMetrics {
36
+ totalErrors: number;
37
+ recoveredErrors: number;
38
+ failedRecoveries: number;
39
+ errorsByType: Record<string, number>;
40
+ recoveryStrategiesUsed: Record<string, number>;
41
+ averageRecoveryTime: number;
42
+ }
43
+
44
+ export class ErrorRecovery extends EventEmitter {
45
+ private logger: Logger;
46
+ private strategies: Map<string, RecoveryStrategy> = new Map();
47
+ private errorHistory: ErrorRecord[] = [];
48
+ private memory?: MemorySystem;
49
+ private maxRetries = 3;
50
+ private retryDelay = 1000;
51
+ private exponentialBackoff = true;
52
+
53
+ constructor(logger: Logger, memory?: MemorySystem) {
54
+ super();
55
+ this.logger = logger;
56
+ this.memory = memory;
57
+ this.initializeDefaultStrategies();
58
+ }
59
+
60
+ /**
61
+ * Initialize default recovery strategies
62
+ */
63
+ private initializeDefaultStrategies(): void {
64
+ // Retry strategy
65
+ this.registerStrategy({
66
+ name: 'retry',
67
+ condition: (error, context) => {
68
+ return (context.attemptNumber || 0) < this.maxRetries &&
69
+ !this.isUnrecoverable(error);
70
+ },
71
+ execute: async (error, context) => {
72
+ const attempt = (context.attemptNumber || 0) + 1;
73
+ const delay = this.calculateRetryDelay(attempt);
74
+
75
+ this.logger.info(`Retrying operation ${context.operation} (attempt ${attempt}/${this.maxRetries})`);
76
+ await this.delay(delay);
77
+
78
+ return {
79
+ success: false,
80
+ strategyUsed: 'retry',
81
+ nextStrategies: ['retry', 'fallback']
82
+ };
83
+ },
84
+ priority: 100
85
+ });
86
+
87
+ // Permission escalation strategy
88
+ this.registerStrategy({
89
+ name: 'permission_escalation',
90
+ condition: (error) => this.isPermissionError(error),
91
+ execute: async (error, context) => {
92
+ this.logger.info('Attempting permission escalation...');
93
+
94
+ try {
95
+ // Request elevated permissions through Queen agent
96
+ await this.requestPermissionEscalation(context);
97
+
98
+ return {
99
+ success: true,
100
+ strategyUsed: 'permission_escalation'
101
+ };
102
+ } catch (escalationError) {
103
+ return {
104
+ success: false,
105
+ error: escalationError as Error,
106
+ nextStrategies: ['manual_intervention']
107
+ };
108
+ }
109
+ },
110
+ priority: 90
111
+ });
112
+
113
+ // Scope fallback strategy
114
+ this.registerStrategy({
115
+ name: 'scope_fallback',
116
+ condition: (error) => this.isScopeError(error),
117
+ execute: async (error, context) => {
118
+ this.logger.info('Attempting global scope fallback...');
119
+
120
+ try {
121
+ // Modify context to use global scope
122
+ const globalContext = {
123
+ ...context,
124
+ metadata: {
125
+ ...context.metadata,
126
+ scope: 'global',
127
+ fallbackReason: 'scope_error'
128
+ }
129
+ };
130
+
131
+ return {
132
+ success: true,
133
+ strategyUsed: 'scope_fallback',
134
+ result: globalContext
135
+ };
136
+ } catch (fallbackError) {
137
+ return {
138
+ success: false,
139
+ error: fallbackError as Error
140
+ };
141
+ }
142
+ },
143
+ priority: 85
144
+ });
145
+
146
+ // Cache invalidation strategy
147
+ this.registerStrategy({
148
+ name: 'cache_invalidation',
149
+ condition: (error) => this.isDataConsistencyError(error),
150
+ execute: async (error, context) => {
151
+ this.logger.info('Invalidating cache and refreshing data...');
152
+
153
+ try {
154
+ if (this.memory) {
155
+ await this.memory.invalidateCache(context.sessionId || 'global');
156
+ }
157
+
158
+ return {
159
+ success: true,
160
+ strategyUsed: 'cache_invalidation',
161
+ nextStrategies: ['retry']
162
+ };
163
+ } catch (cacheError) {
164
+ return {
165
+ success: false,
166
+ error: cacheError as Error
167
+ };
168
+ }
169
+ },
170
+ priority: 80
171
+ });
172
+
173
+ // Partial success strategy
174
+ this.registerStrategy({
175
+ name: 'partial_success',
176
+ condition: (error, context) => {
177
+ return context.metadata?.allowPartial === true &&
178
+ this.canPartiallySucceed(error);
179
+ },
180
+ execute: async (error, context) => {
181
+ this.logger.info('Attempting partial success recovery...');
182
+
183
+ const partialResult = await this.extractPartialSuccess(error, context);
184
+
185
+ return {
186
+ success: true,
187
+ strategyUsed: 'partial_success',
188
+ result: partialResult
189
+ };
190
+ },
191
+ priority: 70
192
+ });
193
+
194
+ // Manual intervention strategy
195
+ this.registerStrategy({
196
+ name: 'manual_intervention',
197
+ condition: () => true, // Last resort
198
+ execute: async (error, context) => {
199
+ this.logger.warn('Manual intervention required');
200
+
201
+ // Generate manual steps
202
+ const manualSteps = await this.generateManualSteps(error, context);
203
+
204
+ // Store for later retrieval
205
+ if (this.memory) {
206
+ await this.memory.store(`manual_intervention_${context.sessionId}`, {
207
+ error: error.message,
208
+ context,
209
+ steps: manualSteps,
210
+ timestamp: new Date()
211
+ });
212
+ }
213
+
214
+ return {
215
+ success: false,
216
+ strategyUsed: 'manual_intervention',
217
+ result: { manualSteps },
218
+ error: new Error('Manual intervention required. Check logs for instructions.')
219
+ };
220
+ },
221
+ priority: 10
222
+ });
223
+ }
224
+
225
+ /**
226
+ * Register a custom recovery strategy
227
+ */
228
+ registerStrategy(strategy: RecoveryStrategy): void {
229
+ this.strategies.set(strategy.name, strategy);
230
+ this.logger.debug(`Registered recovery strategy: ${strategy.name}`);
231
+ }
232
+
233
+ /**
234
+ * Handle an error with automatic recovery
235
+ */
236
+ async handleError(error: Error, context: ErrorContext): Promise<RecoveryResult> {
237
+ const startTime = Date.now();
238
+
239
+ this.logger.error(`Error in operation ${context.operation}:`, error);
240
+ this.recordError(error, context);
241
+
242
+ // Get applicable strategies sorted by priority
243
+ const applicableStrategies = this.getApplicableStrategies(error, context);
244
+
245
+ let lastResult: RecoveryResult = {
246
+ success: false,
247
+ error
248
+ };
249
+
250
+ // Try each strategy in order
251
+ for (const strategy of applicableStrategies) {
252
+ try {
253
+ this.logger.info(`Attempting recovery strategy: ${strategy.name}`);
254
+ lastResult = await strategy.execute(error, context);
255
+
256
+ if (lastResult.success) {
257
+ const duration = Date.now() - startTime;
258
+ this.recordRecovery(strategy.name, duration);
259
+ this.emit('recovery:success', {
260
+ strategy: strategy.name,
261
+ duration,
262
+ context
263
+ });
264
+ return lastResult;
265
+ }
266
+
267
+ // If strategy suggests next strategies, filter to those
268
+ if (lastResult.nextStrategies) {
269
+ const nextStrategies = lastResult.nextStrategies
270
+ .map(name => this.strategies.get(name))
271
+ .filter(s => s && s.condition(error, context))
272
+ .sort((a, b) => b!.priority - a!.priority);
273
+
274
+ if (nextStrategies.length > 0) {
275
+ // Continue with suggested strategies
276
+ for (const nextStrategy of nextStrategies) {
277
+ if (nextStrategy && !applicableStrategies.includes(nextStrategy)) {
278
+ applicableStrategies.push(nextStrategy);
279
+ }
280
+ }
281
+ }
282
+ }
283
+ } catch (strategyError) {
284
+ this.logger.error(`Recovery strategy ${strategy.name} failed:`, strategyError);
285
+ }
286
+ }
287
+
288
+ // All strategies failed
289
+ const duration = Date.now() - startTime;
290
+ this.recordFailedRecovery(error, context, duration);
291
+ this.emit('recovery:failed', {
292
+ error,
293
+ context,
294
+ duration,
295
+ strategiesAttempted: applicableStrategies.map(s => s.name)
296
+ });
297
+
298
+ return lastResult;
299
+ }
300
+
301
+ /**
302
+ * Handle critical errors that affect the entire system
303
+ */
304
+ async handleCriticalError(error: Error, context: ErrorContext): Promise<void> {
305
+ this.logger.error('CRITICAL ERROR:', error);
306
+
307
+ // Notify all active agents
308
+ this.emit('critical:error', { error, context });
309
+
310
+ // Attempt emergency recovery
311
+ const emergencyStrategies = context.fallbackStrategies || [
312
+ 'emergency_shutdown',
313
+ 'data_preservation',
314
+ 'rollback_all'
315
+ ];
316
+
317
+ for (const strategyName of emergencyStrategies) {
318
+ try {
319
+ await this.executeEmergencyStrategy(strategyName, error, context);
320
+ } catch (emergencyError) {
321
+ this.logger.error(`Emergency strategy ${strategyName} failed:`, emergencyError);
322
+ }
323
+ }
324
+ }
325
+
326
+ /**
327
+ * Attempt to recover a failed swarm session
328
+ */
329
+ async attemptSwarmRecovery(sessionId: string, error: Error): Promise<RecoveryResult> {
330
+ const context: ErrorContext = {
331
+ operation: 'swarm_execution',
332
+ sessionId,
333
+ fallbackStrategies: [
334
+ 'resume_from_checkpoint',
335
+ 'restart_failed_agents',
336
+ 'rollback_to_stable'
337
+ ]
338
+ };
339
+
340
+ // Check if we have a checkpoint
341
+ if (this.memory) {
342
+ const checkpoint = await this.memory.get(`checkpoint_${sessionId}`);
343
+ if (checkpoint) {
344
+ try {
345
+ const result = await this.resumeFromCheckpoint(sessionId, checkpoint);
346
+ return {
347
+ success: true,
348
+ strategyUsed: 'resume_from_checkpoint',
349
+ result
350
+ };
351
+ } catch (resumeError) {
352
+ this.logger.error('Failed to resume from checkpoint:', resumeError);
353
+ }
354
+ }
355
+ }
356
+
357
+ // Try standard error recovery
358
+ return this.handleError(error, context);
359
+ }
360
+
361
+ /**
362
+ * Get error metrics
363
+ */
364
+ getMetrics(): ErrorMetrics {
365
+ const metrics: ErrorMetrics = {
366
+ totalErrors: this.errorHistory.length,
367
+ recoveredErrors: 0,
368
+ failedRecoveries: 0,
369
+ errorsByType: {},
370
+ recoveryStrategiesUsed: {},
371
+ averageRecoveryTime: 0
372
+ };
373
+
374
+ let totalRecoveryTime = 0;
375
+ let recoveryCount = 0;
376
+
377
+ for (const record of this.errorHistory) {
378
+ // Count by type
379
+ const errorType = record.error.name || 'Unknown';
380
+ metrics.errorsByType[errorType] = (metrics.errorsByType[errorType] || 0) + 1;
381
+
382
+ // Count recoveries
383
+ if (record.recovered) {
384
+ metrics.recoveredErrors++;
385
+ if (record.recoveryStrategy) {
386
+ metrics.recoveryStrategiesUsed[record.recoveryStrategy] =
387
+ (metrics.recoveryStrategiesUsed[record.recoveryStrategy] || 0) + 1;
388
+ }
389
+ if (record.recoveryDuration) {
390
+ totalRecoveryTime += record.recoveryDuration;
391
+ recoveryCount++;
392
+ }
393
+ } else {
394
+ metrics.failedRecoveries++;
395
+ }
396
+ }
397
+
398
+ if (recoveryCount > 0) {
399
+ metrics.averageRecoveryTime = totalRecoveryTime / recoveryCount;
400
+ }
401
+
402
+ return metrics;
403
+ }
404
+
405
+ /**
406
+ * Clear error history
407
+ */
408
+ clearHistory(): void {
409
+ this.errorHistory = [];
410
+ }
411
+
412
+ /**
413
+ * Private helper methods
414
+ */
415
+ private getApplicableStrategies(error: Error, context: ErrorContext): RecoveryStrategy[] {
416
+ const strategies = Array.from(this.strategies.values())
417
+ .filter(strategy => strategy.condition(error, context))
418
+ .sort((a, b) => b.priority - a.priority);
419
+
420
+ // If custom fallback strategies specified, prioritize those
421
+ if (context.fallbackStrategies) {
422
+ const customStrategies = context.fallbackStrategies
423
+ .map(name => this.strategies.get(name))
424
+ .filter(s => s && s.condition(error, context)) as RecoveryStrategy[];
425
+
426
+ return [...customStrategies, ...strategies];
427
+ }
428
+
429
+ return strategies;
430
+ }
431
+
432
+ private isUnrecoverable(error: Error): boolean {
433
+ const unrecoverableErrors = [
434
+ 'ENOTFOUND',
435
+ 'ECONNREFUSED',
436
+ 'ETIMEDOUT',
437
+ 'CERT_HAS_EXPIRED'
438
+ ];
439
+
440
+ return unrecoverableErrors.some(code =>
441
+ error.message.includes(code) || (error as any).code === code
442
+ );
443
+ }
444
+
445
+ private isPermissionError(error: Error): boolean {
446
+ const permissionIndicators = [
447
+ 'permission denied',
448
+ 'access denied',
449
+ 'unauthorized',
450
+ '401',
451
+ '403',
452
+ 'insufficient privileges'
453
+ ];
454
+
455
+ const errorMessage = error.message.toLowerCase();
456
+ return permissionIndicators.some(indicator =>
457
+ errorMessage.includes(indicator)
458
+ );
459
+ }
460
+
461
+ private isScopeError(error: Error): boolean {
462
+ const scopeIndicators = [
463
+ 'scope not found',
464
+ 'application scope',
465
+ 'wrong scope',
466
+ 'scope mismatch'
467
+ ];
468
+
469
+ const errorMessage = error.message.toLowerCase();
470
+ return scopeIndicators.some(indicator =>
471
+ errorMessage.includes(indicator)
472
+ );
473
+ }
474
+
475
+ private isDataConsistencyError(error: Error): boolean {
476
+ const consistencyIndicators = [
477
+ 'data inconsistency',
478
+ 'stale data',
479
+ 'cache invalid',
480
+ 'version mismatch'
481
+ ];
482
+
483
+ const errorMessage = error.message.toLowerCase();
484
+ return consistencyIndicators.some(indicator =>
485
+ errorMessage.includes(indicator)
486
+ );
487
+ }
488
+
489
+ private canPartiallySucceed(error: Error): boolean {
490
+ // Determine if the operation can partially succeed
491
+ return error.message.includes('partial') ||
492
+ error.message.includes('some operations failed');
493
+ }
494
+
495
+ private calculateRetryDelay(attemptNumber: number): number {
496
+ if (this.exponentialBackoff) {
497
+ return Math.min(
498
+ this.retryDelay * Math.pow(2, attemptNumber - 1),
499
+ 30000 // Max 30 seconds
500
+ );
501
+ }
502
+ return this.retryDelay;
503
+ }
504
+
505
+ private async requestPermissionEscalation(context: ErrorContext): Promise<void> {
506
+ // Emit event for Queen agent to handle
507
+ this.emit('permission:escalation:requested', context);
508
+
509
+ // Wait for escalation (with timeout)
510
+ return new Promise((resolve, reject) => {
511
+ const timeout = setTimeout(() => {
512
+ reject(new Error('Permission escalation timeout'));
513
+ }, 30000);
514
+
515
+ this.once('permission:escalation:granted', () => {
516
+ clearTimeout(timeout);
517
+ resolve();
518
+ });
519
+
520
+ this.once('permission:escalation:denied', () => {
521
+ clearTimeout(timeout);
522
+ reject(new Error('Permission escalation denied'));
523
+ });
524
+ });
525
+ }
526
+
527
+ private async extractPartialSuccess(error: Error, context: ErrorContext): Promise<any> {
528
+ // Extract any partial results from the error context
529
+ if ((error as any).partialResult) {
530
+ return (error as any).partialResult;
531
+ }
532
+
533
+ // Check memory for partial results
534
+ if (this.memory && context.sessionId) {
535
+ const partialData = await this.memory.get(`partial_${context.sessionId}`);
536
+ if (partialData) {
537
+ return partialData;
538
+ }
539
+ }
540
+
541
+ return null;
542
+ }
543
+
544
+ private async generateManualSteps(error: Error, context: ErrorContext): Promise<string[]> {
545
+ const steps: string[] = [];
546
+
547
+ if (this.isPermissionError(error)) {
548
+ steps.push('1. Log into ServiceNow as an administrator');
549
+ steps.push('2. Navigate to System Security > Users and Groups > Users');
550
+ steps.push('3. Find the integration user and click on it');
551
+ steps.push('4. Go to the Roles tab and add required roles');
552
+ steps.push('5. Save the changes and retry the operation');
553
+ } else if (this.isScopeError(error)) {
554
+ steps.push('1. Log into ServiceNow as an administrator');
555
+ steps.push('2. Navigate to System Applications > Applications');
556
+ steps.push('3. Switch to the Global scope');
557
+ steps.push('4. Retry the operation in Global scope');
558
+ steps.push('5. If successful, move the artifact to the desired scope');
559
+ } else {
560
+ steps.push('1. Check ServiceNow instance availability');
561
+ steps.push('2. Verify network connectivity');
562
+ steps.push('3. Check authentication credentials');
563
+ steps.push('4. Review error logs for specific issues');
564
+ steps.push('5. Contact support if issue persists');
565
+ }
566
+
567
+ return steps;
568
+ }
569
+
570
+ private async executeEmergencyStrategy(
571
+ strategyName: string,
572
+ error: Error,
573
+ context: ErrorContext
574
+ ): Promise<void> {
575
+ switch (strategyName) {
576
+ case 'emergency_shutdown':
577
+ this.emit('system:emergency:shutdown', { error, context });
578
+ break;
579
+
580
+ case 'data_preservation':
581
+ if (this.memory) {
582
+ await this.memory.createEmergencyBackup();
583
+ }
584
+ break;
585
+
586
+ case 'rollback_all':
587
+ this.emit('system:rollback:all', { error, context });
588
+ break;
589
+
590
+ default:
591
+ this.logger.warn(`Unknown emergency strategy: ${strategyName}`);
592
+ }
593
+ }
594
+
595
+ private async resumeFromCheckpoint(sessionId: string, checkpoint: any): Promise<any> {
596
+ this.logger.info(`Resuming session ${sessionId} from checkpoint`);
597
+
598
+ // Emit event for system to resume
599
+ this.emit('session:resume', {
600
+ sessionId,
601
+ checkpoint
602
+ });
603
+
604
+ return checkpoint;
605
+ }
606
+
607
+ private recordError(error: Error, context: ErrorContext): void {
608
+ this.errorHistory.push({
609
+ error,
610
+ context,
611
+ timestamp: new Date(),
612
+ recovered: false
613
+ });
614
+
615
+ // Limit history size
616
+ if (this.errorHistory.length > 1000) {
617
+ this.errorHistory = this.errorHistory.slice(-500);
618
+ }
619
+ }
620
+
621
+ private recordRecovery(strategyName: string, duration: number): void {
622
+ const lastError = this.errorHistory[this.errorHistory.length - 1];
623
+ if (lastError) {
624
+ lastError.recovered = true;
625
+ lastError.recoveryStrategy = strategyName;
626
+ lastError.recoveryDuration = duration;
627
+ }
628
+ }
629
+
630
+ private recordFailedRecovery(error: Error, context: ErrorContext, duration: number): void {
631
+ const lastError = this.errorHistory[this.errorHistory.length - 1];
632
+ if (lastError) {
633
+ lastError.recovered = false;
634
+ lastError.recoveryDuration = duration;
635
+ }
636
+ }
637
+
638
+ private delay(ms: number): Promise<void> {
639
+ return new Promise(resolve => setTimeout(resolve, ms));
640
+ }
641
+ }
642
+
643
+ // Type definitions
644
+ interface ErrorRecord {
645
+ error: Error;
646
+ context: ErrorContext;
647
+ timestamp: Date;
648
+ recovered: boolean;
649
+ recoveryStrategy?: string;
650
+ recoveryDuration?: number;
651
+ }
652
+
653
+ // Export pre-configured strategies
654
+ export const FALLBACK_STRATEGIES = {
655
+ widget_deployment: [
656
+ 'retry',
657
+ 'scope_fallback',
658
+ 'permission_escalation',
659
+ 'partial_success',
660
+ 'manual_intervention'
661
+ ],
662
+ flow_creation: [
663
+ 'retry',
664
+ 'cache_invalidation',
665
+ 'scope_fallback',
666
+ 'manual_intervention'
667
+ ],
668
+ script_execution: [
669
+ 'retry',
670
+ 'permission_escalation',
671
+ 'partial_success',
672
+ 'manual_intervention'
673
+ ],
674
+ integration_failure: [
675
+ 'retry',
676
+ 'cache_invalidation',
677
+ 'partial_success',
678
+ 'manual_intervention'
679
+ ]
680
+ };