snow-flow 3.0.9 → 3.0.10

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 (294) hide show
  1. package/claude-flow.bat +0 -0
  2. package/claude-flow.ps1 +0 -0
  3. package/dist/mcp/servicenow-automation-mcp.js +0 -0
  4. package/dist/mcp/servicenow-deployment-mcp.js +0 -0
  5. package/dist/mcp/servicenow-integration-mcp.js +0 -0
  6. package/dist/mcp/servicenow-mcp-server.js +0 -0
  7. package/dist/mcp/servicenow-operations-mcp.js +0 -0
  8. package/dist/mcp/servicenow-platform-development-mcp.js +0 -0
  9. package/dist/mcp/servicenow-progressive-indexer.js +0 -0
  10. package/dist/mcp/servicenow-reporting-analytics-mcp.js +133 -19
  11. package/dist/mcp/servicenow-security-compliance-mcp.js +0 -0
  12. package/dist/mcp/servicenow-update-set-mcp.js +0 -0
  13. package/dist/mcp/start-all-mcp-servers.js +0 -0
  14. package/dist/mcp/start-servicenow-mcp.js +0 -0
  15. package/memory/agents/README.md +1 -1
  16. package/memory/claude-flow-data.json +1 -1
  17. package/memory/sessions/README.md +1 -1
  18. package/package.json +2 -2
  19. package/.mcp.json +0 -22
  20. package/claude-flow.config.json +0 -20
  21. package/dist/agents/app-creator.agent.d.ts +0 -55
  22. package/dist/agents/app-creator.agent.js +0 -1292
  23. package/dist/agents/base/base-snow-agent.d.ts +0 -75
  24. package/dist/agents/base/base-snow-agent.js +0 -169
  25. package/dist/agents/base-snow-agent.d.ts +0 -63
  26. package/dist/agents/base-snow-agent.js +0 -296
  27. package/dist/agents/coordinator.d.ts +0 -200
  28. package/dist/agents/coordinator.js +0 -777
  29. package/dist/agents/flow-builder-agent.d.ts +0 -18
  30. package/dist/agents/flow-builder-agent.js +0 -197
  31. package/dist/agents/queen-403-handler.d.ts +0 -47
  32. package/dist/agents/queen-403-handler.js +0 -175
  33. package/dist/agents/queen-agent-example.d.ts +0 -23
  34. package/dist/agents/queen-agent-example.js +0 -240
  35. package/dist/agents/queen-agent.test.d.ts +0 -6
  36. package/dist/agents/script-generator.agent.d.ts +0 -32
  37. package/dist/agents/script-generator.agent.js +0 -772
  38. package/dist/agents/script-writer-agent.d.ts +0 -22
  39. package/dist/agents/script-writer-agent.js +0 -695
  40. package/dist/agents/security-agent.d.ts +0 -23
  41. package/dist/agents/security-agent.js +0 -619
  42. package/dist/agents/specialists/automation-specialist.agent.d.ts +0 -44
  43. package/dist/agents/specialists/automation-specialist.agent.js +0 -204
  44. package/dist/agents/specialists/data-specialist.agent.d.ts +0 -165
  45. package/dist/agents/specialists/data-specialist.agent.js +0 -484
  46. package/dist/agents/specialists/integration-specialist.agent.d.ts +0 -227
  47. package/dist/agents/specialists/integration-specialist.agent.js +0 -725
  48. package/dist/agents/specialists/reporting-specialist.agent.d.ts +0 -54
  49. package/dist/agents/specialists/reporting-specialist.agent.js +0 -193
  50. package/dist/agents/specialists/security-specialist.agent.d.ts +0 -85
  51. package/dist/agents/specialists/security-specialist.agent.js +0 -309
  52. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts +0 -111
  53. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js +0 -383
  54. package/dist/agents/teams/base-team.d.ts +0 -72
  55. package/dist/agents/teams/base-team.js +0 -253
  56. package/dist/agents/teams/team-types.d.ts +0 -265
  57. package/dist/agents/teams/team-types.js +0 -3
  58. package/dist/agents/teams/widget/widget-architect.agent.d.ts +0 -61
  59. package/dist/agents/teams/widget/widget-architect.agent.js +0 -436
  60. package/dist/agents/teams/widget/widget-backend.agent.d.ts +0 -74
  61. package/dist/agents/teams/widget/widget-backend.agent.js +0 -1531
  62. package/dist/agents/teams/widget/widget-frontend.agent.d.ts +0 -67
  63. package/dist/agents/teams/widget/widget-frontend.agent.js +0 -1014
  64. package/dist/agents/teams/widget/widget-platform.agent.d.ts +0 -90
  65. package/dist/agents/teams/widget/widget-platform.agent.js +0 -1190
  66. package/dist/agents/teams/widget/widget-uiux.agent.d.ts +0 -107
  67. package/dist/agents/teams/widget/widget-uiux.agent.js +0 -1033
  68. package/dist/agents/test-agent.d.ts +0 -26
  69. package/dist/agents/test-agent.js +0 -734
  70. package/dist/agents/test-agents.d.ts +0 -7
  71. package/dist/agents/test-agents.js +0 -64
  72. package/dist/agents/ui-builder.agent.d.ts +0 -50
  73. package/dist/agents/ui-builder.agent.js +0 -1539
  74. package/dist/agents/widget-builder.agent.d.ts +0 -32
  75. package/dist/agents/widget-builder.agent.js +0 -439
  76. package/dist/agents/widget-creator-agent.d.ts +0 -18
  77. package/dist/agents/widget-creator-agent.js +0 -498
  78. package/dist/agents/workflow-designer.agent.d.ts +0 -31
  79. package/dist/agents/workflow-designer.agent.js +0 -583
  80. package/dist/api/error-handling.d.ts +0 -325
  81. package/dist/api/error-handling.js +0 -1488
  82. package/dist/api/flow-designer-api.d.ts +0 -167
  83. package/dist/api/flow-designer-api.js +0 -554
  84. package/dist/api/natural-language-mapper.d.ts +0 -124
  85. package/dist/api/natural-language-mapper.js +0 -501
  86. package/dist/api/performance-optimizer.d.ts +0 -240
  87. package/dist/api/performance-optimizer.js +0 -706
  88. package/dist/api/transaction-manager.d.ts +0 -189
  89. package/dist/api/transaction-manager.js +0 -576
  90. package/dist/assembly/team-assembler.d.ts +0 -140
  91. package/dist/assembly/team-assembler.js +0 -502
  92. package/dist/benchmark-performance.d.ts +0 -41
  93. package/dist/benchmark-performance.js +0 -230
  94. package/dist/cli/snow-flow-cli-integration.d.ts +0 -30
  95. package/dist/cli/snow-flow-cli-integration.js +0 -396
  96. package/dist/coordination/coordination-engine.d.ts +0 -41
  97. package/dist/coordination/coordination-engine.js +0 -324
  98. package/dist/coordination/coordination.test.d.ts +0 -6
  99. package/dist/coordination/example.d.ts +0 -31
  100. package/dist/coordination/example.js +0 -394
  101. package/dist/coordination/execution-patterns.d.ts +0 -43
  102. package/dist/coordination/execution-patterns.js +0 -507
  103. package/dist/coordination/factory.d.ts +0 -94
  104. package/dist/coordination/factory.js +0 -433
  105. package/dist/coordination/index.d.ts +0 -71
  106. package/dist/coordination/index.js +0 -135
  107. package/dist/coordination/progress-monitor.d.ts +0 -71
  108. package/dist/coordination/progress-monitor.js +0 -505
  109. package/dist/coordination/quality-gates.d.ts +0 -124
  110. package/dist/coordination/quality-gates.js +0 -577
  111. package/dist/coordination/shared-memory.d.ts +0 -39
  112. package/dist/coordination/shared-memory.js +0 -289
  113. package/dist/coordination/task-dependencies.d.ts +0 -50
  114. package/dist/coordination/task-dependencies.js +0 -407
  115. package/dist/coordination/team-coordinator.d.ts +0 -59
  116. package/dist/coordination/team-coordinator.js +0 -550
  117. package/dist/coordination/types.d.ts +0 -152
  118. package/dist/coordination/types.js +0 -3
  119. package/dist/mcp/mcp-wrapper.d.ts +0 -8
  120. package/dist/mcp/mcp-wrapper.js +0 -77
  121. package/dist/mcp/servicenow-flow-composer-enhanced.js +0 -396
  122. package/dist/mcp/servicenow-flow-composer-mcp.d.ts +0 -7
  123. package/dist/mcp/servicenow-flow-composer-mcp.js +0 -3103
  124. package/dist/mcp/servicenow-graph-memory-mcp.d.ts +0 -7
  125. package/dist/mcp/servicenow-intelligent-mcp.d.ts +0 -143
  126. package/dist/mcp/servicenow-intelligent-mcp.js +0 -4156
  127. package/dist/mcp/servicenow-xml-flow-mcp.d.ts +0 -53
  128. package/dist/mcp/servicenow-xml-flow-mcp.js +0 -1704
  129. package/dist/mcp/singleton-check.js +0 -31
  130. package/dist/mcp/test-simple-mcp.d.ts +0 -6
  131. package/dist/mcp/test-simple-mcp.js +0 -63
  132. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  133. package/dist/memory/hierarchical-memory-system.js +0 -400
  134. package/dist/memory/index.d.ts +0 -9
  135. package/dist/memory/index.js +0 -20
  136. package/dist/memory/mcp-integration-example.d.ts +0 -6
  137. package/dist/memory/mcp-integration-example.js +0 -281
  138. package/dist/memory/memory-client.d.ts +0 -199
  139. package/dist/memory/memory-client.js +0 -364
  140. package/dist/memory/memory-manager.d.ts +0 -29
  141. package/dist/memory/memory-manager.js +0 -280
  142. package/dist/memory/memory-operations.d.ts +0 -179
  143. package/dist/memory/memory-operations.js +0 -691
  144. package/dist/memory/memory-system.d.ts +0 -153
  145. package/dist/memory/memory-system.js +0 -651
  146. package/dist/memory/memory-test.d.ts +0 -6
  147. package/dist/memory/memory-test.js +0 -161
  148. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  149. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  150. package/dist/memory/snow-memory.d.ts +0 -54
  151. package/dist/memory/snow-memory.js +0 -301
  152. package/dist/memory/swarm-memory.d.ts +0 -135
  153. package/dist/memory/swarm-memory.js +0 -378
  154. package/dist/optimization/flow-performance-optimizer.js +0 -723
  155. package/dist/orchestration/discovery/service-discovery.d.ts +0 -81
  156. package/dist/orchestration/discovery/service-discovery.js +0 -808
  157. package/dist/orchestration/distributed-orchestrator.d.ts +0 -131
  158. package/dist/orchestration/distributed-orchestrator.js +0 -712
  159. package/dist/orchestration/distribution/task-distribution-engine.d.ts +0 -53
  160. package/dist/orchestration/distribution/task-distribution-engine.js +0 -586
  161. package/dist/orchestration/flow-update-orchestrator.js +0 -648
  162. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +0 -606
  163. package/dist/orchestration/interfaces/distributed-orchestration.interface.js +0 -65
  164. package/dist/orchestration/protocols/mcpx-protocol.d.ts +0 -71
  165. package/dist/orchestration/protocols/mcpx-protocol.js +0 -668
  166. package/dist/orchestration/state/distributed-state-manager.d.ts +0 -89
  167. package/dist/orchestration/state/distributed-state-manager.js +0 -716
  168. package/dist/orchestrator/flow-composer.d.ts +0 -105
  169. package/dist/orchestrator/flow-composer.js +0 -404
  170. package/dist/orchestrator/flow-pattern-templates.d.ts +0 -260
  171. package/dist/orchestrator/flow-pattern-templates.js +0 -908
  172. package/dist/orchestrator/flow-subflow-decision-engine.d.ts +0 -202
  173. package/dist/orchestrator/flow-subflow-decision-engine.js +0 -769
  174. package/dist/orchestrator/flow-validation-engine.d.ts +0 -169
  175. package/dist/orchestrator/flow-validation-engine.js +0 -913
  176. package/dist/orchestrator/snow-orchestrator.d.ts +0 -49
  177. package/dist/orchestrator/snow-orchestrator.js +0 -235
  178. package/dist/orchestrator/subflow-creation-handler.d.ts +0 -230
  179. package/dist/orchestrator/subflow-creation-handler.js +0 -791
  180. package/dist/patterns/adaptive-patterns.d.ts +0 -140
  181. package/dist/patterns/adaptive-patterns.js +0 -549
  182. package/dist/queen/advanced-integration-test.d.ts +0 -48
  183. package/dist/queen/advanced-integration-test.js +0 -473
  184. package/dist/queen/integration-example.d.ts +0 -82
  185. package/dist/queen/integration-example.js +0 -219
  186. package/dist/queen/integration-test.d.ts +0 -72
  187. package/dist/queen/integration-test.js +0 -563
  188. package/dist/queen/mock-mcp-client.d.ts +0 -71
  189. package/dist/queen/mock-mcp-client.js +0 -317
  190. package/dist/queen/run-integration-tests.d.ts +0 -9
  191. package/dist/queen/run-integration-tests.js +0 -27
  192. package/dist/sparc/coordinators/adaptive-coordinator.d.ts +0 -54
  193. package/dist/sparc/coordinators/adaptive-coordinator.js +0 -367
  194. package/dist/sparc/coordinators/team-coordinator.d.ts +0 -66
  195. package/dist/sparc/coordinators/team-coordinator.js +0 -402
  196. package/dist/sparc/modes/team-modes.d.ts +0 -33
  197. package/dist/sparc/modes/team-modes.js +0 -399
  198. package/dist/sparc/teams/application-team.d.ts +0 -73
  199. package/dist/sparc/teams/application-team.js +0 -463
  200. package/dist/sparc/teams/flow-team.d.ts +0 -67
  201. package/dist/sparc/teams/flow-team.js +0 -373
  202. package/dist/sparc/teams/widget-team.d.ts +0 -61
  203. package/dist/sparc/teams/widget-team.js +0 -280
  204. package/dist/specialists/app-specialists.d.ts +0 -93
  205. package/dist/specialists/app-specialists.js +0 -1639
  206. package/dist/specialists/base-specialist.d.ts +0 -19
  207. package/dist/specialists/base-specialist.js +0 -54
  208. package/dist/specialists/flow-specialists.d.ts +0 -113
  209. package/dist/specialists/flow-specialists.js +0 -1787
  210. package/dist/specialists/individual-specialists.d.ts +0 -67
  211. package/dist/specialists/individual-specialists.js +0 -632
  212. package/dist/specialists/widget-specialists.d.ts +0 -70
  213. package/dist/specialists/widget-specialists.js +0 -1264
  214. package/dist/src/utils/agent-detector.js +0 -655
  215. package/dist/teams/adaptive-team.d.ts +0 -81
  216. package/dist/teams/adaptive-team.js +0 -1153
  217. package/dist/teams/application-team.d.ts +0 -30
  218. package/dist/teams/application-team.js +0 -547
  219. package/dist/teams/base-team.d.ts +0 -55
  220. package/dist/teams/base-team.js +0 -243
  221. package/dist/teams/flow-team.d.ts +0 -28
  222. package/dist/teams/flow-team.js +0 -525
  223. package/dist/teams/widget-team.d.ts +0 -26
  224. package/dist/teams/widget-team.js +0 -459
  225. package/dist/templates/flow-template-system.js +0 -625
  226. package/dist/test-fetch-incidents.d.ts +0 -2
  227. package/dist/test-fetch-incidents.js +0 -84
  228. package/dist/test-incident-access.d.ts +0 -2
  229. package/dist/test-incident-access.js +0 -72
  230. package/dist/test-iphone-flow.js +0 -189
  231. package/dist/test-limit-problem.d.ts +0 -2
  232. package/dist/test-limit-problem.js +0 -60
  233. package/dist/test-ml-batch-fix.d.ts +0 -2
  234. package/dist/test-ml-batch-fix.js +0 -104
  235. package/dist/test-ml-batch.d.ts +0 -2
  236. package/dist/test-ml-batch.js +0 -87
  237. package/dist/test-ml-query.d.ts +0 -2
  238. package/dist/test-ml-query.js +0 -100
  239. package/dist/test-ml-training-fix.d.ts +0 -12
  240. package/dist/test-ml-training-fix.js +0 -113
  241. package/dist/test-ml-training.d.ts +0 -2
  242. package/dist/test-ml-training.js +0 -32
  243. package/dist/test-operations-query.d.ts +0 -2
  244. package/dist/test-operations-query.js +0 -84
  245. package/dist/test-performance-query.d.ts +0 -2
  246. package/dist/test-performance-query.js +0 -52
  247. package/dist/test-singleton-protection.d.ts +0 -8
  248. package/dist/test-singleton-protection.js +0 -110
  249. package/dist/test-smart-limits.d.ts +0 -13
  250. package/dist/test-smart-limits.js +0 -100
  251. package/dist/test-snow-query-incidents.d.ts +0 -2
  252. package/dist/test-snow-query-incidents.js +0 -66
  253. package/dist/test-universal-query.d.ts +0 -2
  254. package/dist/test-universal-query.js +0 -106
  255. package/dist/testing/flow-testing-automation.js +0 -641
  256. package/dist/utils/complete-flow-xml-generator.js +0 -1285
  257. package/dist/utils/file-storage-fallback.d.ts +0 -62
  258. package/dist/utils/file-storage-fallback.js +0 -289
  259. package/dist/utils/flow-api-discovery.d.ts +0 -151
  260. package/dist/utils/flow-api-discovery.js +0 -439
  261. package/dist/utils/flow-examples.js +0 -720
  262. package/dist/utils/flow-structure-builder.js +0 -677
  263. package/dist/utils/flow-xml-generator.d.ts +0 -41
  264. package/dist/utils/flow-xml-generator.js +0 -258
  265. package/dist/utils/improved-flow-xml-generator.js +0 -820
  266. package/dist/utils/mcp-process-manager.backup.d.ts +0 -58
  267. package/dist/utils/mcp-process-manager.backup.js +0 -220
  268. package/dist/utils/mcp-singleton-enforcer.d.ts +0 -36
  269. package/dist/utils/mcp-singleton-enforcer.js +0 -201
  270. package/dist/utils/mcp-timeout-fix.d.ts +0 -53
  271. package/dist/utils/mcp-timeout-fix.js +0 -221
  272. package/dist/utils/migrate-claude-flow.d.ts +0 -22
  273. package/dist/utils/migrate-claude-flow.js +0 -120
  274. package/dist/utils/scope-utils.d.ts +0 -72
  275. package/dist/utils/scope-utils.js +0 -386
  276. package/dist/utils/snow-oauth-old.d.ts +0 -65
  277. package/dist/utils/snow-oauth-old.js +0 -345
  278. package/dist/utils/xml-first-flow-generator.js +0 -513
  279. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  280. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  281. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  282. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  283. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  284. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  285. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  286. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  287. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  288. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  289. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  290. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  291. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  292. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
  293. package/reports/swarm-auto-centralized-1752649029776.json +0 -13
  294. package/src/memory/README.md +0 -240
@@ -1,58 +0,0 @@
1
- /**
2
- * MCP Process Manager
3
- * Prevents excessive MCP server spawning and manages resource limits
4
- */
5
- export declare class MCPProcessManager {
6
- private static instance;
7
- private readonly MAX_MCP_SERVERS;
8
- private readonly MAX_MEMORY_MB;
9
- private readonly CLEANUP_INTERVAL;
10
- private cleanupTimer?;
11
- private constructor();
12
- static getInstance(): MCPProcessManager;
13
- /**
14
- * Check if we can spawn a new MCP server
15
- */
16
- canSpawnServer(): boolean;
17
- /**
18
- * Get current MCP system status
19
- */
20
- getSystemStatus(): {
21
- processCount: number;
22
- memoryUsageMB: number;
23
- processes: Array<{
24
- pid: number;
25
- memory: number;
26
- name: string;
27
- }>;
28
- };
29
- /**
30
- * Kill duplicate MCP servers (keep only the newest)
31
- */
32
- killDuplicates(): void;
33
- /**
34
- * Kill all MCP servers
35
- */
36
- killAll(): void;
37
- /**
38
- * Clean up excessive resources
39
- */
40
- cleanup(): void;
41
- /**
42
- * Start periodic cleanup
43
- */
44
- private startPeriodicCleanup;
45
- /**
46
- * Stop periodic cleanup
47
- */
48
- stopPeriodicCleanup(): void;
49
- /**
50
- * Get resource usage summary
51
- */
52
- getResourceSummary(): string;
53
- /**
54
- * Get health status
55
- */
56
- getHealthStatus(): 'healthy' | 'warning' | 'critical';
57
- }
58
- //# sourceMappingURL=mcp-process-manager.backup.d.ts.map
@@ -1,220 +0,0 @@
1
- "use strict";
2
- /**
3
- * MCP Process Manager
4
- * Prevents excessive MCP server spawning and manages resource limits
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.MCPProcessManager = void 0;
8
- const child_process_1 = require("child_process");
9
- const logger_js_1 = require("./logger.js");
10
- const logger = new logger_js_1.Logger('MCPProcessManager');
11
- class MCPProcessManager {
12
- constructor() {
13
- this.MAX_MCP_SERVERS = parseInt(process.env.SNOW_MAX_MCP_SERVERS || '10');
14
- this.MAX_MEMORY_MB = parseInt(process.env.SNOW_MCP_MEMORY_LIMIT || '1500');
15
- this.CLEANUP_INTERVAL = 60000; // 1 minute
16
- // Start periodic cleanup
17
- this.startPeriodicCleanup();
18
- }
19
- static getInstance() {
20
- if (!MCPProcessManager.instance) {
21
- MCPProcessManager.instance = new MCPProcessManager();
22
- }
23
- return MCPProcessManager.instance;
24
- }
25
- /**
26
- * Check if we can spawn a new MCP server
27
- */
28
- canSpawnServer() {
29
- const status = this.getSystemStatus();
30
- if (status.processCount >= this.MAX_MCP_SERVERS) {
31
- logger.warn(`❌ Cannot spawn: Already at max servers (${status.processCount}/${this.MAX_MCP_SERVERS})`);
32
- return false;
33
- }
34
- if (status.memoryUsageMB > this.MAX_MEMORY_MB) {
35
- logger.warn(`❌ Cannot spawn: Memory limit exceeded (${status.memoryUsageMB}MB > ${this.MAX_MEMORY_MB}MB)`);
36
- return false;
37
- }
38
- return true;
39
- }
40
- /**
41
- * Get current MCP system status
42
- */
43
- getSystemStatus() {
44
- try {
45
- // Count MCP processes
46
- const psOutput = (0, child_process_1.execSync)('ps aux | grep -E "mcp|servicenow.*mcp" | grep -v grep', {
47
- encoding: 'utf8'
48
- }).trim();
49
- if (!psOutput) {
50
- return {
51
- processCount: 0,
52
- memoryUsageMB: 0,
53
- processes: []
54
- };
55
- }
56
- const lines = psOutput.split('\n');
57
- const processes = [];
58
- let totalMemory = 0;
59
- for (const line of lines) {
60
- const parts = line.split(/\s+/);
61
- if (parts.length > 10) {
62
- const pid = parseInt(parts[1]);
63
- const memory = Math.round(parseInt(parts[5]) / 1024); // Convert KB to MB
64
- const name = parts.slice(10).join(' ');
65
- processes.push({ pid, memory, name });
66
- totalMemory += memory;
67
- }
68
- }
69
- return {
70
- processCount: processes.length,
71
- memoryUsageMB: totalMemory,
72
- processes
73
- };
74
- }
75
- catch (error) {
76
- // No MCP processes found
77
- return {
78
- processCount: 0,
79
- memoryUsageMB: 0,
80
- processes: []
81
- };
82
- }
83
- }
84
- /**
85
- * Kill duplicate MCP servers (keep only the newest)
86
- */
87
- killDuplicates() {
88
- const status = this.getSystemStatus();
89
- // Group processes by server type
90
- const serverGroups = new Map();
91
- for (const proc of status.processes) {
92
- // Extract server type from process name
93
- const match = proc.name.match(/servicenow-([^-]+)-mcp\.js/);
94
- if (match) {
95
- const serverType = match[1];
96
- if (!serverGroups.has(serverType)) {
97
- serverGroups.set(serverType, []);
98
- }
99
- serverGroups.get(serverType).push({
100
- pid: proc.pid,
101
- memory: proc.memory
102
- });
103
- }
104
- }
105
- // Kill duplicates (keep the first one)
106
- for (const [serverType, procs] of serverGroups) {
107
- if (procs.length > 1) {
108
- logger.warn(`Found ${procs.length} instances of ${serverType}-mcp, killing duplicates...`);
109
- // Sort by PID (older PIDs first) and keep the first one
110
- procs.sort((a, b) => a.pid - b.pid);
111
- for (let i = 1; i < procs.length; i++) {
112
- try {
113
- process.kill(procs[i].pid, 'SIGTERM');
114
- logger.info(`Killed duplicate ${serverType}-mcp (PID: ${procs[i].pid})`);
115
- }
116
- catch (error) {
117
- // Process might already be dead
118
- }
119
- }
120
- }
121
- }
122
- }
123
- /**
124
- * Kill all MCP servers
125
- */
126
- killAll() {
127
- try {
128
- (0, child_process_1.execSync)('pkill -f mcp', { encoding: 'utf8' });
129
- logger.info('✅ Killed all MCP processes');
130
- }
131
- catch (error) {
132
- // pkill returns non-zero if no processes found
133
- }
134
- }
135
- /**
136
- * Clean up excessive resources
137
- */
138
- cleanup() {
139
- const status = this.getSystemStatus();
140
- if (status.processCount > this.MAX_MCP_SERVERS) {
141
- logger.warn(`🧹 Cleaning up excessive MCP servers (${status.processCount} > ${this.MAX_MCP_SERVERS})`);
142
- this.killDuplicates();
143
- }
144
- if (status.memoryUsageMB > this.MAX_MEMORY_MB) {
145
- logger.warn(`🧹 Memory usage too high (${status.memoryUsageMB}MB), killing oldest processes...`);
146
- // Sort by memory usage and kill the highest consumers
147
- const sorted = status.processes.sort((a, b) => b.memory - a.memory);
148
- let memoryFreed = 0;
149
- for (const proc of sorted) {
150
- if (status.memoryUsageMB - memoryFreed <= this.MAX_MEMORY_MB * 0.8) {
151
- break; // Stop when we're at 80% of limit
152
- }
153
- try {
154
- process.kill(proc.pid, 'SIGTERM');
155
- memoryFreed += proc.memory;
156
- logger.info(`Killed high-memory process (PID: ${proc.pid}, ${proc.memory}MB)`);
157
- }
158
- catch (error) {
159
- // Process might already be dead
160
- }
161
- }
162
- }
163
- }
164
- /**
165
- * Start periodic cleanup
166
- */
167
- startPeriodicCleanup() {
168
- // Clear existing timer
169
- if (this.cleanupTimer) {
170
- clearInterval(this.cleanupTimer);
171
- }
172
- // Run cleanup periodically
173
- this.cleanupTimer = setInterval(() => {
174
- const status = this.getSystemStatus();
175
- if (status.processCount > this.MAX_MCP_SERVERS * 0.8 ||
176
- status.memoryUsageMB > this.MAX_MEMORY_MB * 0.8) {
177
- logger.info('🔄 Running periodic MCP cleanup...');
178
- this.cleanup();
179
- }
180
- }, this.CLEANUP_INTERVAL);
181
- // Don't block process exit
182
- this.cleanupTimer.unref();
183
- }
184
- /**
185
- * Stop periodic cleanup
186
- */
187
- stopPeriodicCleanup() {
188
- if (this.cleanupTimer) {
189
- clearInterval(this.cleanupTimer);
190
- this.cleanupTimer = undefined;
191
- }
192
- }
193
- /**
194
- * Get resource usage summary
195
- */
196
- getResourceSummary() {
197
- const status = this.getSystemStatus();
198
- return `MCP Resources:
199
- Processes: ${status.processCount}/${this.MAX_MCP_SERVERS} (${Math.round(status.processCount / this.MAX_MCP_SERVERS * 100)}%)
200
- Memory: ${status.memoryUsageMB}MB/${this.MAX_MEMORY_MB}MB (${Math.round(status.memoryUsageMB / this.MAX_MEMORY_MB * 100)}%)
201
- Status: ${this.getHealthStatus()}`;
202
- }
203
- /**
204
- * Get health status
205
- */
206
- getHealthStatus() {
207
- const status = this.getSystemStatus();
208
- const processPercent = status.processCount / this.MAX_MCP_SERVERS;
209
- const memoryPercent = status.memoryUsageMB / this.MAX_MEMORY_MB;
210
- if (processPercent > 0.9 || memoryPercent > 0.9) {
211
- return 'critical';
212
- }
213
- if (processPercent > 0.7 || memoryPercent > 0.7) {
214
- return 'warning';
215
- }
216
- return 'healthy';
217
- }
218
- }
219
- exports.MCPProcessManager = MCPProcessManager;
220
- //# sourceMappingURL=mcp-process-manager.backup.js.map
@@ -1,36 +0,0 @@
1
- /**
2
- * MCP Singleton Enforcer
3
- * Ensures only ONE set of MCP servers can run at a time
4
- * v2.10.0 - Critical fix for duplicate MCP servers causing timeouts
5
- */
6
- export declare class MCPSingletonEnforcer {
7
- private static enforced;
8
- private static killTimer;
9
- private static readonly MAX_PROCESSES;
10
- /**
11
- * Emergency cleanup - use when system is completely stuck
12
- */
13
- static emergencyCleanup(): void;
14
- /**
15
- * Kill ALL existing MCP processes FORCEFULLY
16
- * This is a nuclear option but necessary to prevent timeouts
17
- */
18
- static killAllMCPProcesses(): number;
19
- /**
20
- * Enforce singleton before any MCP operation
21
- * This should be called before starting ANY MCP server
22
- */
23
- static enforce(): boolean;
24
- /**
25
- * Setup cleanup handlers
26
- */
27
- private static setupCleanup;
28
- /**
29
- * Check if MCP servers are healthy
30
- */
31
- static checkHealth(): Promise<{
32
- healthy: boolean;
33
- issues: string[];
34
- }>;
35
- }
36
- //# sourceMappingURL=mcp-singleton-enforcer.d.ts.map
@@ -1,201 +0,0 @@
1
- "use strict";
2
- /**
3
- * MCP Singleton Enforcer
4
- * Ensures only ONE set of MCP servers can run at a time
5
- * v2.10.0 - Critical fix for duplicate MCP servers causing timeouts
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.MCPSingletonEnforcer = void 0;
9
- const logger_js_1 = require("./logger.js");
10
- const child_process_1 = require("child_process");
11
- const mcp_singleton_lock_js_1 = require("./mcp-singleton-lock.js");
12
- const logger = new logger_js_1.Logger('MCPSingletonEnforcer');
13
- class MCPSingletonEnforcer {
14
- /**
15
- * Emergency cleanup - use when system is completely stuck
16
- */
17
- static emergencyCleanup() {
18
- logger.warn('🚨 EMERGENCY MCP CLEANUP INITIATED');
19
- this.killAllMCPProcesses();
20
- // Force release any locks
21
- try {
22
- const lock = (0, mcp_singleton_lock_js_1.getMCPSingletonLock)();
23
- if (lock.isAcquired()) {
24
- lock.release();
25
- }
26
- mcp_singleton_lock_js_2.MCPSingletonLock.forceRelease();
27
- }
28
- catch (e) {
29
- // Ignore lock errors during emergency cleanup
30
- }
31
- this.enforced = false;
32
- // Re-enforce with strict mode
33
- process.env.SNOW_MCP_SINGLETON_STRICT = 'true';
34
- this.enforce();
35
- }
36
- /**
37
- * Kill ALL existing MCP processes FORCEFULLY
38
- * This is a nuclear option but necessary to prevent timeouts
39
- */
40
- static killAllMCPProcesses() {
41
- try {
42
- // Count existing processes
43
- const countCmd = "ps aux | grep -E 'mcp.*\\.js' | grep -v grep | wc -l";
44
- const count = parseInt((0, child_process_1.execSync)(countCmd, { encoding: 'utf8' }).trim());
45
- if (count > 0) {
46
- logger.warn(`🔪 Found ${count} existing MCP processes, killing them all...`);
47
- // Kill all MCP processes AGGRESSIVELY with -9
48
- try {
49
- (0, child_process_1.execSync)("pkill -9 -f 'mcp.*\\.js'", { encoding: 'utf8' });
50
- logger.info('✅ Force killed all existing MCP processes');
51
- }
52
- catch (e) {
53
- // pkill returns non-zero if no processes found, which is fine
54
- }
55
- // Also kill by specific patterns
56
- const patterns = [
57
- 'snow-flow-mcp',
58
- 'servicenow-.*-mcp',
59
- 'mcp/.*\\.js'
60
- ];
61
- for (const pattern of patterns) {
62
- try {
63
- (0, child_process_1.execSync)(`pkill -f '${pattern}'`, { encoding: 'utf8' });
64
- }
65
- catch (e) {
66
- // Ignore errors, process might not exist
67
- }
68
- }
69
- // Wait a moment for processes to die
70
- (0, child_process_1.execSync)('sleep 1', { encoding: 'utf8' });
71
- // Verify they're gone
72
- const remaining = parseInt((0, child_process_1.execSync)(countCmd, { encoding: 'utf8' }).trim());
73
- if (remaining > 0) {
74
- logger.warn(`⚠️ ${remaining} MCP processes still running after kill`);
75
- // Force kill with -9
76
- try {
77
- (0, child_process_1.execSync)("pkill -9 -f 'mcp.*\\.js'", { encoding: 'utf8' });
78
- logger.info('✅ Force killed remaining MCP processes');
79
- }
80
- catch (e) {
81
- // Ignore
82
- }
83
- }
84
- return count;
85
- }
86
- return 0;
87
- }
88
- catch (error) {
89
- logger.error('Error checking/killing MCP processes:', error.message);
90
- return 0;
91
- }
92
- }
93
- /**
94
- * Enforce singleton before any MCP operation
95
- * This should be called before starting ANY MCP server
96
- */
97
- static enforce() {
98
- if (this.enforced) {
99
- logger.debug('Singleton already enforced in this session');
100
- return true;
101
- }
102
- // Check if strict mode is enabled
103
- const strictMode = process.env.SNOW_MCP_SINGLETON_STRICT === 'true';
104
- if (strictMode) {
105
- logger.info('🔒 Strict singleton mode enabled');
106
- // Kill any existing processes first
107
- const killed = this.killAllMCPProcesses();
108
- if (killed > 0) {
109
- logger.info(`🧹 Cleaned up ${killed} stale MCP processes`);
110
- }
111
- }
112
- // Try to acquire singleton lock
113
- const lock = (0, mcp_singleton_lock_js_1.getMCPSingletonLock)();
114
- if (!lock.acquire()) {
115
- if (strictMode) {
116
- // In strict mode, force release and try again
117
- logger.warn('⚠️ Lock exists, forcing release in strict mode...');
118
- mcp_singleton_lock_js_2.MCPSingletonLock.forceRelease();
119
- // Try once more
120
- if (!lock.acquire()) {
121
- throw new Error('Cannot acquire MCP singleton lock even after force release');
122
- }
123
- logger.info('✅ Acquired lock after force release');
124
- }
125
- else {
126
- throw new Error('MCP servers already running. Use SNOW_MCP_SINGLETON_STRICT=true to force');
127
- }
128
- }
129
- this.enforced = true;
130
- logger.info('✅ MCP singleton enforced successfully');
131
- // Set up cleanup on exit
132
- this.setupCleanup(lock);
133
- return true;
134
- }
135
- /**
136
- * Setup cleanup handlers
137
- */
138
- static setupCleanup(lock) {
139
- const cleanup = () => {
140
- if (this.enforced) {
141
- logger.info('🧹 Cleaning up MCP singleton...');
142
- lock.release();
143
- this.enforced = false;
144
- // Kill all MCP processes on exit
145
- this.killAllMCPProcesses();
146
- }
147
- };
148
- process.once('exit', cleanup);
149
- process.once('SIGINT', () => {
150
- cleanup();
151
- process.exit(0);
152
- });
153
- process.once('SIGTERM', () => {
154
- cleanup();
155
- process.exit(0);
156
- });
157
- }
158
- /**
159
- * Check if MCP servers are healthy
160
- */
161
- static async checkHealth() {
162
- const issues = [];
163
- try {
164
- // Check process count
165
- const countCmd = "ps aux | grep -E 'mcp.*\\.js' | grep -v grep | wc -l";
166
- const count = parseInt((0, child_process_1.execSync)(countCmd, { encoding: 'utf8' }).trim());
167
- if (count === 0) {
168
- issues.push('No MCP servers running');
169
- }
170
- else if (count > 15) {
171
- issues.push(`Too many MCP servers running: ${count}`);
172
- }
173
- // Check memory usage
174
- const memCmd = "ps aux | grep -E 'mcp.*\\.js' | grep -v grep | awk '{sum+=$6} END {print sum/1024}'";
175
- const memMB = parseFloat((0, child_process_1.execSync)(memCmd, { encoding: 'utf8' }).trim() || '0');
176
- if (memMB > 3000) {
177
- issues.push(`High memory usage: ${memMB.toFixed(0)}MB`);
178
- }
179
- // Check for zombie processes
180
- const zombieCmd = "ps aux | grep -E 'mcp.*\\.js.*<defunct>' | grep -v grep | wc -l";
181
- const zombies = parseInt((0, child_process_1.execSync)(zombieCmd, { encoding: 'utf8' }).trim());
182
- if (zombies > 0) {
183
- issues.push(`Found ${zombies} zombie MCP processes`);
184
- }
185
- }
186
- catch (error) {
187
- issues.push(`Health check error: ${error.message}`);
188
- }
189
- return {
190
- healthy: issues.length === 0,
191
- issues
192
- };
193
- }
194
- }
195
- exports.MCPSingletonEnforcer = MCPSingletonEnforcer;
196
- MCPSingletonEnforcer.enforced = false;
197
- MCPSingletonEnforcer.killTimer = null;
198
- MCPSingletonEnforcer.MAX_PROCESSES = 5;
199
- // Import the singleton lock class
200
- const mcp_singleton_lock_js_2 = require("./mcp-singleton-lock.js");
201
- //# sourceMappingURL=mcp-singleton-enforcer.js.map
@@ -1,53 +0,0 @@
1
- /**
2
- * MCP Timeout Fix
3
- * Addresses timeout issues with MCP operations, especially memory_usage
4
- * v2.10.0 - Critical fix for hanging MCP operations
5
- */
6
- export interface TimeoutConfig {
7
- startup: number;
8
- operation: number;
9
- deployment: number;
10
- memory: number;
11
- global: number;
12
- }
13
- export declare class MCPTimeoutManager {
14
- private static instance;
15
- private config;
16
- private constructor();
17
- static getInstance(): MCPTimeoutManager;
18
- /**
19
- * Get timeout for specific operation type
20
- */
21
- getTimeout(operationType: 'startup' | 'operation' | 'deployment' | 'memory' | 'global'): number;
22
- /**
23
- * Execute an operation with timeout protection
24
- */
25
- executeWithTimeout<T>(operation: Promise<T>, timeoutMs: number, operationName: string): Promise<T>;
26
- /**
27
- * Create a timeout-protected wrapper for MCP operations
28
- */
29
- wrapMCPOperation<T>(operation: () => Promise<T>, operationType?: 'startup' | 'operation' | 'deployment' | 'memory' | 'global', customTimeout?: number): Promise<T>;
30
- /**
31
- * Special handling for memory operations which tend to hang
32
- * WORKAROUND: Use file-based fallback when MCP memory operations fail
33
- */
34
- executeMemoryOperation<T>(operation: () => Promise<T>, fallbackToFile?: boolean): Promise<T>;
35
- /**
36
- * WORKAROUND: Kill hanging MCP operations
37
- */
38
- killHangingOperation(operationId: string): Promise<void>;
39
- /**
40
- * Get recommended timeout settings for slow instances
41
- */
42
- getSlowInstanceRecommendations(): Record<string, string>;
43
- /**
44
- * WORKAROUND: Emergency timeout reduction for stuck systems
45
- */
46
- applyEmergencyTimeouts(): void;
47
- /**
48
- * Apply timeout override if configured
49
- */
50
- applyOverride(): void;
51
- }
52
- export declare const mcpTimeoutManager: MCPTimeoutManager;
53
- //# sourceMappingURL=mcp-timeout-fix.d.ts.map