snow-flow 3.0.8 → 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 (295) 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/dist/utils/snow-oauth.js +53 -16
  16. package/memory/agents/README.md +1 -1
  17. package/memory/claude-flow-data.json +1 -1
  18. package/memory/sessions/README.md +1 -1
  19. package/package.json +2 -2
  20. package/.mcp.json +0 -22
  21. package/claude-flow.config.json +0 -20
  22. package/dist/agents/app-creator.agent.d.ts +0 -55
  23. package/dist/agents/app-creator.agent.js +0 -1292
  24. package/dist/agents/base/base-snow-agent.d.ts +0 -75
  25. package/dist/agents/base/base-snow-agent.js +0 -169
  26. package/dist/agents/base-snow-agent.d.ts +0 -63
  27. package/dist/agents/base-snow-agent.js +0 -296
  28. package/dist/agents/coordinator.d.ts +0 -200
  29. package/dist/agents/coordinator.js +0 -777
  30. package/dist/agents/flow-builder-agent.d.ts +0 -18
  31. package/dist/agents/flow-builder-agent.js +0 -197
  32. package/dist/agents/queen-403-handler.d.ts +0 -47
  33. package/dist/agents/queen-403-handler.js +0 -175
  34. package/dist/agents/queen-agent-example.d.ts +0 -23
  35. package/dist/agents/queen-agent-example.js +0 -240
  36. package/dist/agents/queen-agent.test.d.ts +0 -6
  37. package/dist/agents/script-generator.agent.d.ts +0 -32
  38. package/dist/agents/script-generator.agent.js +0 -772
  39. package/dist/agents/script-writer-agent.d.ts +0 -22
  40. package/dist/agents/script-writer-agent.js +0 -695
  41. package/dist/agents/security-agent.d.ts +0 -23
  42. package/dist/agents/security-agent.js +0 -619
  43. package/dist/agents/specialists/automation-specialist.agent.d.ts +0 -44
  44. package/dist/agents/specialists/automation-specialist.agent.js +0 -204
  45. package/dist/agents/specialists/data-specialist.agent.d.ts +0 -165
  46. package/dist/agents/specialists/data-specialist.agent.js +0 -484
  47. package/dist/agents/specialists/integration-specialist.agent.d.ts +0 -227
  48. package/dist/agents/specialists/integration-specialist.agent.js +0 -725
  49. package/dist/agents/specialists/reporting-specialist.agent.d.ts +0 -54
  50. package/dist/agents/specialists/reporting-specialist.agent.js +0 -193
  51. package/dist/agents/specialists/security-specialist.agent.d.ts +0 -85
  52. package/dist/agents/specialists/security-specialist.agent.js +0 -309
  53. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.d.ts +0 -111
  54. package/dist/agents/teams/adaptive/adaptive-coordinator.agent.js +0 -383
  55. package/dist/agents/teams/base-team.d.ts +0 -72
  56. package/dist/agents/teams/base-team.js +0 -253
  57. package/dist/agents/teams/team-types.d.ts +0 -265
  58. package/dist/agents/teams/team-types.js +0 -3
  59. package/dist/agents/teams/widget/widget-architect.agent.d.ts +0 -61
  60. package/dist/agents/teams/widget/widget-architect.agent.js +0 -436
  61. package/dist/agents/teams/widget/widget-backend.agent.d.ts +0 -74
  62. package/dist/agents/teams/widget/widget-backend.agent.js +0 -1531
  63. package/dist/agents/teams/widget/widget-frontend.agent.d.ts +0 -67
  64. package/dist/agents/teams/widget/widget-frontend.agent.js +0 -1014
  65. package/dist/agents/teams/widget/widget-platform.agent.d.ts +0 -90
  66. package/dist/agents/teams/widget/widget-platform.agent.js +0 -1190
  67. package/dist/agents/teams/widget/widget-uiux.agent.d.ts +0 -107
  68. package/dist/agents/teams/widget/widget-uiux.agent.js +0 -1033
  69. package/dist/agents/test-agent.d.ts +0 -26
  70. package/dist/agents/test-agent.js +0 -734
  71. package/dist/agents/test-agents.d.ts +0 -7
  72. package/dist/agents/test-agents.js +0 -64
  73. package/dist/agents/ui-builder.agent.d.ts +0 -50
  74. package/dist/agents/ui-builder.agent.js +0 -1539
  75. package/dist/agents/widget-builder.agent.d.ts +0 -32
  76. package/dist/agents/widget-builder.agent.js +0 -439
  77. package/dist/agents/widget-creator-agent.d.ts +0 -18
  78. package/dist/agents/widget-creator-agent.js +0 -498
  79. package/dist/agents/workflow-designer.agent.d.ts +0 -31
  80. package/dist/agents/workflow-designer.agent.js +0 -583
  81. package/dist/api/error-handling.d.ts +0 -325
  82. package/dist/api/error-handling.js +0 -1488
  83. package/dist/api/flow-designer-api.d.ts +0 -167
  84. package/dist/api/flow-designer-api.js +0 -554
  85. package/dist/api/natural-language-mapper.d.ts +0 -124
  86. package/dist/api/natural-language-mapper.js +0 -501
  87. package/dist/api/performance-optimizer.d.ts +0 -240
  88. package/dist/api/performance-optimizer.js +0 -706
  89. package/dist/api/transaction-manager.d.ts +0 -189
  90. package/dist/api/transaction-manager.js +0 -576
  91. package/dist/assembly/team-assembler.d.ts +0 -140
  92. package/dist/assembly/team-assembler.js +0 -502
  93. package/dist/benchmark-performance.d.ts +0 -41
  94. package/dist/benchmark-performance.js +0 -230
  95. package/dist/cli/snow-flow-cli-integration.d.ts +0 -30
  96. package/dist/cli/snow-flow-cli-integration.js +0 -396
  97. package/dist/coordination/coordination-engine.d.ts +0 -41
  98. package/dist/coordination/coordination-engine.js +0 -324
  99. package/dist/coordination/coordination.test.d.ts +0 -6
  100. package/dist/coordination/example.d.ts +0 -31
  101. package/dist/coordination/example.js +0 -394
  102. package/dist/coordination/execution-patterns.d.ts +0 -43
  103. package/dist/coordination/execution-patterns.js +0 -507
  104. package/dist/coordination/factory.d.ts +0 -94
  105. package/dist/coordination/factory.js +0 -433
  106. package/dist/coordination/index.d.ts +0 -71
  107. package/dist/coordination/index.js +0 -135
  108. package/dist/coordination/progress-monitor.d.ts +0 -71
  109. package/dist/coordination/progress-monitor.js +0 -505
  110. package/dist/coordination/quality-gates.d.ts +0 -124
  111. package/dist/coordination/quality-gates.js +0 -577
  112. package/dist/coordination/shared-memory.d.ts +0 -39
  113. package/dist/coordination/shared-memory.js +0 -289
  114. package/dist/coordination/task-dependencies.d.ts +0 -50
  115. package/dist/coordination/task-dependencies.js +0 -407
  116. package/dist/coordination/team-coordinator.d.ts +0 -59
  117. package/dist/coordination/team-coordinator.js +0 -550
  118. package/dist/coordination/types.d.ts +0 -152
  119. package/dist/coordination/types.js +0 -3
  120. package/dist/mcp/mcp-wrapper.d.ts +0 -8
  121. package/dist/mcp/mcp-wrapper.js +0 -77
  122. package/dist/mcp/servicenow-flow-composer-enhanced.js +0 -396
  123. package/dist/mcp/servicenow-flow-composer-mcp.d.ts +0 -7
  124. package/dist/mcp/servicenow-flow-composer-mcp.js +0 -3103
  125. package/dist/mcp/servicenow-graph-memory-mcp.d.ts +0 -7
  126. package/dist/mcp/servicenow-intelligent-mcp.d.ts +0 -143
  127. package/dist/mcp/servicenow-intelligent-mcp.js +0 -4156
  128. package/dist/mcp/servicenow-xml-flow-mcp.d.ts +0 -53
  129. package/dist/mcp/servicenow-xml-flow-mcp.js +0 -1704
  130. package/dist/mcp/singleton-check.js +0 -31
  131. package/dist/mcp/test-simple-mcp.d.ts +0 -6
  132. package/dist/mcp/test-simple-mcp.js +0 -63
  133. package/dist/memory/hierarchical-memory-system.d.ts +0 -90
  134. package/dist/memory/hierarchical-memory-system.js +0 -400
  135. package/dist/memory/index.d.ts +0 -9
  136. package/dist/memory/index.js +0 -20
  137. package/dist/memory/mcp-integration-example.d.ts +0 -6
  138. package/dist/memory/mcp-integration-example.js +0 -281
  139. package/dist/memory/memory-client.d.ts +0 -199
  140. package/dist/memory/memory-client.js +0 -364
  141. package/dist/memory/memory-manager.d.ts +0 -29
  142. package/dist/memory/memory-manager.js +0 -280
  143. package/dist/memory/memory-operations.d.ts +0 -179
  144. package/dist/memory/memory-operations.js +0 -691
  145. package/dist/memory/memory-system.d.ts +0 -153
  146. package/dist/memory/memory-system.js +0 -651
  147. package/dist/memory/memory-test.d.ts +0 -6
  148. package/dist/memory/memory-test.js +0 -161
  149. package/dist/memory/snow-flow-memory-patterns.d.ts +0 -213
  150. package/dist/memory/snow-flow-memory-patterns.js +0 -200
  151. package/dist/memory/snow-memory.d.ts +0 -54
  152. package/dist/memory/snow-memory.js +0 -301
  153. package/dist/memory/swarm-memory.d.ts +0 -135
  154. package/dist/memory/swarm-memory.js +0 -378
  155. package/dist/optimization/flow-performance-optimizer.js +0 -723
  156. package/dist/orchestration/discovery/service-discovery.d.ts +0 -81
  157. package/dist/orchestration/discovery/service-discovery.js +0 -808
  158. package/dist/orchestration/distributed-orchestrator.d.ts +0 -131
  159. package/dist/orchestration/distributed-orchestrator.js +0 -712
  160. package/dist/orchestration/distribution/task-distribution-engine.d.ts +0 -53
  161. package/dist/orchestration/distribution/task-distribution-engine.js +0 -586
  162. package/dist/orchestration/flow-update-orchestrator.js +0 -648
  163. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +0 -606
  164. package/dist/orchestration/interfaces/distributed-orchestration.interface.js +0 -65
  165. package/dist/orchestration/protocols/mcpx-protocol.d.ts +0 -71
  166. package/dist/orchestration/protocols/mcpx-protocol.js +0 -668
  167. package/dist/orchestration/state/distributed-state-manager.d.ts +0 -89
  168. package/dist/orchestration/state/distributed-state-manager.js +0 -716
  169. package/dist/orchestrator/flow-composer.d.ts +0 -105
  170. package/dist/orchestrator/flow-composer.js +0 -404
  171. package/dist/orchestrator/flow-pattern-templates.d.ts +0 -260
  172. package/dist/orchestrator/flow-pattern-templates.js +0 -908
  173. package/dist/orchestrator/flow-subflow-decision-engine.d.ts +0 -202
  174. package/dist/orchestrator/flow-subflow-decision-engine.js +0 -769
  175. package/dist/orchestrator/flow-validation-engine.d.ts +0 -169
  176. package/dist/orchestrator/flow-validation-engine.js +0 -913
  177. package/dist/orchestrator/snow-orchestrator.d.ts +0 -49
  178. package/dist/orchestrator/snow-orchestrator.js +0 -235
  179. package/dist/orchestrator/subflow-creation-handler.d.ts +0 -230
  180. package/dist/orchestrator/subflow-creation-handler.js +0 -791
  181. package/dist/patterns/adaptive-patterns.d.ts +0 -140
  182. package/dist/patterns/adaptive-patterns.js +0 -549
  183. package/dist/queen/advanced-integration-test.d.ts +0 -48
  184. package/dist/queen/advanced-integration-test.js +0 -473
  185. package/dist/queen/integration-example.d.ts +0 -82
  186. package/dist/queen/integration-example.js +0 -219
  187. package/dist/queen/integration-test.d.ts +0 -72
  188. package/dist/queen/integration-test.js +0 -563
  189. package/dist/queen/mock-mcp-client.d.ts +0 -71
  190. package/dist/queen/mock-mcp-client.js +0 -317
  191. package/dist/queen/run-integration-tests.d.ts +0 -9
  192. package/dist/queen/run-integration-tests.js +0 -27
  193. package/dist/sparc/coordinators/adaptive-coordinator.d.ts +0 -54
  194. package/dist/sparc/coordinators/adaptive-coordinator.js +0 -367
  195. package/dist/sparc/coordinators/team-coordinator.d.ts +0 -66
  196. package/dist/sparc/coordinators/team-coordinator.js +0 -402
  197. package/dist/sparc/modes/team-modes.d.ts +0 -33
  198. package/dist/sparc/modes/team-modes.js +0 -399
  199. package/dist/sparc/teams/application-team.d.ts +0 -73
  200. package/dist/sparc/teams/application-team.js +0 -463
  201. package/dist/sparc/teams/flow-team.d.ts +0 -67
  202. package/dist/sparc/teams/flow-team.js +0 -373
  203. package/dist/sparc/teams/widget-team.d.ts +0 -61
  204. package/dist/sparc/teams/widget-team.js +0 -280
  205. package/dist/specialists/app-specialists.d.ts +0 -93
  206. package/dist/specialists/app-specialists.js +0 -1639
  207. package/dist/specialists/base-specialist.d.ts +0 -19
  208. package/dist/specialists/base-specialist.js +0 -54
  209. package/dist/specialists/flow-specialists.d.ts +0 -113
  210. package/dist/specialists/flow-specialists.js +0 -1787
  211. package/dist/specialists/individual-specialists.d.ts +0 -67
  212. package/dist/specialists/individual-specialists.js +0 -632
  213. package/dist/specialists/widget-specialists.d.ts +0 -70
  214. package/dist/specialists/widget-specialists.js +0 -1264
  215. package/dist/src/utils/agent-detector.js +0 -655
  216. package/dist/teams/adaptive-team.d.ts +0 -81
  217. package/dist/teams/adaptive-team.js +0 -1153
  218. package/dist/teams/application-team.d.ts +0 -30
  219. package/dist/teams/application-team.js +0 -547
  220. package/dist/teams/base-team.d.ts +0 -55
  221. package/dist/teams/base-team.js +0 -243
  222. package/dist/teams/flow-team.d.ts +0 -28
  223. package/dist/teams/flow-team.js +0 -525
  224. package/dist/teams/widget-team.d.ts +0 -26
  225. package/dist/teams/widget-team.js +0 -459
  226. package/dist/templates/flow-template-system.js +0 -625
  227. package/dist/test-fetch-incidents.d.ts +0 -2
  228. package/dist/test-fetch-incidents.js +0 -84
  229. package/dist/test-incident-access.d.ts +0 -2
  230. package/dist/test-incident-access.js +0 -72
  231. package/dist/test-iphone-flow.js +0 -189
  232. package/dist/test-limit-problem.d.ts +0 -2
  233. package/dist/test-limit-problem.js +0 -60
  234. package/dist/test-ml-batch-fix.d.ts +0 -2
  235. package/dist/test-ml-batch-fix.js +0 -104
  236. package/dist/test-ml-batch.d.ts +0 -2
  237. package/dist/test-ml-batch.js +0 -87
  238. package/dist/test-ml-query.d.ts +0 -2
  239. package/dist/test-ml-query.js +0 -100
  240. package/dist/test-ml-training-fix.d.ts +0 -12
  241. package/dist/test-ml-training-fix.js +0 -113
  242. package/dist/test-ml-training.d.ts +0 -2
  243. package/dist/test-ml-training.js +0 -32
  244. package/dist/test-operations-query.d.ts +0 -2
  245. package/dist/test-operations-query.js +0 -84
  246. package/dist/test-performance-query.d.ts +0 -2
  247. package/dist/test-performance-query.js +0 -52
  248. package/dist/test-singleton-protection.d.ts +0 -8
  249. package/dist/test-singleton-protection.js +0 -110
  250. package/dist/test-smart-limits.d.ts +0 -13
  251. package/dist/test-smart-limits.js +0 -100
  252. package/dist/test-snow-query-incidents.d.ts +0 -2
  253. package/dist/test-snow-query-incidents.js +0 -66
  254. package/dist/test-universal-query.d.ts +0 -2
  255. package/dist/test-universal-query.js +0 -106
  256. package/dist/testing/flow-testing-automation.js +0 -641
  257. package/dist/utils/complete-flow-xml-generator.js +0 -1285
  258. package/dist/utils/file-storage-fallback.d.ts +0 -62
  259. package/dist/utils/file-storage-fallback.js +0 -289
  260. package/dist/utils/flow-api-discovery.d.ts +0 -151
  261. package/dist/utils/flow-api-discovery.js +0 -439
  262. package/dist/utils/flow-examples.js +0 -720
  263. package/dist/utils/flow-structure-builder.js +0 -677
  264. package/dist/utils/flow-xml-generator.d.ts +0 -41
  265. package/dist/utils/flow-xml-generator.js +0 -258
  266. package/dist/utils/improved-flow-xml-generator.js +0 -820
  267. package/dist/utils/mcp-process-manager.backup.d.ts +0 -58
  268. package/dist/utils/mcp-process-manager.backup.js +0 -220
  269. package/dist/utils/mcp-singleton-enforcer.d.ts +0 -36
  270. package/dist/utils/mcp-singleton-enforcer.js +0 -201
  271. package/dist/utils/mcp-timeout-fix.d.ts +0 -53
  272. package/dist/utils/mcp-timeout-fix.js +0 -221
  273. package/dist/utils/migrate-claude-flow.d.ts +0 -22
  274. package/dist/utils/migrate-claude-flow.js +0 -120
  275. package/dist/utils/scope-utils.d.ts +0 -72
  276. package/dist/utils/scope-utils.js +0 -386
  277. package/dist/utils/snow-oauth-old.d.ts +0 -65
  278. package/dist/utils/snow-oauth-old.js +0 -345
  279. package/dist/utils/xml-first-flow-generator.js +0 -513
  280. package/memory/servicenow_artifacts/000d9224c895221055906c7518aa2d3d.json +0 -30
  281. package/memory/servicenow_artifacts/0196b66173303010e46b4a2214f6a7a2.json +0 -36
  282. package/memory/servicenow_artifacts/125e5d1d837e2a102a7ea130ceaad397.json +0 -30
  283. package/memory/servicenow_artifacts/7637c1f2b7112210a5e5911cde11a972.json +0 -30
  284. package/memory/servicenow_artifacts/default_documentation_tables_1754056582292.json +0 -55
  285. package/memory/servicenow_artifacts/default_documentation_tables_1754057477189.json +0 -55
  286. package/memory/update-set-sessions/01f82af583faea102a7ea130ceaad3d4.json +0 -9
  287. package/memory/update-set-sessions/27718fb983faea102a7ea130ceaad34b.json +0 -9
  288. package/memory/update-set-sessions/412e9bf6833e22502a7ea130ceaad30a.json +0 -8
  289. package/memory/update-set-sessions/66fc5a79837aea102a7ea130ceaad3ab.json +0 -9
  290. package/memory/update-set-sessions/71a30ff5837eea102a7ea130ceaad37f.json +0 -9
  291. package/memory/update-set-sessions/74fba27983faea102a7ea130ceaad3bd.json +0 -9
  292. package/memory/update-set-sessions/a0b147b5837eea102a7ea130ceaad344.json +0 -58
  293. package/memory/update-set-sessions/b13f5eb983baea102a7ea130ceaad33e.json +0 -9
  294. package/reports/swarm-auto-centralized-1752649029776.json +0 -13
  295. 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