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,995 @@
1
+ /**
2
+ * Snow-Flow System Health Monitoring
3
+ * Comprehensive health checks for all components
4
+ */
5
+
6
+ import { EventEmitter } from 'events';
7
+ import { MemorySystem } from '../memory/memory-system';
8
+ import { MCPServerManager } from '../utils/mcp-server-manager';
9
+ import { ServiceNowClient } from '../utils/servicenow-client';
10
+ import { Logger } from '../utils/logger';
11
+ import os from 'os';
12
+ import fs from 'fs';
13
+ import { execSync } from 'child_process';
14
+
15
+ export interface HealthCheckResult {
16
+ component: string;
17
+ status: 'healthy' | 'degraded' | 'unhealthy' | 'unknown';
18
+ message: string;
19
+ details?: Record<string, any>;
20
+ timestamp: Date;
21
+ responseTime?: number;
22
+ error?: string;
23
+ }
24
+
25
+ export interface SystemHealthStatus {
26
+ healthy: boolean;
27
+ status: 'healthy' | 'degraded' | 'unhealthy';
28
+ timestamp: Date;
29
+ components: {
30
+ memory: HealthCheckResult;
31
+ mcp: HealthCheckResult;
32
+ servicenow: HealthCheckResult;
33
+ queen: HealthCheckResult;
34
+ system: HealthCheckResult;
35
+ performance: HealthCheckResult;
36
+ };
37
+ metrics: {
38
+ uptime: number;
39
+ totalChecks: number;
40
+ failedChecks: number;
41
+ avgResponseTime: number;
42
+ systemResources: SystemResources;
43
+ };
44
+ }
45
+
46
+ export interface SystemResources {
47
+ cpuUsage: number;
48
+ memoryUsage: number;
49
+ memoryTotal: number;
50
+ diskUsage: number;
51
+ diskTotal: number;
52
+ loadAverage: number[];
53
+ processCount: number;
54
+ }
55
+
56
+ export interface HealthThresholds {
57
+ responseTime: number;
58
+ memoryUsage: number;
59
+ cpuUsage: number;
60
+ queueSize: number;
61
+ errorRate: number;
62
+ }
63
+
64
+ interface HealthConfig {
65
+ memory: MemorySystem;
66
+ mcpManager: MCPServerManager;
67
+ config: {
68
+ checks: {
69
+ memory: boolean;
70
+ mcp: boolean;
71
+ servicenow: boolean;
72
+ queen: boolean;
73
+ };
74
+ thresholds: HealthThresholds;
75
+ };
76
+ }
77
+
78
+ export class SystemHealth extends EventEmitter {
79
+ private memory: MemorySystem;
80
+ private mcpManager: MCPServerManager;
81
+ private logger: Logger;
82
+ private config: HealthConfig['config'];
83
+ private serviceNowClient?: ServiceNowClient;
84
+ private checkInterval?: NodeJS.Timeout;
85
+ private checkHistory: HealthCheckResult[] = [];
86
+ private startTime: number;
87
+ private totalChecks = 0;
88
+ private failedChecks = 0;
89
+ private lastCPUInfo: any = null;
90
+ private cpuCheckInterval?: NodeJS.Timeout;
91
+
92
+ constructor(options: HealthConfig) {
93
+ super();
94
+ this.memory = options.memory;
95
+ this.mcpManager = options.mcpManager;
96
+ this.config = options.config;
97
+ this.logger = new Logger('SystemHealth');
98
+ this.startTime = Date.now();
99
+ }
100
+
101
+ /**
102
+ * Initialize health monitoring
103
+ */
104
+ async initialize(): Promise<void> {
105
+ this.logger.info('Initializing System Health monitoring...');
106
+
107
+ // Initialize ServiceNow client for health checks
108
+ try {
109
+ this.serviceNowClient = new ServiceNowClient();
110
+ // Note: ServiceNowClient may not have an initialize method
111
+ // await this.serviceNowClient.initialize();
112
+ } catch (error) {
113
+ this.logger.warn('ServiceNow client initialization failed:', error);
114
+ }
115
+
116
+ // Create health check tables
117
+ await this.createHealthTables();
118
+
119
+ // Perform initial health check
120
+ await this.performHealthCheck();
121
+
122
+ this.logger.info('System Health monitoring initialized');
123
+ }
124
+
125
+ /**
126
+ * Start periodic health monitoring
127
+ */
128
+ async startMonitoring(intervalMs: number = 60000): Promise<void> {
129
+ if (this.checkInterval) {
130
+ this.logger.warn('Health monitoring already started');
131
+ return;
132
+ }
133
+
134
+ this.logger.info(`Starting health monitoring with ${intervalMs}ms interval`);
135
+
136
+ this.checkInterval = setInterval(async () => {
137
+ try {
138
+ await this.performHealthCheck();
139
+ } catch (error) {
140
+ this.logger.error('Health check failed:', error);
141
+ }
142
+ }, intervalMs);
143
+
144
+ // Perform immediate check
145
+ await this.performHealthCheck();
146
+ }
147
+
148
+ /**
149
+ * Stop health monitoring
150
+ */
151
+ async stopMonitoring(): Promise<void> {
152
+ if (this.checkInterval) {
153
+ clearInterval(this.checkInterval);
154
+ this.checkInterval = undefined;
155
+ this.logger.info('Health monitoring stopped');
156
+ }
157
+
158
+ if (this.cpuCheckInterval) {
159
+ clearInterval(this.cpuCheckInterval);
160
+ this.cpuCheckInterval = undefined;
161
+ }
162
+ }
163
+
164
+ /**
165
+ * Perform comprehensive health check
166
+ */
167
+ async performHealthCheck(): Promise<SystemHealthStatus> {
168
+ this.totalChecks++;
169
+ const startTime = Date.now();
170
+
171
+ this.logger.debug('Performing system health check...');
172
+
173
+ // Run all health checks in parallel
174
+ const [memory, mcp, servicenow, queen, system, performance] = await Promise.all([
175
+ this.config.checks.memory ? this.checkMemory() : this.createSkippedResult('memory'),
176
+ this.config.checks.mcp ? this.checkMCP() : this.createSkippedResult('mcp'),
177
+ this.config.checks.servicenow ? this.checkServiceNow() : this.createSkippedResult('servicenow'),
178
+ this.config.checks.queen ? this.checkQueen() : this.createSkippedResult('queen'),
179
+ this.checkSystem(),
180
+ this.checkPerformance()
181
+ ]);
182
+
183
+ const components = { memory, mcp, servicenow, queen, system, performance };
184
+
185
+ // Determine overall health status
186
+ const unhealthyCount = Object.values(components).filter(c => c.status === 'unhealthy').length;
187
+ const degradedCount = Object.values(components).filter(c => c.status === 'degraded').length;
188
+
189
+ let overallStatus: 'healthy' | 'degraded' | 'unhealthy';
190
+ if (unhealthyCount > 0) {
191
+ overallStatus = 'unhealthy';
192
+ this.failedChecks++;
193
+ } else if (degradedCount > 0) {
194
+ overallStatus = 'degraded';
195
+ } else {
196
+ overallStatus = 'healthy';
197
+ }
198
+
199
+ const status: SystemHealthStatus = {
200
+ healthy: overallStatus === 'healthy',
201
+ status: overallStatus,
202
+ timestamp: new Date(),
203
+ components,
204
+ metrics: {
205
+ uptime: Date.now() - this.startTime,
206
+ totalChecks: this.totalChecks,
207
+ failedChecks: this.failedChecks,
208
+ avgResponseTime: this.calculateAverageResponseTime(),
209
+ systemResources: await this.getSystemResources()
210
+ }
211
+ };
212
+
213
+ // Store health check result
214
+ await this.storeHealthResult(status);
215
+
216
+ // Emit health status
217
+ this.emit('health:check', status);
218
+
219
+ // Check for alerts
220
+ this.checkAlerts(status);
221
+
222
+ const duration = Date.now() - startTime;
223
+ this.logger.debug(`Health check completed in ${duration}ms - Status: ${overallStatus}`);
224
+
225
+ return status;
226
+ }
227
+
228
+ /**
229
+ * Get full health status
230
+ */
231
+ async getFullStatus(): Promise<SystemHealthStatus> {
232
+ return this.performHealthCheck();
233
+ }
234
+
235
+ /**
236
+ * Get health history
237
+ */
238
+ async getHealthHistory(limit: number = 100): Promise<HealthCheckResult[]> {
239
+ return this.memory.query<HealthCheckResult>(`
240
+ SELECT * FROM health_checks
241
+ ORDER BY timestamp DESC
242
+ LIMIT ?
243
+ `, [limit]);
244
+ }
245
+
246
+ /**
247
+ * Check if system is healthy
248
+ */
249
+ async isHealthy(): Promise<boolean> {
250
+ const status = await this.performHealthCheck();
251
+ return status.healthy;
252
+ }
253
+
254
+ /**
255
+ * Private health check methods
256
+ */
257
+ private async checkMemory(): Promise<HealthCheckResult> {
258
+ const startTime = Date.now();
259
+
260
+ try {
261
+ // Check if memory system is responsive
262
+ const testKey = `health_check_${Date.now()}`;
263
+ await this.memory.store(testKey, { test: true }, 60000); // 1 minute TTL
264
+ const retrieved = await this.memory.get(testKey);
265
+ await this.memory.delete(testKey);
266
+
267
+ if (!retrieved) {
268
+ throw new Error('Memory store/retrieve test failed');
269
+ }
270
+
271
+ // Check memory database size
272
+ const dbStats = await this.memory.getDatabaseStats();
273
+ const dbSizeMB = dbStats.size / 1024 / 1024;
274
+
275
+ // Check cache performance
276
+ const cacheStats = await this.memory.getCacheStats();
277
+ const cacheHitRate = cacheStats.hits / (cacheStats.hits + cacheStats.misses) || 0;
278
+
279
+ const responseTime = Date.now() - startTime;
280
+
281
+ // Determine status
282
+ let status: 'healthy' | 'degraded' | 'unhealthy' = 'healthy';
283
+ let message = 'Memory system operating normally';
284
+
285
+ if (dbSizeMB > 1000) { // > 1GB
286
+ status = 'degraded';
287
+ message = 'Database size exceeding recommended limits';
288
+ }
289
+
290
+ if (cacheHitRate < 0.5 && cacheStats.hits + cacheStats.misses > 100) {
291
+ status = 'degraded';
292
+ message = 'Low cache hit rate';
293
+ }
294
+
295
+ if (responseTime > this.config.thresholds.responseTime) {
296
+ status = 'unhealthy';
297
+ message = 'Memory system response time too high';
298
+ }
299
+
300
+ return {
301
+ component: 'memory',
302
+ status,
303
+ message,
304
+ details: {
305
+ dbSizeMB,
306
+ cacheHitRate,
307
+ cacheStats,
308
+ responseTime
309
+ },
310
+ timestamp: new Date(),
311
+ responseTime
312
+ };
313
+
314
+ } catch (error) {
315
+ return {
316
+ component: 'memory',
317
+ status: 'unhealthy',
318
+ message: 'Memory system check failed',
319
+ error: (error as Error).message,
320
+ timestamp: new Date(),
321
+ responseTime: Date.now() - startTime
322
+ };
323
+ }
324
+ }
325
+
326
+ private async checkMCP(): Promise<HealthCheckResult> {
327
+ const startTime = Date.now();
328
+
329
+ try {
330
+ const serverStatuses = this.mcpManager.getServerStatus();
331
+ const totalServers = serverStatuses.length;
332
+ const healthyServers = serverStatuses.filter(s => s.status === 'running').length;
333
+ const unhealthyServers = serverStatuses.filter(s => s.status === 'error').length;
334
+
335
+ const responseTime = Date.now() - startTime;
336
+
337
+ let status: 'healthy' | 'degraded' | 'unhealthy' = 'healthy';
338
+ let message = `All ${totalServers} MCP servers running`;
339
+
340
+ if (unhealthyServers > 0) {
341
+ status = unhealthyServers >= totalServers / 2 ? 'unhealthy' : 'degraded';
342
+ message = `${unhealthyServers} of ${totalServers} MCP servers not running`;
343
+ }
344
+
345
+ return {
346
+ component: 'mcp',
347
+ status,
348
+ message,
349
+ details: {
350
+ totalServers,
351
+ healthyServers,
352
+ unhealthyServers,
353
+ serverStatuses
354
+ },
355
+ timestamp: new Date(),
356
+ responseTime
357
+ };
358
+
359
+ } catch (error) {
360
+ return {
361
+ component: 'mcp',
362
+ status: 'unhealthy',
363
+ message: 'MCP server check failed',
364
+ error: (error as Error).message,
365
+ timestamp: new Date(),
366
+ responseTime: Date.now() - startTime
367
+ };
368
+ }
369
+ }
370
+
371
+ private async checkServiceNow(): Promise<HealthCheckResult> {
372
+ const startTime = Date.now();
373
+
374
+ try {
375
+ if (!this.serviceNowClient) {
376
+ return {
377
+ component: 'servicenow',
378
+ status: 'unknown',
379
+ message: 'ServiceNow client not initialized',
380
+ timestamp: new Date(),
381
+ responseTime: Date.now() - startTime
382
+ };
383
+ }
384
+
385
+ // Perform a simple API call to check connectivity
386
+ const testResult = await this.serviceNowClient.testConnection();
387
+ const responseTime = Date.now() - startTime;
388
+
389
+ if (!testResult.success) {
390
+ return {
391
+ component: 'servicenow',
392
+ status: 'unhealthy',
393
+ message: 'ServiceNow connection test failed',
394
+ error: testResult.error,
395
+ timestamp: new Date(),
396
+ responseTime
397
+ };
398
+ }
399
+
400
+ let status: 'healthy' | 'degraded' | 'unhealthy' = 'healthy';
401
+ let message = 'ServiceNow connection healthy';
402
+
403
+ if (responseTime > this.config.thresholds.responseTime) {
404
+ status = 'degraded';
405
+ message = 'ServiceNow response time high';
406
+ }
407
+
408
+ return {
409
+ component: 'servicenow',
410
+ status,
411
+ message,
412
+ details: {
413
+ connected: true,
414
+ responseTime
415
+ },
416
+ timestamp: new Date(),
417
+ responseTime
418
+ };
419
+
420
+ } catch (error) {
421
+ return {
422
+ component: 'servicenow',
423
+ status: 'unhealthy',
424
+ message: 'ServiceNow check failed',
425
+ error: (error as Error).message,
426
+ timestamp: new Date(),
427
+ responseTime: Date.now() - startTime
428
+ };
429
+ }
430
+ }
431
+
432
+ private async checkQueen(): Promise<HealthCheckResult> {
433
+ const startTime = Date.now();
434
+
435
+ try {
436
+ // Check active queen sessions
437
+ const activeSessions = await this.memory.query<any>(`
438
+ SELECT COUNT(*) as count FROM swarm_sessions
439
+ WHERE status = 'active'
440
+ `);
441
+
442
+ // Check agent coordination
443
+ const activeAgents = await this.memory.query<any>(`
444
+ SELECT COUNT(*) as count FROM agent_coordination
445
+ WHERE status IN ('spawned', 'active')
446
+ `);
447
+
448
+ const responseTime = Date.now() - startTime;
449
+
450
+ let status: 'healthy' | 'degraded' | 'unhealthy' = 'healthy';
451
+ let message = 'Queen coordination system healthy';
452
+
453
+ const sessionCount = activeSessions[0]?.count || 0;
454
+ const agentCount = activeAgents[0]?.count || 0;
455
+
456
+ if (agentCount > this.config.thresholds.queueSize) {
457
+ status = 'degraded';
458
+ message = 'High number of active agents';
459
+ }
460
+
461
+ return {
462
+ component: 'queen',
463
+ status,
464
+ message,
465
+ details: {
466
+ activeSessions: sessionCount,
467
+ activeAgents: agentCount,
468
+ responseTime
469
+ },
470
+ timestamp: new Date(),
471
+ responseTime
472
+ };
473
+
474
+ } catch (error) {
475
+ return {
476
+ component: 'queen',
477
+ status: 'unhealthy',
478
+ message: 'Queen system check failed',
479
+ error: (error as Error).message,
480
+ timestamp: new Date(),
481
+ responseTime: Date.now() - startTime
482
+ };
483
+ }
484
+ }
485
+
486
+ private async checkSystem(): Promise<HealthCheckResult> {
487
+ const startTime = Date.now();
488
+
489
+ try {
490
+ const resources = await this.getSystemResources();
491
+ const enhancedMetrics = await this.getEnhancedSystemMetrics();
492
+ const responseTime = Date.now() - startTime;
493
+
494
+ let status: 'healthy' | 'degraded' | 'unhealthy' = 'healthy';
495
+ let message = 'System resources within normal limits';
496
+ const issues: string[] = [];
497
+
498
+ // Check CPU usage
499
+ if (resources.cpuUsage > this.config.thresholds.cpuUsage * 100) {
500
+ status = 'degraded';
501
+ issues.push(`High CPU usage: ${resources.cpuUsage.toFixed(1)}%`);
502
+ }
503
+
504
+ // Check memory usage
505
+ const memoryUsagePercent = (resources.memoryUsage / resources.memoryTotal) * 100;
506
+ if (memoryUsagePercent > this.config.thresholds.memoryUsage * 100) {
507
+ status = status === 'degraded' ? 'unhealthy' : 'degraded';
508
+ issues.push(`High memory usage: ${memoryUsagePercent.toFixed(1)}%`);
509
+ }
510
+
511
+ // Check disk usage
512
+ if (resources.diskUsage > 90) {
513
+ status = 'unhealthy';
514
+ issues.push(`Critical disk usage: ${resources.diskUsage.toFixed(1)}%`);
515
+ } else if (resources.diskUsage > 80) {
516
+ status = status === 'healthy' ? 'degraded' : status;
517
+ issues.push(`High disk usage: ${resources.diskUsage.toFixed(1)}%`);
518
+ }
519
+
520
+ // Check process memory
521
+ const heapUsagePercent = (enhancedMetrics.process.memory.heapUsed / enhancedMetrics.process.memory.heapTotal) * 100;
522
+ if (heapUsagePercent > 90) {
523
+ status = status === 'degraded' ? 'unhealthy' : 'degraded';
524
+ issues.push(`High heap usage: ${heapUsagePercent.toFixed(1)}%`);
525
+ }
526
+
527
+ // Check network connectivity
528
+ if (!enhancedMetrics.network.connected) {
529
+ status = 'degraded';
530
+ issues.push('Network connectivity issues detected');
531
+ }
532
+
533
+ if (issues.length > 0) {
534
+ message = issues.join(', ');
535
+ }
536
+
537
+ return {
538
+ component: 'system',
539
+ status,
540
+ message,
541
+ details: {
542
+ ...resources,
543
+ enhanced: enhancedMetrics
544
+ },
545
+ timestamp: new Date(),
546
+ responseTime
547
+ };
548
+
549
+ } catch (error) {
550
+ return {
551
+ component: 'system',
552
+ status: 'unhealthy',
553
+ message: 'System resource check failed',
554
+ error: (error as Error).message,
555
+ timestamp: new Date(),
556
+ responseTime: Date.now() - startTime
557
+ };
558
+ }
559
+ }
560
+
561
+ private async checkPerformance(): Promise<HealthCheckResult> {
562
+ const startTime = Date.now();
563
+
564
+ try {
565
+ // Get recent performance metrics
566
+ const recentMetrics = await this.memory.query<any>(`
567
+ SELECT
568
+ COUNT(*) as total_operations,
569
+ SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as successful_operations,
570
+ AVG(duration) as avg_duration,
571
+ MAX(duration) as max_duration
572
+ FROM performance_metrics
573
+ WHERE start_time > ?
574
+ `, [Date.now() - 300000]); // Last 5 minutes
575
+
576
+ const metrics = recentMetrics[0] || {};
577
+ const errorRate = metrics.total_operations > 0
578
+ ? (metrics.total_operations - metrics.successful_operations) / metrics.total_operations
579
+ : 0;
580
+
581
+ const responseTime = Date.now() - startTime;
582
+
583
+ let status: 'healthy' | 'degraded' | 'unhealthy' = 'healthy';
584
+ let message = 'Performance metrics within normal limits';
585
+
586
+ if (errorRate > this.config.thresholds.errorRate) {
587
+ status = 'degraded';
588
+ message = `High error rate: ${(errorRate * 100).toFixed(1)}%`;
589
+ }
590
+
591
+ if (metrics.avg_duration > this.config.thresholds.responseTime) {
592
+ status = status === 'degraded' ? 'unhealthy' : 'degraded';
593
+ message = `High average response time: ${metrics.avg_duration}ms`;
594
+ }
595
+
596
+ return {
597
+ component: 'performance',
598
+ status,
599
+ message,
600
+ details: {
601
+ totalOperations: metrics.total_operations || 0,
602
+ successfulOperations: metrics.successful_operations || 0,
603
+ errorRate,
604
+ avgDuration: metrics.avg_duration || 0,
605
+ maxDuration: metrics.max_duration || 0
606
+ },
607
+ timestamp: new Date(),
608
+ responseTime
609
+ };
610
+
611
+ } catch (error) {
612
+ return {
613
+ component: 'performance',
614
+ status: 'unhealthy',
615
+ message: 'Performance check failed',
616
+ error: (error as Error).message,
617
+ timestamp: new Date(),
618
+ responseTime: Date.now() - startTime
619
+ };
620
+ }
621
+ }
622
+
623
+ private createSkippedResult(component: string): HealthCheckResult {
624
+ return {
625
+ component,
626
+ status: 'unknown',
627
+ message: 'Health check skipped',
628
+ timestamp: new Date()
629
+ };
630
+ }
631
+
632
+ private async getSystemResources(): Promise<SystemResources> {
633
+ const cpus = os.cpus();
634
+ const totalMemory = os.totalmem();
635
+ const freeMemory = os.freemem();
636
+ const usedMemory = totalMemory - freeMemory;
637
+
638
+ // Calculate CPU usage with averaging
639
+ const cpuUsage = await this.calculateCPUUsage();
640
+
641
+ // Get real disk usage
642
+ const { diskUsage, diskTotal } = await this.getDiskUsage();
643
+
644
+ return {
645
+ cpuUsage,
646
+ memoryUsage: usedMemory / 1024 / 1024, // MB
647
+ memoryTotal: totalMemory / 1024 / 1024, // MB
648
+ diskUsage,
649
+ diskTotal,
650
+ loadAverage: os.loadavg(),
651
+ processCount: cpus.length
652
+ };
653
+ }
654
+
655
+ private async createHealthTables(): Promise<void> {
656
+ await this.memory.execute(`
657
+ CREATE TABLE IF NOT EXISTS health_checks (
658
+ id TEXT PRIMARY KEY,
659
+ component TEXT NOT NULL,
660
+ status TEXT NOT NULL,
661
+ message TEXT,
662
+ details TEXT,
663
+ error TEXT,
664
+ response_time INTEGER,
665
+ timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
666
+ );
667
+
668
+ CREATE INDEX IF NOT EXISTS idx_health_component ON health_checks(component);
669
+ CREATE INDEX IF NOT EXISTS idx_health_timestamp ON health_checks(timestamp);
670
+
671
+ CREATE TABLE IF NOT EXISTS health_alerts (
672
+ id TEXT PRIMARY KEY,
673
+ alert_type TEXT NOT NULL,
674
+ severity TEXT NOT NULL,
675
+ message TEXT NOT NULL,
676
+ details TEXT,
677
+ timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
678
+ acknowledged BOOLEAN DEFAULT FALSE
679
+ );
680
+ `);
681
+ }
682
+
683
+ private async storeHealthResult(status: SystemHealthStatus): Promise<void> {
684
+ // Store individual component results
685
+ for (const [component, result] of Object.entries(status.components)) {
686
+ await this.memory.insert('health_checks', {
687
+ id: `${component}_${Date.now()}`,
688
+ component,
689
+ status: result.status,
690
+ message: result.message,
691
+ details: JSON.stringify(result.details),
692
+ error: result.error,
693
+ response_time: result.responseTime,
694
+ timestamp: result.timestamp
695
+ });
696
+ }
697
+
698
+ // Add to history
699
+ this.checkHistory.push(...Object.values(status.components));
700
+
701
+ // Limit history size
702
+ if (this.checkHistory.length > 1000) {
703
+ this.checkHistory = this.checkHistory.slice(-500);
704
+ }
705
+ }
706
+
707
+ private checkAlerts(status: SystemHealthStatus): void {
708
+ // Check for critical conditions
709
+ const unhealthyComponents = Object.entries(status.components)
710
+ .filter(([_, result]) => result.status === 'unhealthy');
711
+
712
+ if (unhealthyComponents.length > 0) {
713
+ this.emit('health:alert', {
714
+ type: 'component_failure',
715
+ severity: 'critical',
716
+ message: `${unhealthyComponents.length} components unhealthy`,
717
+ components: unhealthyComponents.map(([name]) => name)
718
+ });
719
+ }
720
+
721
+ // Check system resources
722
+ const resources = status.metrics.systemResources;
723
+ if (resources.cpuUsage > 90) {
724
+ this.emit('health:alert', {
725
+ type: 'resource_critical',
726
+ severity: 'critical',
727
+ message: `CPU usage critical: ${resources.cpuUsage}%`
728
+ });
729
+ }
730
+
731
+ if ((resources.memoryUsage / resources.memoryTotal) > 0.9) {
732
+ this.emit('health:alert', {
733
+ type: 'resource_critical',
734
+ severity: 'critical',
735
+ message: `Memory usage critical: ${(resources.memoryUsage / resources.memoryTotal * 100).toFixed(1)}%`
736
+ });
737
+ }
738
+ }
739
+
740
+ private calculateAverageResponseTime(): number {
741
+ if (this.checkHistory.length === 0) return 0;
742
+
743
+ const responseTimes = this.checkHistory
744
+ .map(h => h.responseTime || 0)
745
+ .filter(t => t > 0);
746
+
747
+ if (responseTimes.length === 0) return 0;
748
+
749
+ return responseTimes.reduce((a, b) => a + b, 0) / responseTimes.length;
750
+ }
751
+
752
+ /**
753
+ * Calculate real CPU usage with averaging
754
+ */
755
+ private async calculateCPUUsage(): Promise<number> {
756
+ const cpus = os.cpus();
757
+
758
+ const currentCPUInfo = cpus.map(cpu => {
759
+ const total = Object.values(cpu.times).reduce((acc, time) => acc + time, 0);
760
+ return {
761
+ idle: cpu.times.idle,
762
+ total: total
763
+ };
764
+ });
765
+
766
+ if (!this.lastCPUInfo) {
767
+ this.lastCPUInfo = currentCPUInfo;
768
+ // Wait a bit and calculate again for initial reading
769
+ await new Promise(resolve => setTimeout(resolve, 100));
770
+ return this.calculateCPUUsage();
771
+ }
772
+
773
+ let totalIdleDiff = 0;
774
+ let totalDiff = 0;
775
+
776
+ for (let i = 0; i < cpus.length; i++) {
777
+ const lastCPU = this.lastCPUInfo[i];
778
+ const currentCPU = currentCPUInfo[i];
779
+
780
+ const idleDiff = currentCPU.idle - lastCPU.idle;
781
+ const totalCPUDiff = currentCPU.total - lastCPU.total;
782
+
783
+ totalIdleDiff += idleDiff;
784
+ totalDiff += totalCPUDiff;
785
+ }
786
+
787
+ this.lastCPUInfo = currentCPUInfo;
788
+
789
+ if (totalDiff === 0) return 0;
790
+
791
+ const idlePercentage = (totalIdleDiff / totalDiff) * 100;
792
+ const usagePercentage = 100 - idlePercentage;
793
+
794
+ return Math.max(0, Math.min(100, usagePercentage));
795
+ }
796
+
797
+ /**
798
+ * Get real disk usage statistics
799
+ */
800
+ private async getDiskUsage(): Promise<{ diskUsage: number; diskTotal: number }> {
801
+ try {
802
+ // Platform-specific disk usage calculation
803
+ if (process.platform === 'darwin' || process.platform === 'linux') {
804
+ return this.getUnixDiskUsage();
805
+ } else if (process.platform === 'win32') {
806
+ return this.getWindowsDiskUsage();
807
+ } else {
808
+ // Fallback for unsupported platforms
809
+ return { diskUsage: 0, diskTotal: 0 };
810
+ }
811
+ } catch (error) {
812
+ this.logger.warn('Failed to get disk usage:', error);
813
+ return { diskUsage: 0, diskTotal: 0 };
814
+ }
815
+ }
816
+
817
+ /**
818
+ * Get disk usage for Unix-based systems (macOS, Linux)
819
+ */
820
+ private getUnixDiskUsage(): { diskUsage: number; diskTotal: number } {
821
+ try {
822
+ // Get current working directory's mount point
823
+ const cwd = process.cwd();
824
+
825
+ // Get disk usage for the filesystem containing the current directory
826
+ const output = execSync(`df -k "${cwd}"`, { encoding: 'utf8' });
827
+ const lines = output.trim().split('\n');
828
+
829
+ if (lines.length < 2) {
830
+ throw new Error('Unexpected df output format');
831
+ }
832
+
833
+ // Handle cases where the output might span multiple lines
834
+ let dataLine = lines[1];
835
+ if (lines.length > 2 && !lines[1].includes('/')) {
836
+ // Some systems split long filesystem names across lines
837
+ dataLine = lines[1] + ' ' + lines[2];
838
+ }
839
+
840
+ // Parse the data line
841
+ const parts = dataLine.split(/\s+/);
842
+
843
+ // Find the numeric values (skip filesystem name)
844
+ let totalBlocks = 0;
845
+ let usedBlocks = 0;
846
+ let foundNumbers = false;
847
+
848
+ for (let i = 0; i < parts.length; i++) {
849
+ const num = parseInt(parts[i], 10);
850
+ if (!isNaN(num) && !foundNumbers) {
851
+ totalBlocks = num;
852
+ if (i + 1 < parts.length) {
853
+ usedBlocks = parseInt(parts[i + 1], 10);
854
+ foundNumbers = true;
855
+ break;
856
+ }
857
+ }
858
+ }
859
+
860
+ if (!foundNumbers || isNaN(totalBlocks) || isNaN(usedBlocks)) {
861
+ throw new Error('Failed to parse disk usage numbers');
862
+ }
863
+
864
+ const diskTotal = totalBlocks / 1024 / 1024; // Convert to GB
865
+ const diskUsed = usedBlocks / 1024 / 1024; // Convert to GB
866
+ const diskUsage = (diskUsed / diskTotal) * 100;
867
+
868
+ return {
869
+ diskUsage: Math.round(diskUsage * 10) / 10, // Round to 1 decimal
870
+ diskTotal: Math.round(diskTotal * 10) / 10
871
+ };
872
+ } catch (error) {
873
+ this.logger.error('Unix disk usage check failed:', error);
874
+ throw error;
875
+ }
876
+ }
877
+
878
+ /**
879
+ * Get disk usage for Windows systems
880
+ */
881
+ private getWindowsDiskUsage(): { diskUsage: number; diskTotal: number } {
882
+ try {
883
+ // Get disk usage for C: drive using WMIC
884
+ const output = execSync('wmic logicaldisk where caption="C:" get size,freespace /value', { encoding: 'utf8' });
885
+
886
+ const sizeMatch = output.match(/Size=(\d+)/);
887
+ const freeMatch = output.match(/FreeSpace=(\d+)/);
888
+
889
+ if (!sizeMatch || !freeMatch) {
890
+ throw new Error('Failed to parse Windows disk usage');
891
+ }
892
+
893
+ const totalBytes = parseInt(sizeMatch[1], 10);
894
+ const freeBytes = parseInt(freeMatch[1], 10);
895
+ const usedBytes = totalBytes - freeBytes;
896
+
897
+ const diskTotal = totalBytes / 1024 / 1024 / 1024; // Convert to GB
898
+ const diskUsed = usedBytes / 1024 / 1024 / 1024; // Convert to GB
899
+ const diskUsage = (diskUsed / diskTotal) * 100;
900
+
901
+ return {
902
+ diskUsage: Math.round(diskUsage * 10) / 10,
903
+ diskTotal: Math.round(diskTotal * 10) / 10
904
+ };
905
+ } catch (error) {
906
+ this.logger.error('Windows disk usage check failed:', error);
907
+ throw error;
908
+ }
909
+ }
910
+
911
+ /**
912
+ * Get process-specific memory usage
913
+ */
914
+ private getProcessMemoryUsage() {
915
+ const usage = process.memoryUsage();
916
+ return {
917
+ heapUsed: usage.heapUsed / 1024 / 1024, // MB
918
+ heapTotal: usage.heapTotal / 1024 / 1024, // MB
919
+ rss: usage.rss / 1024 / 1024, // MB
920
+ external: usage.external / 1024 / 1024, // MB
921
+ arrayBuffers: usage.arrayBuffers / 1024 / 1024 // MB
922
+ };
923
+ }
924
+
925
+ /**
926
+ * Check network connectivity
927
+ */
928
+ private async checkNetworkConnectivity(): Promise<boolean> {
929
+ try {
930
+ // Simple DNS lookup to check network connectivity
931
+ const dns = await import('dns').then(m => m.promises);
932
+ await dns.lookup('google.com');
933
+ return true;
934
+ } catch (error) {
935
+ return false;
936
+ }
937
+ }
938
+
939
+ /**
940
+ * Get additional SQLite database statistics
941
+ */
942
+ private async getExtendedDatabaseStats(): Promise<any> {
943
+ try {
944
+ // Use the existing memory system stats
945
+ const dbStats = await this.memory.getDatabaseStats();
946
+
947
+ // Get additional table information if possible
948
+ try {
949
+ const tableInfo = await this.memory.query(`
950
+ SELECT
951
+ COUNT(DISTINCT name) as table_count,
952
+ SUM(CASE WHEN type = 'index' THEN 1 ELSE 0 END) as index_count
953
+ FROM sqlite_master
954
+ WHERE type IN ('table', 'index')
955
+ `);
956
+
957
+ return {
958
+ ...dbStats,
959
+ tables: tableInfo[0]?.table_count || 0,
960
+ indexes: tableInfo[0]?.index_count || 0
961
+ };
962
+ } catch (error) {
963
+ // If query fails, just return basic stats
964
+ return dbStats;
965
+ }
966
+ } catch (error) {
967
+ this.logger.warn('Failed to get extended database stats:', error);
968
+ return null;
969
+ }
970
+ }
971
+
972
+ /**
973
+ * Enhanced system check with more detailed metrics
974
+ */
975
+ private async getEnhancedSystemMetrics() {
976
+ const processMemory = this.getProcessMemoryUsage();
977
+ const networkConnected = await this.checkNetworkConnectivity();
978
+ const dbStats = await this.getExtendedDatabaseStats();
979
+
980
+ return {
981
+ process: {
982
+ memory: processMemory,
983
+ uptime: process.uptime(),
984
+ pid: process.pid,
985
+ version: process.version,
986
+ platform: process.platform,
987
+ arch: process.arch
988
+ },
989
+ network: {
990
+ connected: networkConnected
991
+ },
992
+ database: dbStats
993
+ };
994
+ }
995
+ }