snow-flow 3.0.9 → 3.0.13

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