snow-flow 1.4.49 → 2.0.1

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 (600) 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.template → .claude/settings.local.json} +18 -21
  5. package/.claude-flow/metrics/system-metrics.json +3060 -0
  6. package/.env.example +64 -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 +140 -614
  13. package/dist/cli.js.bak +2052 -0
  14. package/package.json +2 -2
  15. package/scripts/create-env.js +6 -1
  16. package/scripts/reset-mcp-servers.js +246 -0
  17. package/scripts/update-version.js +31 -0
  18. package/src/agents/README.md +192 -0
  19. package/src/agents/base-agent.ts +251 -0
  20. package/src/agents/coordinator.ts +971 -0
  21. package/src/agents/index.ts +18 -0
  22. package/src/agents/queen-403-handler.ts +230 -0
  23. package/src/agents/queen-agent.ts +1399 -0
  24. package/src/agents/script-writer-agent.ts +769 -0
  25. package/src/agents/security-agent.ts +726 -0
  26. package/src/agents/widget-creator-agent.ts +568 -0
  27. package/src/api/error-handling.ts +1758 -0
  28. package/src/api/natural-language-mapper.ts +630 -0
  29. package/src/api/performance-optimizer.ts +891 -0
  30. package/src/api/transaction-manager.ts +754 -0
  31. package/src/cli/deploy-artifact.ts +304 -0
  32. package/src/cli/snow-flow-cli-integration.ts +434 -0
  33. package/src/cli.ts +4455 -0
  34. package/src/cli.ts.bak +5616 -0
  35. package/src/compliance/advanced-compliance-system.ts +1268 -0
  36. package/src/compliance/index.ts +19 -0
  37. package/src/config/snow-flow-config.ts +1019 -0
  38. package/src/documentation/index.ts +16 -0
  39. package/src/documentation/self-documenting-system.ts +1421 -0
  40. package/src/dynamic-version.ts +44 -0
  41. package/src/healing/index.ts +20 -0
  42. package/src/healing/self-healing-system.ts +1435 -0
  43. package/src/health/README.md +161 -0
  44. package/src/health/system-health.ts +995 -0
  45. package/src/index.ts +60 -0
  46. package/src/intelligence/acl-analyzer.ts +377 -0
  47. package/src/intelligence/auto-resolution-engine.ts +643 -0
  48. package/src/intelligence/gap-analysis-engine.ts +488 -0
  49. package/src/intelligence/manual-instructions-generator.ts +744 -0
  50. package/src/intelligence/mcp-coverage-analyzer.ts +708 -0
  51. package/src/intelligence/multi-pass-requirements-analyzer.ts +603 -0
  52. package/src/intelligence/performance-recommendations-engine.ts +1223 -0
  53. package/src/intelligence/requirements-analyzer.ts +1148 -0
  54. package/src/intelligence/task-analyzer.ts +628 -0
  55. package/src/managers/scope-manager.ts +555 -0
  56. package/src/mcp/advanced/servicenow-advanced-features-mcp.ts +16110 -0
  57. package/src/mcp/base-mcp-server.ts +660 -0
  58. package/src/mcp/http-transport-wrapper.ts +426 -0
  59. package/src/mcp/service-discovery-client.ts +312 -0
  60. package/src/mcp/servicenow-automation-mcp-refactored.ts +678 -0
  61. package/src/mcp/servicenow-automation-mcp.ts +838 -0
  62. package/src/mcp/servicenow-deployment-mcp-refactored.ts +1292 -0
  63. package/src/mcp/servicenow-deployment-mcp.ts +7244 -0
  64. package/src/mcp/servicenow-graph-memory-mcp-refactored.ts +721 -0
  65. package/src/mcp/servicenow-graph-memory-mcp.ts +832 -0
  66. package/src/mcp/servicenow-integration-mcp-refactored.ts +655 -0
  67. package/src/mcp/servicenow-integration-mcp.ts +819 -0
  68. package/src/mcp/servicenow-intelligent-mcp-refactored.ts +977 -0
  69. package/src/mcp/servicenow-intelligent-mcp.ts +4638 -0
  70. package/src/mcp/servicenow-mcp-server.ts +728 -0
  71. package/src/mcp/servicenow-memory-mcp.ts +474 -0
  72. package/src/mcp/servicenow-operations-mcp-refactored.ts +1995 -0
  73. package/src/mcp/servicenow-operations-mcp.ts +3384 -0
  74. package/src/mcp/servicenow-platform-development-mcp-refactored.ts +611 -0
  75. package/src/mcp/servicenow-platform-development-mcp.ts +970 -0
  76. package/src/mcp/servicenow-progressive-indexer.ts +370 -0
  77. package/src/mcp/servicenow-reporting-analytics-mcp-refactored.ts +695 -0
  78. package/src/mcp/servicenow-reporting-analytics-mcp.ts +1123 -0
  79. package/src/mcp/servicenow-security-compliance-mcp-refactored.ts +642 -0
  80. package/src/mcp/servicenow-security-compliance-mcp.ts +1157 -0
  81. package/src/mcp/servicenow-update-set-mcp-refactored.ts +751 -0
  82. package/src/mcp/servicenow-update-set-mcp.ts +811 -0
  83. package/src/mcp/shared/agent-context-provider.ts +365 -0
  84. package/src/mcp/shared/base-mcp-server.ts +2463 -0
  85. package/src/mcp/shared/mcp-memory-manager.ts +540 -0
  86. package/src/mcp/shared/mcp-resource-manager.ts +367 -0
  87. package/src/mcp/snow-flow-mcp.ts +911 -0
  88. package/src/mcp/start-all-mcp-servers.ts +102 -0
  89. package/src/mcp/start-servicenow-mcp.ts +67 -0
  90. package/src/monitoring/enhanced-monitoring-system.ts +1345 -0
  91. package/src/monitoring/performance-tracker.ts +777 -0
  92. package/src/optimization/cost-optimization-engine.ts +1125 -0
  93. package/src/optimization/index.ts +10 -0
  94. package/src/queen/README.md +403 -0
  95. package/src/queen/agent-factory.ts +574 -0
  96. package/src/queen/index.ts +94 -0
  97. package/src/queen/mcp-execution-bridge.ts +681 -0
  98. package/src/queen/neural-learning.ts +319 -0
  99. package/src/queen/parallel-agent-engine.ts +848 -0
  100. package/src/queen/queen-memory-system.ts +490 -0
  101. package/src/queen/queen-memory.ts +456 -0
  102. package/src/queen/servicenow-queen.ts +1029 -0
  103. package/src/queen/types.ts +87 -0
  104. package/src/rollback/smart-rollback-system.ts +866 -0
  105. package/src/schemas/deployment.schema.json +58 -0
  106. package/src/schemas/flow.schema.json +79 -0
  107. package/src/schemas/widget.schema.json +72 -0
  108. package/src/snow-flow-system.ts +541 -0
  109. package/src/sparc/sparc-help.ts +49 -0
  110. package/src/sparc/team-sparc.ts +88 -0
  111. package/src/strategies/global-scope-strategy.ts +736 -0
  112. package/src/templates/base/application.template.json +45 -0
  113. package/src/templates/base/business_rule.template.json +33 -0
  114. package/src/templates/base/script_include.template.json +18 -0
  115. package/src/templates/base/table.template.json +64 -0
  116. package/src/templates/base/widget.template.json +25 -0
  117. package/src/templates/patterns/composite.incident-management.template.json +140 -0
  118. package/src/templates/patterns/widget.dashboard.template.json +238 -0
  119. package/src/templates/patterns/widget.datatable.template.json +292 -0
  120. package/src/testing/integration-test-suite.ts +1276 -0
  121. package/src/types/index.ts +183 -0
  122. package/src/types/neo4j-driver.d.ts +23 -0
  123. package/src/types/servicenow.types.ts +307 -0
  124. package/src/types/snow-flow.types.ts +186 -0
  125. package/src/types/todo.types.ts +70 -0
  126. package/src/utils/action-type-cache.ts +286 -0
  127. package/src/utils/agent-detector.ts +573 -0
  128. package/src/utils/artifact-tracker.ts +379 -0
  129. package/src/utils/dependency-detector.ts +233 -0
  130. package/src/utils/deployment-metadata-handler.ts +518 -0
  131. package/src/utils/error-recovery.ts +680 -0
  132. package/src/utils/logger.ts +60 -0
  133. package/src/utils/mcp-auth-middleware.ts +262 -0
  134. package/src/utils/mcp-config-manager.ts +270 -0
  135. package/src/utils/mcp-server-manager.ts +446 -0
  136. package/src/utils/mcp-tool-registry.ts +298 -0
  137. package/src/utils/migrate-snow-flow.ts +98 -0
  138. package/src/utils/oauth-html-templates.ts +188 -0
  139. package/src/utils/scope-utils.ts +443 -0
  140. package/src/utils/servicenow-client.ts +3321 -0
  141. package/src/utils/servicenow-id-generator.ts +181 -0
  142. package/src/utils/snow-memory-manager.ts +605 -0
  143. package/src/utils/snow-oauth.ts +797 -0
  144. package/src/utils/template-engine.ts +463 -0
  145. package/src/utils/theme-manager.ts +295 -0
  146. package/src/utils/unified-auth-store.ts +222 -0
  147. package/src/utils/update-set-importer.ts +422 -0
  148. package/src/utils/update-set-xml-packager.ts +371 -0
  149. package/src/utils/widget-template-generator.ts +1744 -0
  150. package/src/version.ts +1950 -0
  151. package/.claude/commands/memory/README.md +0 -9
  152. package/.claude.mcp-config.template +0 -149
  153. package/SIMPLE_TEST_COMMANDS.txt +0 -143
  154. package/SNOW_FLOW_ADVANCED_FEATURES_PLAIN.txt +0 -78
  155. package/TEST_COMMANDS_v139.sh +0 -126
  156. package/claude-flow +0 -81
  157. package/claude-flow.bat +0 -18
  158. package/claude-flow.config.json +0 -20
  159. package/claude-flow.ps1 +0 -24
  160. package/dist/agents/app-creator.agent.d.ts.map +0 -1
  161. package/dist/agents/app-creator.agent.js.map +0 -1
  162. package/dist/agents/base/base-snow-agent.d.ts.map +0 -1
  163. package/dist/agents/base/base-snow-agent.js.map +0 -1
  164. package/dist/agents/base-agent.d.ts.map +0 -1
  165. package/dist/agents/base-agent.js.map +0 -1
  166. package/dist/agents/base-snow-agent.d.ts.map +0 -1
  167. package/dist/agents/base-snow-agent.js.map +0 -1
  168. package/dist/agents/coordinator.d.ts.map +0 -1
  169. package/dist/agents/coordinator.js.map +0 -1
  170. package/dist/agents/flow-builder-agent.d.ts.map +0 -1
  171. package/dist/agents/flow-builder-agent.js.map +0 -1
  172. package/dist/agents/index.d.ts.map +0 -1
  173. package/dist/agents/index.js.map +0 -1
  174. package/dist/agents/queen-403-handler.d.ts.map +0 -1
  175. package/dist/agents/queen-403-handler.js.map +0 -1
  176. package/dist/agents/queen-agent-example.d.ts.map +0 -1
  177. package/dist/agents/queen-agent-example.js.map +0 -1
  178. package/dist/agents/queen-agent.d.ts.map +0 -1
  179. package/dist/agents/queen-agent.js.map +0 -1
  180. package/dist/agents/queen-agent.test.d.ts.map +0 -1
  181. package/dist/agents/queen-agent.test.js.map +0 -1
  182. package/dist/agents/script-generator.agent.d.ts.map +0 -1
  183. package/dist/agents/script-generator.agent.js.map +0 -1
  184. package/dist/agents/script-writer-agent.d.ts.map +0 -1
  185. package/dist/agents/script-writer-agent.js.map +0 -1
  186. package/dist/agents/security-agent.d.ts.map +0 -1
  187. package/dist/agents/security-agent.js.map +0 -1
  188. package/dist/agents/specialists/automation-specialist.agent.d.ts.map +0 -1
  189. package/dist/agents/specialists/automation-specialist.agent.js.map +0 -1
  190. package/dist/agents/specialists/data-specialist.agent.d.ts.map +0 -1
  191. package/dist/agents/specialists/data-specialist.agent.js.map +0 -1
  192. package/dist/agents/specialists/integration-specialist.agent.d.ts.map +0 -1
  193. package/dist/agents/specialists/integration-specialist.agent.js.map +0 -1
  194. package/dist/agents/specialists/reporting-specialist.agent.d.ts.map +0 -1
  195. package/dist/agents/specialists/reporting-specialist.agent.js.map +0 -1
  196. package/dist/agents/specialists/security-specialist.agent.d.ts.map +0 -1
  197. package/dist/agents/specialists/security-specialist.agent.js.map +0 -1
  198. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts.map +0 -1
  199. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js.map +0 -1
  200. package/dist/agents/teams/base-team.d.ts.map +0 -1
  201. package/dist/agents/teams/base-team.js.map +0 -1
  202. package/dist/agents/teams/team-types.d.ts.map +0 -1
  203. package/dist/agents/teams/team-types.js.map +0 -1
  204. package/dist/agents/teams/widget/widget-architect.agent.d.ts.map +0 -1
  205. package/dist/agents/teams/widget/widget-architect.agent.js.map +0 -1
  206. package/dist/agents/teams/widget/widget-backend.agent.d.ts.map +0 -1
  207. package/dist/agents/teams/widget/widget-backend.agent.js.map +0 -1
  208. package/dist/agents/teams/widget/widget-frontend.agent.d.ts.map +0 -1
  209. package/dist/agents/teams/widget/widget-frontend.agent.js.map +0 -1
  210. package/dist/agents/teams/widget/widget-platform.agent.d.ts.map +0 -1
  211. package/dist/agents/teams/widget/widget-platform.agent.js.map +0 -1
  212. package/dist/agents/teams/widget/widget-uiux.agent.d.ts.map +0 -1
  213. package/dist/agents/teams/widget/widget-uiux.agent.js.map +0 -1
  214. package/dist/agents/test-agent.d.ts.map +0 -1
  215. package/dist/agents/test-agent.js.map +0 -1
  216. package/dist/agents/test-agents.d.ts.map +0 -1
  217. package/dist/agents/test-agents.js.map +0 -1
  218. package/dist/agents/ui-builder.agent.d.ts.map +0 -1
  219. package/dist/agents/ui-builder.agent.js.map +0 -1
  220. package/dist/agents/widget-builder.agent.d.ts.map +0 -1
  221. package/dist/agents/widget-builder.agent.js.map +0 -1
  222. package/dist/agents/widget-creator-agent.d.ts.map +0 -1
  223. package/dist/agents/widget-creator-agent.js.map +0 -1
  224. package/dist/agents/workflow-designer.agent.d.ts.map +0 -1
  225. package/dist/agents/workflow-designer.agent.js.map +0 -1
  226. package/dist/api/error-handling.d.ts.map +0 -1
  227. package/dist/api/error-handling.js.map +0 -1
  228. package/dist/api/flow-designer-api.d.ts.map +0 -1
  229. package/dist/api/flow-designer-api.js.map +0 -1
  230. package/dist/api/natural-language-mapper.d.ts.map +0 -1
  231. package/dist/api/natural-language-mapper.js.map +0 -1
  232. package/dist/api/performance-optimizer.d.ts.map +0 -1
  233. package/dist/api/performance-optimizer.js.map +0 -1
  234. package/dist/api/transaction-manager.d.ts.map +0 -1
  235. package/dist/api/transaction-manager.js.map +0 -1
  236. package/dist/assembly/team-assembler.d.ts.map +0 -1
  237. package/dist/assembly/team-assembler.js.map +0 -1
  238. package/dist/cli/deploy-artifact.d.ts.map +0 -1
  239. package/dist/cli/deploy-artifact.js.map +0 -1
  240. package/dist/cli/snow-flow-cli-integration.d.ts.map +0 -1
  241. package/dist/cli/snow-flow-cli-integration.js.map +0 -1
  242. package/dist/cli.d.ts.map +0 -1
  243. package/dist/cli.js.map +0 -1
  244. package/dist/compliance/advanced-compliance-system.d.ts.map +0 -1
  245. package/dist/compliance/advanced-compliance-system.js.map +0 -1
  246. package/dist/compliance/index.d.ts.map +0 -1
  247. package/dist/compliance/index.js.map +0 -1
  248. package/dist/config/snow-flow-config.d.ts.map +0 -1
  249. package/dist/config/snow-flow-config.js.map +0 -1
  250. package/dist/documentation/index.d.ts.map +0 -1
  251. package/dist/documentation/index.js.map +0 -1
  252. package/dist/documentation/self-documenting-system.d.ts.map +0 -1
  253. package/dist/documentation/self-documenting-system.js.map +0 -1
  254. package/dist/dynamic-version.d.ts.map +0 -1
  255. package/dist/dynamic-version.js.map +0 -1
  256. package/dist/healing/index.d.ts.map +0 -1
  257. package/dist/healing/index.js.map +0 -1
  258. package/dist/healing/self-healing-system.d.ts.map +0 -1
  259. package/dist/healing/self-healing-system.js.map +0 -1
  260. package/dist/health/system-health.d.ts.map +0 -1
  261. package/dist/health/system-health.js.map +0 -1
  262. package/dist/index.d.ts.map +0 -1
  263. package/dist/index.js.map +0 -1
  264. package/dist/intelligence/acl-analyzer.d.ts.map +0 -1
  265. package/dist/intelligence/acl-analyzer.js.map +0 -1
  266. package/dist/intelligence/auto-resolution-engine.d.ts.map +0 -1
  267. package/dist/intelligence/auto-resolution-engine.js.map +0 -1
  268. package/dist/intelligence/gap-analysis-engine.d.ts.map +0 -1
  269. package/dist/intelligence/gap-analysis-engine.js.map +0 -1
  270. package/dist/intelligence/manual-instructions-generator.d.ts.map +0 -1
  271. package/dist/intelligence/manual-instructions-generator.js.map +0 -1
  272. package/dist/intelligence/mcp-coverage-analyzer.d.ts.map +0 -1
  273. package/dist/intelligence/mcp-coverage-analyzer.js.map +0 -1
  274. package/dist/intelligence/multi-pass-requirements-analyzer.d.ts.map +0 -1
  275. package/dist/intelligence/multi-pass-requirements-analyzer.js.map +0 -1
  276. package/dist/intelligence/performance-recommendations-engine.d.ts.map +0 -1
  277. package/dist/intelligence/performance-recommendations-engine.js.map +0 -1
  278. package/dist/intelligence/requirements-analyzer.d.ts.map +0 -1
  279. package/dist/intelligence/requirements-analyzer.js.map +0 -1
  280. package/dist/intelligence/task-analyzer.d.ts.map +0 -1
  281. package/dist/intelligence/task-analyzer.js.map +0 -1
  282. package/dist/managers/scope-manager.d.ts.map +0 -1
  283. package/dist/managers/scope-manager.js.map +0 -1
  284. package/dist/mcp/advanced/servicenow-advanced-features-mcp.d.ts.map +0 -1
  285. package/dist/mcp/advanced/servicenow-advanced-features-mcp.js.map +0 -1
  286. package/dist/mcp/base-mcp-server.d.ts.map +0 -1
  287. package/dist/mcp/base-mcp-server.js.map +0 -1
  288. package/dist/mcp/example-refactored-server.d.ts.map +0 -1
  289. package/dist/mcp/example-refactored-server.js.map +0 -1
  290. package/dist/mcp/http-transport-wrapper.d.ts.map +0 -1
  291. package/dist/mcp/http-transport-wrapper.js.map +0 -1
  292. package/dist/mcp/mcp-wrapper.d.ts.map +0 -1
  293. package/dist/mcp/mcp-wrapper.js.map +0 -1
  294. package/dist/mcp/service-discovery-client.d.ts.map +0 -1
  295. package/dist/mcp/service-discovery-client.js.map +0 -1
  296. package/dist/mcp/servicenow-automation-mcp-refactored.d.ts.map +0 -1
  297. package/dist/mcp/servicenow-automation-mcp-refactored.js.map +0 -1
  298. package/dist/mcp/servicenow-automation-mcp.d.ts.map +0 -1
  299. package/dist/mcp/servicenow-automation-mcp.js.map +0 -1
  300. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +0 -1
  301. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +0 -1
  302. package/dist/mcp/servicenow-deployment-mcp.d.ts.map +0 -1
  303. package/dist/mcp/servicenow-deployment-mcp.js.map +0 -1
  304. package/dist/mcp/servicenow-flow-composer-mcp-refactored.d.ts.map +0 -1
  305. package/dist/mcp/servicenow-flow-composer-mcp-refactored.js.map +0 -1
  306. package/dist/mcp/servicenow-flow-composer-mcp.d.ts.map +0 -1
  307. package/dist/mcp/servicenow-flow-composer-mcp.js.map +0 -1
  308. package/dist/mcp/servicenow-graph-memory-mcp-refactored.d.ts.map +0 -1
  309. package/dist/mcp/servicenow-graph-memory-mcp-refactored.js.map +0 -1
  310. package/dist/mcp/servicenow-graph-memory-mcp.d.ts.map +0 -1
  311. package/dist/mcp/servicenow-graph-memory-mcp.js.map +0 -1
  312. package/dist/mcp/servicenow-integration-mcp-refactored.d.ts.map +0 -1
  313. package/dist/mcp/servicenow-integration-mcp-refactored.js.map +0 -1
  314. package/dist/mcp/servicenow-integration-mcp.d.ts.map +0 -1
  315. package/dist/mcp/servicenow-integration-mcp.js.map +0 -1
  316. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +0 -1
  317. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +0 -1
  318. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +0 -1
  319. package/dist/mcp/servicenow-intelligent-mcp.js.map +0 -1
  320. package/dist/mcp/servicenow-mcp-server.d.ts.map +0 -1
  321. package/dist/mcp/servicenow-mcp-server.js.map +0 -1
  322. package/dist/mcp/servicenow-memory-mcp.d.ts.map +0 -1
  323. package/dist/mcp/servicenow-memory-mcp.js.map +0 -1
  324. package/dist/mcp/servicenow-operations-mcp-refactored.d.ts.map +0 -1
  325. package/dist/mcp/servicenow-operations-mcp-refactored.js.map +0 -1
  326. package/dist/mcp/servicenow-operations-mcp.d.ts.map +0 -1
  327. package/dist/mcp/servicenow-operations-mcp.js.map +0 -1
  328. package/dist/mcp/servicenow-platform-development-mcp-refactored.d.ts.map +0 -1
  329. package/dist/mcp/servicenow-platform-development-mcp-refactored.js.map +0 -1
  330. package/dist/mcp/servicenow-platform-development-mcp.d.ts.map +0 -1
  331. package/dist/mcp/servicenow-platform-development-mcp.js.map +0 -1
  332. package/dist/mcp/servicenow-progressive-indexer.d.ts.map +0 -1
  333. package/dist/mcp/servicenow-progressive-indexer.js.map +0 -1
  334. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.d.ts.map +0 -1
  335. package/dist/mcp/servicenow-reporting-analytics-mcp-refactored.js.map +0 -1
  336. package/dist/mcp/servicenow-reporting-analytics-mcp.d.ts.map +0 -1
  337. package/dist/mcp/servicenow-reporting-analytics-mcp.js.map +0 -1
  338. package/dist/mcp/servicenow-security-compliance-mcp-refactored.d.ts.map +0 -1
  339. package/dist/mcp/servicenow-security-compliance-mcp-refactored.js.map +0 -1
  340. package/dist/mcp/servicenow-security-compliance-mcp.d.ts.map +0 -1
  341. package/dist/mcp/servicenow-security-compliance-mcp.js.map +0 -1
  342. package/dist/mcp/servicenow-update-set-mcp-refactored.d.ts.map +0 -1
  343. package/dist/mcp/servicenow-update-set-mcp-refactored.js.map +0 -1
  344. package/dist/mcp/servicenow-update-set-mcp.d.ts.map +0 -1
  345. package/dist/mcp/servicenow-update-set-mcp.js.map +0 -1
  346. package/dist/mcp/servicenow-xml-flow-mcp.d.ts.map +0 -1
  347. package/dist/mcp/servicenow-xml-flow-mcp.js.map +0 -1
  348. package/dist/mcp/shared/agent-context-provider.d.ts.map +0 -1
  349. package/dist/mcp/shared/agent-context-provider.js.map +0 -1
  350. package/dist/mcp/shared/base-mcp-server.d.ts.map +0 -1
  351. package/dist/mcp/shared/base-mcp-server.js.map +0 -1
  352. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +0 -1
  353. package/dist/mcp/shared/mcp-memory-manager.js.map +0 -1
  354. package/dist/mcp/shared/mcp-resource-manager.d.ts.map +0 -1
  355. package/dist/mcp/shared/mcp-resource-manager.js.map +0 -1
  356. package/dist/mcp/snow-flow-mcp.d.ts.map +0 -1
  357. package/dist/mcp/snow-flow-mcp.js.map +0 -1
  358. package/dist/mcp/start-all-mcp-servers.d.ts.map +0 -1
  359. package/dist/mcp/start-all-mcp-servers.js.map +0 -1
  360. package/dist/mcp/start-servicenow-mcp.d.ts.map +0 -1
  361. package/dist/mcp/start-servicenow-mcp.js.map +0 -1
  362. package/dist/mcp/test-simple-mcp.d.ts.map +0 -1
  363. package/dist/mcp/test-simple-mcp.js.map +0 -1
  364. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  365. package/dist/memory/hierarchical-memory-system.d.ts.map +0 -1
  366. package/dist/memory/hierarchical-memory-system.js +0 -400
  367. package/dist/memory/hierarchical-memory-system.js.map +0 -1
  368. package/dist/memory/index.d.ts +0 -9
  369. package/dist/memory/index.d.ts.map +0 -1
  370. package/dist/memory/index.js +0 -20
  371. package/dist/memory/index.js.map +0 -1
  372. package/dist/memory/mcp-integration-example.d.ts +0 -6
  373. package/dist/memory/mcp-integration-example.d.ts.map +0 -1
  374. package/dist/memory/mcp-integration-example.js +0 -281
  375. package/dist/memory/mcp-integration-example.js.map +0 -1
  376. package/dist/memory/memory-client.d.ts +0 -199
  377. package/dist/memory/memory-client.d.ts.map +0 -1
  378. package/dist/memory/memory-client.js +0 -364
  379. package/dist/memory/memory-client.js.map +0 -1
  380. package/dist/memory/memory-manager.d.ts +0 -29
  381. package/dist/memory/memory-manager.d.ts.map +0 -1
  382. package/dist/memory/memory-manager.js +0 -280
  383. package/dist/memory/memory-manager.js.map +0 -1
  384. package/dist/memory/memory-operations.d.ts +0 -179
  385. package/dist/memory/memory-operations.d.ts.map +0 -1
  386. package/dist/memory/memory-operations.js +0 -691
  387. package/dist/memory/memory-operations.js.map +0 -1
  388. package/dist/memory/memory-system.d.ts +0 -152
  389. package/dist/memory/memory-system.d.ts.map +0 -1
  390. package/dist/memory/memory-system.js +0 -632
  391. package/dist/memory/memory-system.js.map +0 -1
  392. package/dist/memory/memory-test.d.ts +0 -6
  393. package/dist/memory/memory-test.d.ts.map +0 -1
  394. package/dist/memory/memory-test.js +0 -161
  395. package/dist/memory/memory-test.js.map +0 -1
  396. package/dist/memory/servicenow-artifact-indexer.d.ts +0 -119
  397. package/dist/memory/servicenow-artifact-indexer.d.ts.map +0 -1
  398. package/dist/memory/servicenow-artifact-indexer.js +0 -560
  399. package/dist/memory/servicenow-artifact-indexer.js.map +0 -1
  400. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  401. package/dist/memory/snow-flow-memory-patterns.d.ts.map +0 -1
  402. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  403. package/dist/memory/snow-flow-memory-patterns.js.map +0 -1
  404. package/dist/memory/snow-memory.d.ts +0 -54
  405. package/dist/memory/snow-memory.d.ts.map +0 -1
  406. package/dist/memory/snow-memory.js +0 -301
  407. package/dist/memory/snow-memory.js.map +0 -1
  408. package/dist/memory/swarm-memory.d.ts +0 -135
  409. package/dist/memory/swarm-memory.d.ts.map +0 -1
  410. package/dist/memory/swarm-memory.js +0 -378
  411. package/dist/memory/swarm-memory.js.map +0 -1
  412. package/dist/monitoring/enhanced-monitoring-system.d.ts.map +0 -1
  413. package/dist/monitoring/enhanced-monitoring-system.js.map +0 -1
  414. package/dist/monitoring/performance-tracker.d.ts.map +0 -1
  415. package/dist/monitoring/performance-tracker.js.map +0 -1
  416. package/dist/optimization/cost-optimization-engine.d.ts.map +0 -1
  417. package/dist/optimization/cost-optimization-engine.js.map +0 -1
  418. package/dist/optimization/index.d.ts.map +0 -1
  419. package/dist/optimization/index.js.map +0 -1
  420. package/dist/orchestration/discovery/service-discovery.d.ts.map +0 -1
  421. package/dist/orchestration/discovery/service-discovery.js.map +0 -1
  422. package/dist/orchestration/distributed-orchestrator.d.ts.map +0 -1
  423. package/dist/orchestration/distributed-orchestrator.js.map +0 -1
  424. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +0 -1
  425. package/dist/orchestration/distribution/task-distribution-engine.js.map +0 -1
  426. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +0 -1
  427. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +0 -1
  428. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +0 -1
  429. package/dist/orchestration/protocols/mcpx-protocol.js.map +0 -1
  430. package/dist/orchestration/state/distributed-state-manager.d.ts.map +0 -1
  431. package/dist/orchestration/state/distributed-state-manager.js.map +0 -1
  432. package/dist/orchestrator/flow-composer.d.ts.map +0 -1
  433. package/dist/orchestrator/flow-composer.js.map +0 -1
  434. package/dist/orchestrator/flow-pattern-templates.d.ts.map +0 -1
  435. package/dist/orchestrator/flow-pattern-templates.js.map +0 -1
  436. package/dist/orchestrator/flow-subflow-decision-engine.d.ts.map +0 -1
  437. package/dist/orchestrator/flow-subflow-decision-engine.js.map +0 -1
  438. package/dist/orchestrator/flow-validation-engine.d.ts.map +0 -1
  439. package/dist/orchestrator/flow-validation-engine.js.map +0 -1
  440. package/dist/orchestrator/snow-orchestrator.d.ts.map +0 -1
  441. package/dist/orchestrator/snow-orchestrator.js.map +0 -1
  442. package/dist/orchestrator/subflow-creation-handler.d.ts.map +0 -1
  443. package/dist/orchestrator/subflow-creation-handler.js.map +0 -1
  444. package/dist/patterns/adaptive-patterns.d.ts.map +0 -1
  445. package/dist/patterns/adaptive-patterns.js.map +0 -1
  446. package/dist/queen/advanced-integration-test.d.ts.map +0 -1
  447. package/dist/queen/advanced-integration-test.js.map +0 -1
  448. package/dist/queen/agent-factory.d.ts.map +0 -1
  449. package/dist/queen/agent-factory.js.map +0 -1
  450. package/dist/queen/index.d.ts.map +0 -1
  451. package/dist/queen/index.js.map +0 -1
  452. package/dist/queen/integration-example.d.ts.map +0 -1
  453. package/dist/queen/integration-example.js.map +0 -1
  454. package/dist/queen/integration-test.d.ts.map +0 -1
  455. package/dist/queen/integration-test.js.map +0 -1
  456. package/dist/queen/mcp-execution-bridge.d.ts.map +0 -1
  457. package/dist/queen/mcp-execution-bridge.js.map +0 -1
  458. package/dist/queen/mock-mcp-client.d.ts.map +0 -1
  459. package/dist/queen/mock-mcp-client.js.map +0 -1
  460. package/dist/queen/neural-learning.d.ts.map +0 -1
  461. package/dist/queen/neural-learning.js.map +0 -1
  462. package/dist/queen/parallel-agent-engine.d.ts.map +0 -1
  463. package/dist/queen/parallel-agent-engine.js.map +0 -1
  464. package/dist/queen/queen-memory-system.d.ts.map +0 -1
  465. package/dist/queen/queen-memory-system.js.map +0 -1
  466. package/dist/queen/queen-memory.d.ts.map +0 -1
  467. package/dist/queen/queen-memory.js.map +0 -1
  468. package/dist/queen/run-integration-tests.d.ts.map +0 -1
  469. package/dist/queen/run-integration-tests.js.map +0 -1
  470. package/dist/queen/servicenow-queen.d.ts.map +0 -1
  471. package/dist/queen/servicenow-queen.js.map +0 -1
  472. package/dist/queen/types.d.ts.map +0 -1
  473. package/dist/queen/types.js.map +0 -1
  474. package/dist/rollback/smart-rollback-system.d.ts.map +0 -1
  475. package/dist/rollback/smart-rollback-system.js.map +0 -1
  476. package/dist/snow-flow-system.d.ts.map +0 -1
  477. package/dist/snow-flow-system.js.map +0 -1
  478. package/dist/sparc/coordinators/adaptive-coordinator.d.ts.map +0 -1
  479. package/dist/sparc/coordinators/adaptive-coordinator.js.map +0 -1
  480. package/dist/sparc/coordinators/team-coordinator.d.ts.map +0 -1
  481. package/dist/sparc/coordinators/team-coordinator.js.map +0 -1
  482. package/dist/sparc/modes/team-modes.d.ts.map +0 -1
  483. package/dist/sparc/modes/team-modes.js.map +0 -1
  484. package/dist/sparc/sparc-help.d.ts.map +0 -1
  485. package/dist/sparc/sparc-help.js.map +0 -1
  486. package/dist/sparc/team-sparc.d.ts.map +0 -1
  487. package/dist/sparc/team-sparc.js.map +0 -1
  488. package/dist/sparc/teams/application-team.d.ts.map +0 -1
  489. package/dist/sparc/teams/application-team.js.map +0 -1
  490. package/dist/sparc/teams/flow-team.d.ts.map +0 -1
  491. package/dist/sparc/teams/flow-team.js.map +0 -1
  492. package/dist/sparc/teams/widget-team.d.ts.map +0 -1
  493. package/dist/sparc/teams/widget-team.js.map +0 -1
  494. package/dist/specialists/app-specialists.d.ts.map +0 -1
  495. package/dist/specialists/app-specialists.js.map +0 -1
  496. package/dist/specialists/base-specialist.d.ts.map +0 -1
  497. package/dist/specialists/base-specialist.js.map +0 -1
  498. package/dist/specialists/flow-specialists.d.ts.map +0 -1
  499. package/dist/specialists/flow-specialists.js.map +0 -1
  500. package/dist/specialists/individual-specialists.d.ts.map +0 -1
  501. package/dist/specialists/individual-specialists.js.map +0 -1
  502. package/dist/specialists/widget-specialists.d.ts.map +0 -1
  503. package/dist/specialists/widget-specialists.js.map +0 -1
  504. package/dist/strategies/global-scope-strategy.d.ts.map +0 -1
  505. package/dist/strategies/global-scope-strategy.js.map +0 -1
  506. package/dist/teams/adaptive-team.d.ts.map +0 -1
  507. package/dist/teams/adaptive-team.js.map +0 -1
  508. package/dist/teams/application-team.d.ts.map +0 -1
  509. package/dist/teams/application-team.js.map +0 -1
  510. package/dist/teams/base-team.d.ts.map +0 -1
  511. package/dist/teams/base-team.js.map +0 -1
  512. package/dist/teams/flow-team.d.ts.map +0 -1
  513. package/dist/teams/flow-team.js.map +0 -1
  514. package/dist/teams/widget-team.d.ts.map +0 -1
  515. package/dist/teams/widget-team.js.map +0 -1
  516. package/dist/testing/integration-test-suite.d.ts.map +0 -1
  517. package/dist/testing/integration-test-suite.js.map +0 -1
  518. package/dist/types/index.d.ts.map +0 -1
  519. package/dist/types/index.js.map +0 -1
  520. package/dist/types/servicenow.types.d.ts.map +0 -1
  521. package/dist/types/servicenow.types.js.map +0 -1
  522. package/dist/types/snow-flow.types.d.ts.map +0 -1
  523. package/dist/types/snow-flow.types.js.map +0 -1
  524. package/dist/types/todo.types.d.ts.map +0 -1
  525. package/dist/types/todo.types.js.map +0 -1
  526. package/dist/utils/action-type-cache.d.ts.map +0 -1
  527. package/dist/utils/action-type-cache.js.map +0 -1
  528. package/dist/utils/agent-detector.d.ts.map +0 -1
  529. package/dist/utils/agent-detector.js.map +0 -1
  530. package/dist/utils/artifact-tracker.d.ts.map +0 -1
  531. package/dist/utils/artifact-tracker.js.map +0 -1
  532. package/dist/utils/dependency-detector.d.ts.map +0 -1
  533. package/dist/utils/dependency-detector.js.map +0 -1
  534. package/dist/utils/deployment-metadata-handler.d.ts.map +0 -1
  535. package/dist/utils/deployment-metadata-handler.js.map +0 -1
  536. package/dist/utils/error-recovery.d.ts.map +0 -1
  537. package/dist/utils/error-recovery.js.map +0 -1
  538. package/dist/utils/flow-api-discovery.d.ts.map +0 -1
  539. package/dist/utils/flow-api-discovery.js.map +0 -1
  540. package/dist/utils/flow-xml-generator.d.ts.map +0 -1
  541. package/dist/utils/flow-xml-generator.js.map +0 -1
  542. package/dist/utils/logger.d.ts.map +0 -1
  543. package/dist/utils/logger.js.map +0 -1
  544. package/dist/utils/mcp-auth-middleware.d.ts.map +0 -1
  545. package/dist/utils/mcp-auth-middleware.js.map +0 -1
  546. package/dist/utils/mcp-config-manager.d.ts.map +0 -1
  547. package/dist/utils/mcp-config-manager.js.map +0 -1
  548. package/dist/utils/mcp-server-manager.d.ts.map +0 -1
  549. package/dist/utils/mcp-server-manager.js.map +0 -1
  550. package/dist/utils/mcp-tool-registry.d.ts.map +0 -1
  551. package/dist/utils/mcp-tool-registry.js.map +0 -1
  552. package/dist/utils/migrate-claude-flow.d.ts.map +0 -1
  553. package/dist/utils/migrate-claude-flow.js.map +0 -1
  554. package/dist/utils/migrate-snow-flow.d.ts.map +0 -1
  555. package/dist/utils/migrate-snow-flow.js.map +0 -1
  556. package/dist/utils/oauth-html-templates.d.ts.map +0 -1
  557. package/dist/utils/oauth-html-templates.js.map +0 -1
  558. package/dist/utils/scope-utils.d.ts.map +0 -1
  559. package/dist/utils/scope-utils.js.map +0 -1
  560. package/dist/utils/servicenow-client.d.ts.map +0 -1
  561. package/dist/utils/servicenow-client.js.map +0 -1
  562. package/dist/utils/servicenow-id-generator.d.ts.map +0 -1
  563. package/dist/utils/servicenow-id-generator.js.map +0 -1
  564. package/dist/utils/snow-memory-manager.d.ts.map +0 -1
  565. package/dist/utils/snow-memory-manager.js.map +0 -1
  566. package/dist/utils/snow-oauth-old.d.ts.map +0 -1
  567. package/dist/utils/snow-oauth-old.js.map +0 -1
  568. package/dist/utils/snow-oauth.d.ts.map +0 -1
  569. package/dist/utils/snow-oauth.js.map +0 -1
  570. package/dist/utils/template-engine.d.ts.map +0 -1
  571. package/dist/utils/template-engine.js.map +0 -1
  572. package/dist/utils/theme-manager.d.ts.map +0 -1
  573. package/dist/utils/theme-manager.js.map +0 -1
  574. package/dist/utils/unified-auth-store.d.ts.map +0 -1
  575. package/dist/utils/unified-auth-store.js.map +0 -1
  576. package/dist/utils/update-set-importer.d.ts.map +0 -1
  577. package/dist/utils/update-set-importer.js.map +0 -1
  578. package/dist/utils/update-set-xml-packager.d.ts.map +0 -1
  579. package/dist/utils/update-set-xml-packager.js.map +0 -1
  580. package/dist/utils/widget-template-generator.d.ts.map +0 -1
  581. package/dist/utils/widget-template-generator.js.map +0 -1
  582. package/dist/version.d.ts.map +0 -1
  583. package/dist/version.js.map +0 -1
  584. package/memory/agents/README.md +0 -31
  585. package/memory/claude-flow-data.json +0 -5
  586. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  587. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  588. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  589. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  590. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  591. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  592. package/memory/sessions/README.md +0 -32
  593. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  594. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  595. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  596. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  597. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  598. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  599. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  600. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
@@ -0,0 +1,777 @@
1
+ /**
2
+ * Snow-Flow Performance Monitoring System
3
+ * Real-time metrics collection and analysis
4
+ */
5
+
6
+ import { EventEmitter } from 'events';
7
+ import { MemorySystem } from '../memory/memory-system';
8
+ import { Logger } from '../utils/logger';
9
+
10
+ export interface PerformanceMetric {
11
+ id: string;
12
+ operation: string;
13
+ startTime: number;
14
+ endTime?: number;
15
+ duration?: number;
16
+ success: boolean;
17
+ metadata: Record<string, any>;
18
+ sessionId?: string;
19
+ agentId?: string;
20
+ resourceUsage?: ResourceUsage;
21
+ error?: string;
22
+ }
23
+
24
+ export interface ResourceUsage {
25
+ cpuUsage: number;
26
+ memoryUsage: number;
27
+ heapUsed: number;
28
+ heapTotal: number;
29
+ external: number;
30
+ arrayBuffers: number;
31
+ }
32
+
33
+ export interface AggregateMetrics {
34
+ operation: string;
35
+ count: number;
36
+ successCount: number;
37
+ failureCount: number;
38
+ averageDuration: number;
39
+ minDuration: number;
40
+ maxDuration: number;
41
+ percentile95: number;
42
+ percentile99: number;
43
+ errorRate: number;
44
+ throughput: number; // operations per second
45
+ }
46
+
47
+ export interface SessionMetrics {
48
+ sessionId: string;
49
+ startTime: Date;
50
+ endTime?: Date;
51
+ duration?: number;
52
+ operationCount: number;
53
+ successCount: number;
54
+ failureCount: number;
55
+ agentCount: number;
56
+ artifactCount: number;
57
+ averageOperationTime: number;
58
+ resourceUsage: ResourceUsage[];
59
+ }
60
+
61
+ export interface PerformanceReport {
62
+ timestamp: Date;
63
+ period: string;
64
+ summary: {
65
+ totalOperations: number;
66
+ successRate: number;
67
+ averageResponseTime: number;
68
+ peakConcurrency: number;
69
+ errorRate: number;
70
+ };
71
+ operationMetrics: AggregateMetrics[];
72
+ sessionMetrics: SessionMetrics[];
73
+ bottlenecks: Bottleneck[];
74
+ recommendations: string[];
75
+ }
76
+
77
+ export interface Bottleneck {
78
+ operation: string;
79
+ severity: 'low' | 'medium' | 'high' | 'critical';
80
+ impact: string;
81
+ occurrences: number;
82
+ averageDelay: number;
83
+ recommendation: string;
84
+ }
85
+
86
+ interface TrackerConfig {
87
+ memory: MemorySystem;
88
+ config: {
89
+ sampleRate: number;
90
+ metricsRetention: number;
91
+ aggregationInterval: number;
92
+ };
93
+ }
94
+
95
+ export class PerformanceTracker extends EventEmitter {
96
+ private memory: MemorySystem;
97
+ private logger: Logger;
98
+ private config: TrackerConfig['config'];
99
+ private activeOperations: Map<string, PerformanceMetric> = new Map();
100
+ private metricsBuffer: PerformanceMetric[] = [];
101
+ private aggregationTimer?: NodeJS.Timeout;
102
+ private initialized = false;
103
+
104
+ constructor(options: TrackerConfig) {
105
+ super();
106
+ this.memory = options.memory;
107
+ this.config = options.config;
108
+ this.logger = new Logger('PerformanceTracker');
109
+ }
110
+
111
+ /**
112
+ * Initialize the performance tracker
113
+ */
114
+ async initialize(): Promise<void> {
115
+ if (this.initialized) return;
116
+
117
+ this.logger.info('Initializing Performance Tracker...');
118
+
119
+ // Create performance tables if not exist
120
+ await this.createPerformanceTables();
121
+
122
+ // Start aggregation timer
123
+ this.startAggregation();
124
+
125
+ // Monitor system resources
126
+ this.startResourceMonitoring();
127
+
128
+ this.initialized = true;
129
+ this.logger.info('Performance Tracker initialized');
130
+ }
131
+
132
+ /**
133
+ * Start tracking an operation
134
+ */
135
+ async startOperation(operation: string, metadata: Record<string, any> = {}): Promise<string> {
136
+ // Apply sampling rate
137
+ if (Math.random() > this.config.sampleRate) {
138
+ return 'not_sampled';
139
+ }
140
+
141
+ const id = this.generateMetricId();
142
+ const metric: PerformanceMetric = {
143
+ id,
144
+ operation,
145
+ startTime: Date.now(),
146
+ success: false,
147
+ metadata,
148
+ sessionId: metadata.sessionId,
149
+ agentId: metadata.agentId,
150
+ resourceUsage: this.captureResourceUsage()
151
+ };
152
+
153
+ this.activeOperations.set(id, metric);
154
+
155
+ // Emit start event
156
+ this.emit('operation:start', {
157
+ id,
158
+ operation,
159
+ metadata
160
+ });
161
+
162
+ return id;
163
+ }
164
+
165
+ /**
166
+ * End tracking an operation
167
+ */
168
+ async endOperation(operationId: string, result: { success: boolean; error?: string; metadata?: any }): Promise<void> {
169
+ const metric = this.activeOperations.get(operationId);
170
+ if (!metric || operationId === 'not_sampled') return;
171
+
172
+ metric.endTime = Date.now();
173
+ metric.duration = metric.endTime - metric.startTime;
174
+ metric.success = result.success;
175
+ metric.error = result.error;
176
+
177
+ if (result.metadata) {
178
+ Object.assign(metric.metadata, result.metadata);
179
+ }
180
+
181
+ // Capture final resource usage
182
+ const finalResourceUsage = this.captureResourceUsage();
183
+ metric.resourceUsage = this.calculateResourceDelta(metric.resourceUsage!, finalResourceUsage);
184
+
185
+ // Remove from active and add to buffer
186
+ this.activeOperations.delete(operationId);
187
+ this.metricsBuffer.push(metric);
188
+
189
+ // Store immediately if buffer is large
190
+ if (this.metricsBuffer.length >= 100) {
191
+ await this.flushMetrics();
192
+ }
193
+
194
+ // Emit end event
195
+ this.emit('operation:end', {
196
+ id: operationId,
197
+ operation: metric.operation,
198
+ duration: metric.duration,
199
+ success: metric.success
200
+ });
201
+
202
+ // Check for performance issues
203
+ this.checkPerformanceThresholds(metric);
204
+ }
205
+
206
+ /**
207
+ * Track a complete operation (convenience method)
208
+ */
209
+ async trackOperation<T>(
210
+ operation: string,
211
+ metadata: Record<string, any>,
212
+ fn: () => Promise<T>
213
+ ): Promise<T> {
214
+ const id = await this.startOperation(operation, metadata);
215
+
216
+ try {
217
+ const result = await fn();
218
+ await this.endOperation(id, { success: true });
219
+ return result;
220
+ } catch (error) {
221
+ await this.endOperation(id, {
222
+ success: false,
223
+ error: (error as Error).message
224
+ });
225
+ throw error;
226
+ }
227
+ }
228
+
229
+ /**
230
+ * Get metrics for a specific session
231
+ */
232
+ async getSessionMetrics(sessionId: string): Promise<SessionMetrics> {
233
+ const metrics = await this.memory.query<PerformanceMetric>(`
234
+ SELECT * FROM performance_metrics
235
+ WHERE session_id = ?
236
+ ORDER BY start_time
237
+ `, [sessionId]);
238
+
239
+ if (metrics.length === 0) {
240
+ return {
241
+ sessionId,
242
+ startTime: new Date(),
243
+ operationCount: 0,
244
+ successCount: 0,
245
+ failureCount: 0,
246
+ agentCount: 0,
247
+ artifactCount: 0,
248
+ averageOperationTime: 0,
249
+ resourceUsage: []
250
+ };
251
+ }
252
+
253
+ const startTime = new Date(metrics[0].startTime);
254
+ const endTime = metrics[metrics.length - 1].endTime ?
255
+ new Date(metrics[metrics.length - 1].endTime!) : undefined;
256
+
257
+ const successCount = metrics.filter(m => m.success).length;
258
+ const totalDuration = metrics.reduce((sum, m) => sum + (m.duration || 0), 0);
259
+ const agentIds = new Set(metrics.map(m => m.agentId).filter(Boolean));
260
+
261
+ return {
262
+ sessionId,
263
+ startTime,
264
+ endTime,
265
+ duration: endTime ? endTime.getTime() - startTime.getTime() : undefined,
266
+ operationCount: metrics.length,
267
+ successCount,
268
+ failureCount: metrics.length - successCount,
269
+ agentCount: agentIds.size,
270
+ artifactCount: await this.countSessionArtifacts(sessionId),
271
+ averageOperationTime: metrics.length > 0 ? totalDuration / metrics.length : 0,
272
+ resourceUsage: metrics.map(m => m.resourceUsage).filter(Boolean) as ResourceUsage[]
273
+ };
274
+ }
275
+
276
+ /**
277
+ * Get aggregate metrics for an operation
278
+ */
279
+ async getAggregateMetrics(operation: string, timeframe?: number): Promise<AggregateMetrics> {
280
+ const since = timeframe ? Date.now() - timeframe : 0;
281
+
282
+ const metrics = await this.memory.query<PerformanceMetric>(`
283
+ SELECT * FROM performance_metrics
284
+ WHERE operation = ? AND start_time > ?
285
+ ORDER BY duration
286
+ `, [operation, since]);
287
+
288
+ if (metrics.length === 0) {
289
+ return {
290
+ operation,
291
+ count: 0,
292
+ successCount: 0,
293
+ failureCount: 0,
294
+ averageDuration: 0,
295
+ minDuration: 0,
296
+ maxDuration: 0,
297
+ percentile95: 0,
298
+ percentile99: 0,
299
+ errorRate: 0,
300
+ throughput: 0
301
+ };
302
+ }
303
+
304
+ const successCount = metrics.filter(m => m.success).length;
305
+ const durations = metrics.map(m => m.duration || 0).filter(d => d > 0);
306
+ durations.sort((a, b) => a - b);
307
+
308
+ const timeRange = metrics[metrics.length - 1].startTime - metrics[0].startTime;
309
+ const throughput = timeRange > 0 ? (metrics.length / timeRange) * 1000 : 0;
310
+
311
+ return {
312
+ operation,
313
+ count: metrics.length,
314
+ successCount,
315
+ failureCount: metrics.length - successCount,
316
+ averageDuration: durations.reduce((a, b) => a + b, 0) / durations.length,
317
+ minDuration: durations[0] || 0,
318
+ maxDuration: durations[durations.length - 1] || 0,
319
+ percentile95: this.calculatePercentile(durations, 0.95),
320
+ percentile99: this.calculatePercentile(durations, 0.99),
321
+ errorRate: metrics.length > 0 ? (metrics.length - successCount) / metrics.length : 0,
322
+ throughput
323
+ };
324
+ }
325
+
326
+ /**
327
+ * Generate performance report
328
+ */
329
+ async generateReport(period: 'hour' | 'day' | 'week' | 'month' = 'day'): Promise<PerformanceReport> {
330
+ const timeframe = this.getTimeframe(period);
331
+ const since = Date.now() - timeframe;
332
+
333
+ // Get all metrics for the period
334
+ const allMetrics = await this.memory.query<PerformanceMetric>(`
335
+ SELECT * FROM performance_metrics
336
+ WHERE start_time > ?
337
+ `, [since]);
338
+
339
+ // Get unique operations
340
+ const operations = [...new Set(allMetrics.map(m => m.operation))];
341
+
342
+ // Calculate operation metrics
343
+ const operationMetrics = await Promise.all(
344
+ operations.map(op => this.getAggregateMetrics(op, timeframe))
345
+ );
346
+
347
+ // Get session metrics
348
+ const sessionIds = [...new Set(allMetrics.map(m => m.sessionId).filter(Boolean))];
349
+ const sessionMetrics = await Promise.all(
350
+ sessionIds.map(id => this.getSessionMetrics(id))
351
+ );
352
+
353
+ // Identify bottlenecks
354
+ const bottlenecks = await this.identifyBottlenecks(allMetrics);
355
+
356
+ // Generate recommendations
357
+ const recommendations = this.generateRecommendations(
358
+ operationMetrics,
359
+ sessionMetrics,
360
+ bottlenecks
361
+ );
362
+
363
+ // Calculate summary
364
+ const totalOperations = allMetrics.length;
365
+ const successCount = allMetrics.filter(m => m.success).length;
366
+ const totalDuration = allMetrics.reduce((sum, m) => sum + (m.duration || 0), 0);
367
+
368
+ const report: PerformanceReport = {
369
+ timestamp: new Date(),
370
+ period,
371
+ summary: {
372
+ totalOperations,
373
+ successRate: totalOperations > 0 ? (successCount / totalOperations) * 100 : 0,
374
+ averageResponseTime: totalOperations > 0 ? totalDuration / totalOperations : 0,
375
+ peakConcurrency: this.calculatePeakConcurrency(allMetrics),
376
+ errorRate: totalOperations > 0 ? ((totalOperations - successCount) / totalOperations) * 100 : 0
377
+ },
378
+ operationMetrics,
379
+ sessionMetrics,
380
+ bottlenecks,
381
+ recommendations
382
+ };
383
+
384
+ // Store report
385
+ await this.memory.store(`performance_report_${period}_${Date.now()}`, report);
386
+
387
+ return report;
388
+ }
389
+
390
+ /**
391
+ * Identify performance bottlenecks
392
+ */
393
+ async identifyBottlenecks(metrics: PerformanceMetric[]): Promise<Bottleneck[]> {
394
+ const bottlenecks: Bottleneck[] = [];
395
+
396
+ // Group by operation
397
+ const operationGroups = this.groupBy(metrics, 'operation');
398
+
399
+ for (const [operation, operationMetrics] of Object.entries(operationGroups)) {
400
+ const durations = operationMetrics.map(m => m.duration || 0);
401
+ const avgDuration = durations.reduce((a, b) => a + b, 0) / durations.length;
402
+ const p95Duration = this.calculatePercentile(durations, 0.95);
403
+
404
+ // Check for slow operations
405
+ if (avgDuration > 5000) { // > 5 seconds average
406
+ bottlenecks.push({
407
+ operation,
408
+ severity: avgDuration > 30000 ? 'critical' : avgDuration > 15000 ? 'high' : 'medium',
409
+ impact: `Average response time of ${(avgDuration / 1000).toFixed(2)}s`,
410
+ occurrences: operationMetrics.length,
411
+ averageDelay: avgDuration - 5000,
412
+ recommendation: 'Optimize operation logic or add caching'
413
+ });
414
+ }
415
+
416
+ // Check for high variance
417
+ const variance = this.calculateVariance(durations);
418
+ if (variance > avgDuration * 2) {
419
+ bottlenecks.push({
420
+ operation,
421
+ severity: 'medium',
422
+ impact: 'High response time variance',
423
+ occurrences: operationMetrics.length,
424
+ averageDelay: 0,
425
+ recommendation: 'Investigate inconsistent performance patterns'
426
+ });
427
+ }
428
+
429
+ // Check for high error rate
430
+ const errorCount = operationMetrics.filter(m => !m.success).length;
431
+ const errorRate = errorCount / operationMetrics.length;
432
+ if (errorRate > 0.1) { // > 10% error rate
433
+ bottlenecks.push({
434
+ operation,
435
+ severity: errorRate > 0.5 ? 'critical' : errorRate > 0.25 ? 'high' : 'medium',
436
+ impact: `${(errorRate * 100).toFixed(1)}% error rate`,
437
+ occurrences: errorCount,
438
+ averageDelay: 0,
439
+ recommendation: 'Review error handling and retry logic'
440
+ });
441
+ }
442
+ }
443
+
444
+ return bottlenecks.sort((a, b) =>
445
+ this.severityScore(b.severity) - this.severityScore(a.severity)
446
+ );
447
+ }
448
+
449
+ /**
450
+ * Shutdown the tracker
451
+ */
452
+ async shutdown(): Promise<void> {
453
+ this.logger.info('Shutting down Performance Tracker...');
454
+
455
+ // Stop timers
456
+ if (this.aggregationTimer) {
457
+ clearInterval(this.aggregationTimer);
458
+ }
459
+
460
+ // Flush remaining metrics
461
+ await this.flushMetrics();
462
+
463
+ this.initialized = false;
464
+ }
465
+
466
+ /**
467
+ * Private helper methods
468
+ */
469
+ private async createPerformanceTables(): Promise<void> {
470
+ await this.memory.execute(`
471
+ CREATE TABLE IF NOT EXISTS performance_metrics (
472
+ id TEXT PRIMARY KEY,
473
+ operation TEXT NOT NULL,
474
+ start_time INTEGER NOT NULL,
475
+ end_time INTEGER,
476
+ duration INTEGER,
477
+ success BOOLEAN NOT NULL,
478
+ session_id TEXT,
479
+ agent_id TEXT,
480
+ metadata TEXT,
481
+ resource_usage TEXT,
482
+ error TEXT,
483
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
484
+ );
485
+
486
+ CREATE INDEX IF NOT EXISTS idx_performance_operation ON performance_metrics(operation);
487
+ CREATE INDEX IF NOT EXISTS idx_performance_session ON performance_metrics(session_id);
488
+ CREATE INDEX IF NOT EXISTS idx_performance_time ON performance_metrics(start_time);
489
+
490
+ CREATE TABLE IF NOT EXISTS performance_aggregates (
491
+ id TEXT PRIMARY KEY,
492
+ operation TEXT NOT NULL,
493
+ period TEXT NOT NULL,
494
+ timestamp INTEGER NOT NULL,
495
+ metrics TEXT NOT NULL,
496
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
497
+ );
498
+ `);
499
+ }
500
+
501
+ private startAggregation(): void {
502
+ this.aggregationTimer = setInterval(async () => {
503
+ await this.flushMetrics();
504
+ await this.aggregateMetrics();
505
+ }, this.config.aggregationInterval);
506
+ }
507
+
508
+ private startResourceMonitoring(): void {
509
+ // Monitor Node.js process resources
510
+ setInterval(() => {
511
+ const usage = this.captureResourceUsage();
512
+
513
+ // Check thresholds
514
+ if (usage.memoryUsage > 0.8) {
515
+ this.emit('resource:warning', {
516
+ type: 'memory',
517
+ usage: usage.memoryUsage,
518
+ threshold: 0.8
519
+ });
520
+ }
521
+
522
+ if (usage.cpuUsage > 0.8) {
523
+ this.emit('resource:warning', {
524
+ type: 'cpu',
525
+ usage: usage.cpuUsage,
526
+ threshold: 0.8
527
+ });
528
+ }
529
+ }, 10000); // Every 10 seconds
530
+ }
531
+
532
+ private captureResourceUsage(): ResourceUsage {
533
+ const usage = process.cpuUsage();
534
+ const memory = process.memoryUsage();
535
+
536
+ return {
537
+ cpuUsage: (usage.user + usage.system) / 1000000, // Convert to seconds
538
+ memoryUsage: memory.rss / 1024 / 1024, // Convert to MB
539
+ heapUsed: memory.heapUsed / 1024 / 1024,
540
+ heapTotal: memory.heapTotal / 1024 / 1024,
541
+ external: memory.external / 1024 / 1024,
542
+ arrayBuffers: memory.arrayBuffers / 1024 / 1024
543
+ };
544
+ }
545
+
546
+ private calculateResourceDelta(start: ResourceUsage, end: ResourceUsage): ResourceUsage {
547
+ return {
548
+ cpuUsage: end.cpuUsage - start.cpuUsage,
549
+ memoryUsage: end.memoryUsage - start.memoryUsage,
550
+ heapUsed: end.heapUsed - start.heapUsed,
551
+ heapTotal: end.heapTotal,
552
+ external: end.external - start.external,
553
+ arrayBuffers: end.arrayBuffers - start.arrayBuffers
554
+ };
555
+ }
556
+
557
+ private async flushMetrics(): Promise<void> {
558
+ if (this.metricsBuffer.length === 0) return;
559
+
560
+ const metrics = [...this.metricsBuffer];
561
+ this.metricsBuffer = [];
562
+
563
+ // Store metrics in database
564
+ for (const metric of metrics) {
565
+ await this.memory.insert('performance_metrics', {
566
+ id: metric.id,
567
+ operation: metric.operation,
568
+ start_time: metric.startTime,
569
+ end_time: metric.endTime,
570
+ duration: metric.duration,
571
+ success: metric.success,
572
+ session_id: metric.sessionId,
573
+ agent_id: metric.agentId,
574
+ metadata: JSON.stringify(metric.metadata),
575
+ resource_usage: JSON.stringify(metric.resourceUsage),
576
+ error: metric.error
577
+ });
578
+ }
579
+
580
+ this.emit('metrics:flushed', { count: metrics.length });
581
+ }
582
+
583
+ private async aggregateMetrics(): Promise<void> {
584
+ // Aggregate metrics for different time periods
585
+ const operations = await this.memory.query<{ operation: string }>(`
586
+ SELECT DISTINCT operation FROM performance_metrics
587
+ WHERE start_time > ?
588
+ `, [Date.now() - this.config.aggregationInterval]);
589
+
590
+ for (const { operation } of operations) {
591
+ const aggregate = await this.getAggregateMetrics(operation, this.config.aggregationInterval);
592
+
593
+ await this.memory.insert('performance_aggregates', {
594
+ id: `${operation}_${Date.now()}`,
595
+ operation,
596
+ period: 'interval',
597
+ timestamp: Date.now(),
598
+ metrics: JSON.stringify(aggregate)
599
+ });
600
+ }
601
+
602
+ // Clean up old metrics
603
+ await this.cleanupOldMetrics();
604
+ }
605
+
606
+ private async cleanupOldMetrics(): Promise<void> {
607
+ const cutoff = Date.now() - this.config.metricsRetention;
608
+
609
+ await this.memory.execute(`
610
+ DELETE FROM performance_metrics WHERE start_time < ?
611
+ `, [cutoff]);
612
+
613
+ await this.memory.execute(`
614
+ DELETE FROM performance_aggregates WHERE timestamp < ?
615
+ `, [cutoff]);
616
+ }
617
+
618
+ private checkPerformanceThresholds(metric: PerformanceMetric): void {
619
+ // Check for slow operations
620
+ if (metric.duration && metric.duration > 10000) { // > 10 seconds
621
+ this.emit('performance:slow', {
622
+ operation: metric.operation,
623
+ duration: metric.duration,
624
+ metadata: metric.metadata
625
+ });
626
+ }
627
+
628
+ // Check for failures
629
+ if (!metric.success) {
630
+ this.emit('performance:failure', {
631
+ operation: metric.operation,
632
+ error: metric.error,
633
+ metadata: metric.metadata
634
+ });
635
+ }
636
+
637
+ // Check for high resource usage
638
+ if (metric.resourceUsage && metric.resourceUsage.memoryUsage > 100) { // > 100MB
639
+ this.emit('performance:high-memory', {
640
+ operation: metric.operation,
641
+ memoryUsage: metric.resourceUsage.memoryUsage,
642
+ metadata: metric.metadata
643
+ });
644
+ }
645
+ }
646
+
647
+ private generateMetricId(): string {
648
+ return `metric_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
649
+ }
650
+
651
+ private calculatePercentile(values: number[], percentile: number): number {
652
+ if (values.length === 0) return 0;
653
+
654
+ const index = Math.ceil(values.length * percentile) - 1;
655
+ return values[index] || 0;
656
+ }
657
+
658
+ private calculateVariance(values: number[]): number {
659
+ if (values.length === 0) return 0;
660
+
661
+ const mean = values.reduce((a, b) => a + b, 0) / values.length;
662
+ const squaredDiffs = values.map(v => Math.pow(v - mean, 2));
663
+ return squaredDiffs.reduce((a, b) => a + b, 0) / values.length;
664
+ }
665
+
666
+ private calculatePeakConcurrency(metrics: PerformanceMetric[]): number {
667
+ if (metrics.length === 0) return 0;
668
+
669
+ const events: Array<{ time: number; type: 'start' | 'end' }> = [];
670
+
671
+ for (const metric of metrics) {
672
+ events.push({ time: metric.startTime, type: 'start' });
673
+ if (metric.endTime) {
674
+ events.push({ time: metric.endTime, type: 'end' });
675
+ }
676
+ }
677
+
678
+ events.sort((a, b) => a.time - b.time);
679
+
680
+ let concurrent = 0;
681
+ let peak = 0;
682
+
683
+ for (const event of events) {
684
+ if (event.type === 'start') {
685
+ concurrent++;
686
+ peak = Math.max(peak, concurrent);
687
+ } else {
688
+ concurrent--;
689
+ }
690
+ }
691
+
692
+ return peak;
693
+ }
694
+
695
+ private async countSessionArtifacts(sessionId: string): Promise<number> {
696
+ const result = await this.memory.query<{ count: number }>(`
697
+ SELECT COUNT(*) as count FROM servicenow_artifacts
698
+ WHERE session_id = ?
699
+ `, [sessionId]);
700
+
701
+ return result[0]?.count || 0;
702
+ }
703
+
704
+ private groupBy<T>(array: T[], key: keyof T): Record<string, T[]> {
705
+ return array.reduce((groups, item) => {
706
+ const group = String(item[key]);
707
+ if (!groups[group]) groups[group] = [];
708
+ groups[group].push(item);
709
+ return groups;
710
+ }, {} as Record<string, T[]>);
711
+ }
712
+
713
+ private getTimeframe(period: string): number {
714
+ const timeframes: Record<string, number> = {
715
+ hour: 3600000,
716
+ day: 86400000,
717
+ week: 604800000,
718
+ month: 2592000000
719
+ };
720
+
721
+ return timeframes[period] || timeframes.day;
722
+ }
723
+
724
+ private severityScore(severity: string): number {
725
+ const scores: Record<string, number> = {
726
+ low: 1,
727
+ medium: 2,
728
+ high: 3,
729
+ critical: 4
730
+ };
731
+
732
+ return scores[severity] || 0;
733
+ }
734
+
735
+ private generateRecommendations(
736
+ operationMetrics: AggregateMetrics[],
737
+ sessionMetrics: SessionMetrics[],
738
+ bottlenecks: Bottleneck[]
739
+ ): string[] {
740
+ const recommendations: string[] = [];
741
+
742
+ // Check for slow operations
743
+ const slowOps = operationMetrics.filter(m => m.averageDuration > 5000);
744
+ if (slowOps.length > 0) {
745
+ recommendations.push(
746
+ `Optimize slow operations: ${slowOps.map(op => op.operation).join(', ')}`
747
+ );
748
+ }
749
+
750
+ // Check for high error rates
751
+ const errorOps = operationMetrics.filter(m => m.errorRate > 0.1);
752
+ if (errorOps.length > 0) {
753
+ recommendations.push(
754
+ `Review error handling for: ${errorOps.map(op => op.operation).join(', ')}`
755
+ );
756
+ }
757
+
758
+ // Check for resource usage
759
+ const highMemorySessions = sessionMetrics.filter(s =>
760
+ s.resourceUsage.some(r => r.memoryUsage > 500)
761
+ );
762
+ if (highMemorySessions.length > 0) {
763
+ recommendations.push(
764
+ 'Consider implementing memory optimization strategies'
765
+ );
766
+ }
767
+
768
+ // Add bottleneck recommendations
769
+ bottlenecks.forEach(b => {
770
+ if (!recommendations.includes(b.recommendation)) {
771
+ recommendations.push(b.recommendation);
772
+ }
773
+ });
774
+
775
+ return recommendations;
776
+ }
777
+ }