snow-flow 1.1.75 → 1.1.77

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 (249) hide show
  1. package/.claude-flow/queen/queen-memory.db +0 -0
  2. package/.claude-flow/queen-test/test-memory.db +0 -0
  3. package/.claude-flow/queen-test/test-memory.db-agents +0 -0
  4. package/.claude-flow/queen-test/test-memory.db-import +0 -0
  5. package/.claude-flow/queen-test/test-memory.db-memory +0 -0
  6. package/.claude-flow/queen-test/test-memory.db-neural +0 -0
  7. package/CLAUDE.md +145 -13
  8. package/README.md +117 -50
  9. package/dist/agents/base-agent.d.ts +92 -0
  10. package/dist/agents/base-agent.d.ts.map +1 -0
  11. package/dist/agents/base-agent.js +228 -0
  12. package/dist/agents/base-agent.js.map +1 -0
  13. package/dist/agents/coordinator.d.ts +200 -0
  14. package/dist/agents/coordinator.d.ts.map +1 -0
  15. package/dist/agents/coordinator.js +775 -0
  16. package/dist/agents/coordinator.js.map +1 -0
  17. package/dist/agents/flow-builder-agent.d.ts +18 -0
  18. package/dist/agents/flow-builder-agent.d.ts.map +1 -0
  19. package/dist/agents/flow-builder-agent.js +536 -0
  20. package/dist/agents/flow-builder-agent.js.map +1 -0
  21. package/dist/agents/index.d.ts +18 -0
  22. package/dist/agents/index.d.ts.map +1 -0
  23. package/dist/agents/index.js +61 -0
  24. package/dist/agents/index.js.map +1 -0
  25. package/dist/agents/queen-agent-example.d.ts +23 -0
  26. package/dist/agents/queen-agent-example.d.ts.map +1 -0
  27. package/dist/agents/queen-agent-example.js +241 -0
  28. package/dist/agents/queen-agent-example.js.map +1 -0
  29. package/dist/agents/queen-agent.d.ts +180 -0
  30. package/dist/agents/queen-agent.d.ts.map +1 -0
  31. package/dist/agents/queen-agent.js +909 -0
  32. package/dist/agents/queen-agent.js.map +1 -0
  33. package/dist/agents/queen-agent.test.d.ts +6 -0
  34. package/dist/agents/queen-agent.test.d.ts.map +1 -0
  35. package/dist/agents/queen-agent.test.js.map +1 -0
  36. package/dist/agents/script-writer-agent.d.ts +22 -0
  37. package/dist/agents/script-writer-agent.d.ts.map +1 -0
  38. package/dist/agents/script-writer-agent.js +695 -0
  39. package/dist/agents/script-writer-agent.js.map +1 -0
  40. package/dist/agents/security-agent.d.ts +23 -0
  41. package/dist/agents/security-agent.d.ts.map +1 -0
  42. package/dist/agents/security-agent.js +619 -0
  43. package/dist/agents/security-agent.js.map +1 -0
  44. package/dist/agents/test-agent.d.ts +26 -0
  45. package/dist/agents/test-agent.d.ts.map +1 -0
  46. package/dist/agents/test-agent.js +735 -0
  47. package/dist/agents/test-agent.js.map +1 -0
  48. package/dist/agents/test-agents.d.ts +7 -0
  49. package/dist/agents/test-agents.d.ts.map +1 -0
  50. package/dist/agents/test-agents.js +65 -0
  51. package/dist/agents/test-agents.js.map +1 -0
  52. package/dist/agents/widget-creator-agent.d.ts +18 -0
  53. package/dist/agents/widget-creator-agent.d.ts.map +1 -0
  54. package/dist/agents/widget-creator-agent.js +440 -0
  55. package/dist/agents/widget-creator-agent.js.map +1 -0
  56. package/dist/cli/snow-flow-cli-integration.d.ts +30 -0
  57. package/dist/cli/snow-flow-cli-integration.d.ts.map +1 -0
  58. package/dist/cli/snow-flow-cli-integration.js +385 -0
  59. package/dist/cli/snow-flow-cli-integration.js.map +1 -0
  60. package/dist/cli.js +692 -150
  61. package/dist/cli.js.map +1 -1
  62. package/dist/config/snow-flow-config.d.ts +1454 -0
  63. package/dist/config/snow-flow-config.d.ts.map +1 -0
  64. package/dist/config/snow-flow-config.js +403 -0
  65. package/dist/config/snow-flow-config.js.map +1 -0
  66. package/dist/health/system-health.d.ts +123 -0
  67. package/dist/health/system-health.d.ts.map +1 -0
  68. package/dist/health/system-health.js +580 -0
  69. package/dist/health/system-health.js.map +1 -0
  70. package/dist/index.d.ts +12 -1
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +19 -3
  73. package/dist/index.js.map +1 -1
  74. package/dist/mcp/http-transport-wrapper.d.ts +29 -0
  75. package/dist/mcp/http-transport-wrapper.d.ts.map +1 -0
  76. package/dist/mcp/http-transport-wrapper.js +318 -0
  77. package/dist/mcp/http-transport-wrapper.js.map +1 -0
  78. package/dist/mcp/service-discovery-client.d.ts +83 -0
  79. package/dist/mcp/service-discovery-client.d.ts.map +1 -0
  80. package/dist/mcp/service-discovery-client.js +211 -0
  81. package/dist/mcp/service-discovery-client.js.map +1 -0
  82. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts +58 -0
  83. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +1 -0
  84. package/dist/mcp/servicenow-deployment-mcp-refactored.js +651 -0
  85. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +1 -0
  86. package/dist/mcp/servicenow-deployment-mcp.js +116 -23
  87. package/dist/mcp/servicenow-deployment-mcp.js.map +1 -1
  88. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts +43 -0
  89. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +1 -0
  90. package/dist/mcp/servicenow-intelligent-mcp-refactored.js +576 -0
  91. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +1 -0
  92. package/dist/mcp/servicenow-intelligent-mcp.d.ts +102 -1
  93. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +1 -1
  94. package/dist/mcp/servicenow-intelligent-mcp.js +254 -18
  95. package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
  96. package/dist/mcp/servicenow-operations-mcp.js +170 -32
  97. package/dist/mcp/servicenow-operations-mcp.js.map +1 -1
  98. package/dist/mcp/shared/agent-context-provider.d.ts +77 -0
  99. package/dist/mcp/shared/agent-context-provider.d.ts.map +1 -0
  100. package/dist/mcp/shared/agent-context-provider.js +292 -0
  101. package/dist/mcp/shared/agent-context-provider.js.map +1 -0
  102. package/dist/mcp/shared/base-mcp-server.d.ts +97 -0
  103. package/dist/mcp/shared/base-mcp-server.d.ts.map +1 -0
  104. package/dist/mcp/shared/base-mcp-server.js +216 -0
  105. package/dist/mcp/shared/base-mcp-server.js.map +1 -0
  106. package/dist/mcp/shared/mcp-memory-manager.d.ts +87 -0
  107. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +1 -0
  108. package/dist/mcp/shared/mcp-memory-manager.js +423 -0
  109. package/dist/mcp/shared/mcp-memory-manager.js.map +1 -0
  110. package/dist/memory/index.d.ts +9 -0
  111. package/dist/memory/index.d.ts.map +1 -0
  112. package/dist/memory/index.js +20 -0
  113. package/dist/memory/index.js.map +1 -0
  114. package/dist/memory/mcp-integration-example.d.ts +6 -0
  115. package/dist/memory/mcp-integration-example.d.ts.map +1 -0
  116. package/dist/memory/mcp-integration-example.js +282 -0
  117. package/dist/memory/mcp-integration-example.js.map +1 -0
  118. package/dist/memory/memory-client.d.ts +184 -0
  119. package/dist/memory/memory-client.d.ts.map +1 -0
  120. package/dist/memory/memory-client.js +325 -0
  121. package/dist/memory/memory-client.js.map +1 -0
  122. package/dist/memory/memory-operations.d.ts +170 -0
  123. package/dist/memory/memory-operations.d.ts.map +1 -0
  124. package/dist/memory/memory-operations.js +639 -0
  125. package/dist/memory/memory-operations.js.map +1 -0
  126. package/dist/memory/memory-system.d.ts +118 -0
  127. package/dist/memory/memory-system.d.ts.map +1 -0
  128. package/dist/memory/memory-system.js +477 -0
  129. package/dist/memory/memory-system.js.map +1 -0
  130. package/dist/memory/memory-test.d.ts +6 -0
  131. package/dist/memory/memory-test.d.ts.map +1 -0
  132. package/dist/memory/memory-test.js +162 -0
  133. package/dist/memory/memory-test.js.map +1 -0
  134. package/dist/memory/swarm-memory.d.ts +135 -0
  135. package/dist/memory/swarm-memory.d.ts.map +1 -0
  136. package/dist/memory/swarm-memory.js +378 -0
  137. package/dist/memory/swarm-memory.js.map +1 -0
  138. package/dist/monitoring/performance-tracker.d.ts +157 -0
  139. package/dist/monitoring/performance-tracker.d.ts.map +1 -0
  140. package/dist/monitoring/performance-tracker.js +571 -0
  141. package/dist/monitoring/performance-tracker.js.map +1 -0
  142. package/dist/orchestration/discovery/service-discovery.d.ts +81 -0
  143. package/dist/orchestration/discovery/service-discovery.d.ts.map +1 -0
  144. package/dist/orchestration/discovery/service-discovery.js +808 -0
  145. package/dist/orchestration/discovery/service-discovery.js.map +1 -0
  146. package/dist/orchestration/distributed-orchestrator.d.ts +131 -0
  147. package/dist/orchestration/distributed-orchestrator.d.ts.map +1 -0
  148. package/dist/orchestration/distributed-orchestrator.js +712 -0
  149. package/dist/orchestration/distributed-orchestrator.js.map +1 -0
  150. package/dist/orchestration/distribution/task-distribution-engine.d.ts +53 -0
  151. package/dist/orchestration/distribution/task-distribution-engine.d.ts.map +1 -0
  152. package/dist/orchestration/distribution/task-distribution-engine.js +586 -0
  153. package/dist/orchestration/distribution/task-distribution-engine.js.map +1 -0
  154. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts +606 -0
  155. package/dist/orchestration/interfaces/distributed-orchestration.interface.d.ts.map +1 -0
  156. package/dist/orchestration/interfaces/distributed-orchestration.interface.js +65 -0
  157. package/dist/orchestration/interfaces/distributed-orchestration.interface.js.map +1 -0
  158. package/dist/orchestration/protocols/mcpx-protocol.d.ts +71 -0
  159. package/dist/orchestration/protocols/mcpx-protocol.d.ts.map +1 -0
  160. package/dist/orchestration/protocols/mcpx-protocol.js +668 -0
  161. package/dist/orchestration/protocols/mcpx-protocol.js.map +1 -0
  162. package/dist/orchestration/state/distributed-state-manager.d.ts +89 -0
  163. package/dist/orchestration/state/distributed-state-manager.d.ts.map +1 -0
  164. package/dist/orchestration/state/distributed-state-manager.js +716 -0
  165. package/dist/orchestration/state/distributed-state-manager.js.map +1 -0
  166. package/dist/queen/advanced-integration-test.d.ts +48 -0
  167. package/dist/queen/advanced-integration-test.d.ts.map +1 -0
  168. package/dist/queen/advanced-integration-test.js +474 -0
  169. package/dist/queen/advanced-integration-test.js.map +1 -0
  170. package/dist/queen/agent-factory.d.ts +43 -0
  171. package/dist/queen/agent-factory.d.ts.map +1 -0
  172. package/dist/queen/agent-factory.js +485 -0
  173. package/dist/queen/agent-factory.js.map +1 -0
  174. package/dist/queen/index.d.ts +58 -0
  175. package/dist/queen/index.d.ts.map +1 -0
  176. package/dist/queen/index.js +79 -0
  177. package/dist/queen/index.js.map +1 -0
  178. package/dist/queen/integration-example.d.ts +82 -0
  179. package/dist/queen/integration-example.d.ts.map +1 -0
  180. package/dist/queen/integration-example.js +220 -0
  181. package/dist/queen/integration-example.js.map +1 -0
  182. package/dist/queen/integration-test.d.ts +72 -0
  183. package/dist/queen/integration-test.d.ts.map +1 -0
  184. package/dist/queen/integration-test.js +564 -0
  185. package/dist/queen/integration-test.js.map +1 -0
  186. package/dist/queen/mock-mcp-client.d.ts +66 -0
  187. package/dist/queen/mock-mcp-client.d.ts.map +1 -0
  188. package/dist/queen/mock-mcp-client.js +297 -0
  189. package/dist/queen/mock-mcp-client.js.map +1 -0
  190. package/dist/queen/neural-learning.d.ts +28 -0
  191. package/dist/queen/neural-learning.d.ts.map +1 -0
  192. package/dist/queen/neural-learning.js +244 -0
  193. package/dist/queen/neural-learning.js.map +1 -0
  194. package/dist/queen/queen-memory.d.ts +31 -0
  195. package/dist/queen/queen-memory.d.ts.map +1 -0
  196. package/dist/queen/queen-memory.js +315 -0
  197. package/dist/queen/queen-memory.js.map +1 -0
  198. package/dist/queen/run-integration-tests.d.ts +9 -0
  199. package/dist/queen/run-integration-tests.d.ts.map +1 -0
  200. package/dist/queen/run-integration-tests.js +28 -0
  201. package/dist/queen/run-integration-tests.js.map +1 -0
  202. package/dist/queen/servicenow-queen.d.ts +56 -0
  203. package/dist/queen/servicenow-queen.d.ts.map +1 -0
  204. package/dist/queen/servicenow-queen.js +659 -0
  205. package/dist/queen/servicenow-queen.js.map +1 -0
  206. package/dist/queen/types.d.ts +58 -0
  207. package/dist/queen/types.d.ts.map +1 -0
  208. package/dist/queen/types.js +7 -0
  209. package/dist/queen/types.js.map +1 -0
  210. package/dist/snow-flow-system.d.ts +132 -0
  211. package/dist/snow-flow-system.d.ts.map +1 -0
  212. package/dist/snow-flow-system.js +396 -0
  213. package/dist/snow-flow-system.js.map +1 -0
  214. package/dist/types/todo.types.d.ts +61 -0
  215. package/dist/types/todo.types.d.ts.map +1 -0
  216. package/dist/types/todo.types.js +7 -0
  217. package/dist/types/todo.types.js.map +1 -0
  218. package/dist/utils/error-recovery.d.ts +101 -0
  219. package/dist/utils/error-recovery.d.ts.map +1 -0
  220. package/dist/utils/error-recovery.js +548 -0
  221. package/dist/utils/error-recovery.js.map +1 -0
  222. package/dist/version.d.ts +2 -1
  223. package/dist/version.d.ts.map +1 -1
  224. package/dist/version.js +16 -2
  225. package/dist/version.js.map +1 -1
  226. package/package.json +8 -3
  227. package/test-clean-install/.claude/config.json +0 -12
  228. package/test-clean-install/.env.example +0 -49
  229. package/test-clean-install/CLAUDE.md +0 -26
  230. package/test-clean-install/README.md +0 -23
  231. package/test-global-install/.claude/config.json +0 -12
  232. package/test-global-install/CLAUDE.md +0 -26
  233. package/test-global-install/README.md +0 -23
  234. package/test-global-install/test-global-install/.claude/config.json +0 -12
  235. package/test-global-install/test-global-install/CLAUDE.md +0 -26
  236. package/test-global-install/test-global-install/README.md +0 -23
  237. package/test-global-install/test-global-install/test-global-install/.claude/config.json +0 -12
  238. package/test-global-install/test-global-install/test-global-install/.env.example +0 -49
  239. package/test-global-install/test-global-install/test-global-install/CLAUDE.md +0 -26
  240. package/test-global-install/test-global-install/test-global-install/README.md +0 -23
  241. package/test-init-debug/.claude/config.json +0 -12
  242. package/test-init-debug/CLAUDE.md +0 -693
  243. package/test-init-debug/README.md +0 -392
  244. package/test-init-real/.claude/config.json +0 -12
  245. package/test-init-real/.claude/mcp-config.json +0 -128
  246. package/test-init-real/.claude/settings.json +0 -37
  247. package/test-init-real/CLAUDE.md +0 -693
  248. package/test-init-real/README.md +0 -392
  249. package/test-init-real/activate-mcp.sh +0 -15
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * ServiceNow Multi-Agent Framework
3
+ * Snow-Flow: ServiceNow Hive-Mind Intelligence Framework
4
4
  * Built with Claude Code integration
5
5
  */
6
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
18
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.ServiceNowMCPServer = exports.Logger = exports.ServiceNowClient = exports.ServiceNowOAuth = void 0;
21
+ exports.SystemHealth = exports.PerformanceTracker = exports.FALLBACK_STRATEGIES = exports.ErrorRecovery = exports.MemorySystem = exports.snowFlowConfig = exports.SnowFlowConfig = exports.snowFlowSystem = exports.SnowFlowSystem = exports.ServiceNowMCPServer = exports.Logger = exports.ServiceNowClient = exports.ServiceNowOAuth = void 0;
22
22
  // Export main types
23
23
  __exportStar(require("./types/index.js"), exports);
24
24
  // Export utilities
@@ -31,5 +31,21 @@ Object.defineProperty(exports, "Logger", { enumerable: true, get: function () {
31
31
  // Export MCP server
32
32
  var servicenow_mcp_server_js_1 = require("./mcp/servicenow-mcp-server.js");
33
33
  Object.defineProperty(exports, "ServiceNowMCPServer", { enumerable: true, get: function () { return servicenow_mcp_server_js_1.ServiceNowMCPServer; } });
34
- console.log('Snow-Flow: ServiceNow Multi-Agent Framework loaded');
34
+ // Snow-Flow System Integration (New)
35
+ var snow_flow_system_js_1 = require("./snow-flow-system.js");
36
+ Object.defineProperty(exports, "SnowFlowSystem", { enumerable: true, get: function () { return snow_flow_system_js_1.SnowFlowSystem; } });
37
+ Object.defineProperty(exports, "snowFlowSystem", { enumerable: true, get: function () { return snow_flow_system_js_1.snowFlowSystem; } });
38
+ var snow_flow_config_js_1 = require("./config/snow-flow-config.js");
39
+ Object.defineProperty(exports, "SnowFlowConfig", { enumerable: true, get: function () { return snow_flow_config_js_1.SnowFlowConfig; } });
40
+ Object.defineProperty(exports, "snowFlowConfig", { enumerable: true, get: function () { return snow_flow_config_js_1.snowFlowConfig; } });
41
+ var memory_system_js_1 = require("./memory/memory-system.js");
42
+ Object.defineProperty(exports, "MemorySystem", { enumerable: true, get: function () { return memory_system_js_1.MemorySystem; } });
43
+ var error_recovery_js_1 = require("./utils/error-recovery.js");
44
+ Object.defineProperty(exports, "ErrorRecovery", { enumerable: true, get: function () { return error_recovery_js_1.ErrorRecovery; } });
45
+ Object.defineProperty(exports, "FALLBACK_STRATEGIES", { enumerable: true, get: function () { return error_recovery_js_1.FALLBACK_STRATEGIES; } });
46
+ var performance_tracker_js_1 = require("./monitoring/performance-tracker.js");
47
+ Object.defineProperty(exports, "PerformanceTracker", { enumerable: true, get: function () { return performance_tracker_js_1.PerformanceTracker; } });
48
+ var system_health_js_1 = require("./health/system-health.js");
49
+ Object.defineProperty(exports, "SystemHealth", { enumerable: true, get: function () { return system_health_js_1.SystemHealth; } });
50
+ console.log('Snow-Flow: ServiceNow Hive-Mind Intelligence Framework loaded');
35
51
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,oBAAoB;AACpB,mDAAiC;AAEjC,mBAAmB;AACnB,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,qEAAgE;AAAvD,wHAAA,gBAAgB,OAAA;AACzB,+CAA2C;AAAlC,mGAAA,MAAM,OAAA;AAEf,oBAAoB;AACpB,2EAAqE;AAA5D,+HAAA,mBAAmB,OAAA;AAE5B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,oBAAoB;AACpB,mDAAiC;AAEjC,mBAAmB;AACnB,uDAAwD;AAA/C,gHAAA,eAAe,OAAA;AACxB,qEAAgE;AAAvD,wHAAA,gBAAgB,OAAA;AACzB,+CAA2C;AAAlC,mGAAA,MAAM,OAAA;AAEf,oBAAoB;AACpB,2EAAqE;AAA5D,+HAAA,mBAAmB,OAAA;AAE5B,qCAAqC;AACrC,6DAAuE;AAA9D,qHAAA,cAAc,OAAA;AAAE,qHAAA,cAAc,OAAA;AACvC,oEAA8E;AAArE,qHAAA,cAAc,OAAA;AAAE,qHAAA,cAAc,OAAA;AACvC,8DAAyD;AAAhD,gHAAA,YAAY,OAAA;AACrB,+DAA+E;AAAtE,kHAAA,aAAa,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAC3C,8EAAyE;AAAhE,4HAAA,kBAAkB,OAAA;AAC3B,8DAAyD;AAAhD,gHAAA,YAAY,OAAA;AAqCrB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * HTTP Transport Wrapper for MCP Servers
3
+ * Converts stdio-based MCP servers to HTTP endpoints for containerization
4
+ */
5
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
+ export interface MCPServerConfig {
7
+ name: string;
8
+ port: number;
9
+ version: string;
10
+ healthCheckPath?: string;
11
+ metricsPath?: string;
12
+ }
13
+ export declare class HttpTransportWrapper {
14
+ private app;
15
+ private mcpServer;
16
+ private logger;
17
+ private config;
18
+ private serviceDiscovery;
19
+ private isReady;
20
+ constructor(mcpServer: Server, config: MCPServerConfig);
21
+ private setupMiddleware;
22
+ private setupRoutes;
23
+ private handleMCPRequest;
24
+ private handleToolCall;
25
+ private handleError;
26
+ private generateMetrics;
27
+ start(): Promise<void>;
28
+ }
29
+ //# sourceMappingURL=http-transport-wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport-wrapper.d.ts","sourceRoot":"","sources":["../../src/mcp/http-transport-wrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,GAAG,CAAU;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,OAAO,CAAkB;gBAErB,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IAWtD,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,WAAW;YA8GL,gBAAgB;YA0EhB,cAAc;IAkB5B,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,eAAe;IAoBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA8DpC"}
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ /**
3
+ * HTTP Transport Wrapper for MCP Servers
4
+ * Converts stdio-based MCP servers to HTTP endpoints for containerization
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.HttpTransportWrapper = void 0;
11
+ const express_1 = __importDefault(require("express"));
12
+ const logger_js_1 = require("../utils/logger.js");
13
+ const service_discovery_client_js_1 = require("./service-discovery-client.js");
14
+ class HttpTransportWrapper {
15
+ constructor(mcpServer, config) {
16
+ this.isReady = false;
17
+ this.mcpServer = mcpServer;
18
+ this.config = config;
19
+ this.logger = new logger_js_1.Logger(`HttpTransport:${config.name}`);
20
+ this.app = (0, express_1.default)();
21
+ this.serviceDiscovery = new service_discovery_client_js_1.ServiceDiscoveryClient();
22
+ this.setupMiddleware();
23
+ this.setupRoutes();
24
+ }
25
+ setupMiddleware() {
26
+ // Security headers
27
+ this.app.use((req, res, next) => {
28
+ res.setHeader('X-Content-Type-Options', 'nosniff');
29
+ res.setHeader('X-Frame-Options', 'DENY');
30
+ res.setHeader('X-XSS-Protection', '1; mode=block');
31
+ res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
32
+ next();
33
+ });
34
+ // Body parser for JSON requests
35
+ this.app.use(express_1.default.json({ limit: '10mb' }));
36
+ this.app.use(express_1.default.urlencoded({ extended: true }));
37
+ // Request logging middleware
38
+ this.app.use((req, res, next) => {
39
+ this.logger.debug(`${req.method} ${req.path}`, {
40
+ userAgent: req.get('User-Agent'),
41
+ ip: req.ip,
42
+ contentLength: req.get('Content-Length')
43
+ });
44
+ next();
45
+ });
46
+ }
47
+ setupRoutes() {
48
+ // Health check endpoint
49
+ this.app.get(this.config.healthCheckPath || '/health', (req, res) => {
50
+ const health = {
51
+ status: this.isReady ? 'healthy' : 'starting',
52
+ service: this.config.name,
53
+ version: this.config.version,
54
+ timestamp: new Date().toISOString(),
55
+ uptime: process.uptime(),
56
+ memory: process.memoryUsage(),
57
+ port: this.config.port
58
+ };
59
+ const statusCode = this.isReady ? 200 : 503;
60
+ res.status(statusCode).json(health);
61
+ });
62
+ // Readiness probe
63
+ this.app.get('/ready', (req, res) => {
64
+ if (this.isReady) {
65
+ res.status(200).json({ ready: true, service: this.config.name });
66
+ }
67
+ else {
68
+ res.status(503).json({ ready: false, service: this.config.name });
69
+ }
70
+ });
71
+ // Liveness probe
72
+ this.app.get('/live', (req, res) => {
73
+ res.status(200).json({ alive: true, service: this.config.name });
74
+ });
75
+ // Metrics endpoint (basic)
76
+ this.app.get(this.config.metricsPath || '/metrics', (req, res) => {
77
+ const metrics = this.generateMetrics();
78
+ res.set('Content-Type', 'text/plain');
79
+ res.send(metrics);
80
+ });
81
+ // MCP API endpoints
82
+ this.app.post('/mcp/list-tools', async (req, res) => {
83
+ try {
84
+ const result = await this.handleMCPRequest('listTools', req.body);
85
+ res.json(result);
86
+ }
87
+ catch (error) {
88
+ this.handleError(res, error);
89
+ }
90
+ });
91
+ this.app.post('/mcp/call-tool', async (req, res) => {
92
+ try {
93
+ const result = await this.handleMCPRequest('callTool', req.body);
94
+ res.json(result);
95
+ }
96
+ catch (error) {
97
+ this.handleError(res, error);
98
+ }
99
+ });
100
+ this.app.post('/mcp/list-resources', async (req, res) => {
101
+ try {
102
+ const result = await this.handleMCPRequest('listResources', req.body);
103
+ res.json(result);
104
+ }
105
+ catch (error) {
106
+ this.handleError(res, error);
107
+ }
108
+ });
109
+ this.app.post('/mcp/read-resource', async (req, res) => {
110
+ try {
111
+ const result = await this.handleMCPRequest('readResource', req.body);
112
+ res.json(result);
113
+ }
114
+ catch (error) {
115
+ this.handleError(res, error);
116
+ }
117
+ });
118
+ // Service info endpoint
119
+ this.app.get('/info', (req, res) => {
120
+ res.json({
121
+ name: this.config.name,
122
+ version: this.config.version,
123
+ port: this.config.port,
124
+ endpoints: {
125
+ health: this.config.healthCheckPath || '/health',
126
+ metrics: this.config.metricsPath || '/metrics',
127
+ mcp: [
128
+ '/mcp/list-tools',
129
+ '/mcp/call-tool',
130
+ '/mcp/list-resources',
131
+ '/mcp/read-resource'
132
+ ]
133
+ }
134
+ });
135
+ });
136
+ // 404 handler
137
+ this.app.use('*', (req, res) => {
138
+ res.status(404).json({
139
+ error: 'Not Found',
140
+ path: req.originalUrl,
141
+ service: this.config.name
142
+ });
143
+ });
144
+ // Global error handler
145
+ this.app.use((error, req, res, next) => {
146
+ this.logger.error('Unhandled error:', error);
147
+ this.handleError(res, error);
148
+ });
149
+ }
150
+ async handleMCPRequest(method, params) {
151
+ // Convert HTTP request to MCP protocol format
152
+ const mcpRequest = {
153
+ jsonrpc: '2.0',
154
+ id: Date.now(),
155
+ method,
156
+ params: params || {}
157
+ };
158
+ try {
159
+ // Process request through the MCP server
160
+ let result;
161
+ switch (method) {
162
+ case 'listTools':
163
+ // Handle list tools request by calling the MCP server's tools handler
164
+ const toolsResponse = await this.mcpServer.getCapabilities();
165
+ result = {
166
+ tools: toolsResponse.capabilities?.tools || []
167
+ };
168
+ break;
169
+ case 'callTool':
170
+ // Handle tool call by routing to the MCP server's tool handler
171
+ if (!params.name) {
172
+ throw new Error('Tool name is required for callTool');
173
+ }
174
+ // Create a mock request that matches MCP CallToolRequestSchema
175
+ const toolRequest = {
176
+ params: {
177
+ name: params.name,
178
+ arguments: params.arguments || {}
179
+ }
180
+ };
181
+ // Find the appropriate request handler for CallToolRequestSchema
182
+ // Note: This requires internal access to MCP server handlers
183
+ // In a production environment, you'd need a more robust integration
184
+ result = await this.handleToolCall(toolRequest);
185
+ break;
186
+ case 'listResources':
187
+ // Handle list resources - return empty list if not supported
188
+ result = { resources: [] };
189
+ break;
190
+ case 'readResource':
191
+ // Handle read resource - throw error if not supported
192
+ throw new Error('Resource reading not implemented for this server');
193
+ default:
194
+ throw new Error(`Unsupported MCP method: ${method}`);
195
+ }
196
+ return {
197
+ jsonrpc: '2.0',
198
+ id: mcpRequest.id,
199
+ result
200
+ };
201
+ }
202
+ catch (error) {
203
+ this.logger.error(`MCP request error for ${method}:`, error);
204
+ return {
205
+ jsonrpc: '2.0',
206
+ id: mcpRequest.id,
207
+ error: {
208
+ code: -32603,
209
+ message: error instanceof Error ? error.message : 'Internal error',
210
+ data: { method, originalParams: params }
211
+ }
212
+ };
213
+ }
214
+ }
215
+ async handleToolCall(request) {
216
+ // This is a workaround since we can't directly access MCP server's internal handlers
217
+ // In a real implementation, you'd need to either:
218
+ // 1. Extend the MCP SDK to expose request handlers
219
+ // 2. Use a proper transport layer that already exists
220
+ // 3. Create a bridge that uses the existing stdio transport
221
+ const { name, arguments: args } = request.params;
222
+ // For now, we'll at least validate that the tool exists
223
+ const capabilities = await this.mcpServer.getCapabilities();
224
+ const tools = capabilities.capabilities?.tools || [];
225
+ // This is still a limitation - we can't actually execute the tool without
226
+ // access to the MCP server's internal request handlers
227
+ throw new Error(`Tool execution not yet implemented in HTTP transport. Tool '${name}' exists but cannot be executed via HTTP. Use stdio transport instead.`);
228
+ }
229
+ handleError(res, error) {
230
+ const statusCode = error.statusCode || 500;
231
+ const errorResponse = {
232
+ error: {
233
+ code: error.code || 'INTERNAL_ERROR',
234
+ message: error.message || 'Internal server error',
235
+ service: this.config.name
236
+ }
237
+ };
238
+ this.logger.error('Request error:', error);
239
+ res.status(statusCode).json(errorResponse);
240
+ }
241
+ generateMetrics() {
242
+ const memUsage = process.memoryUsage();
243
+ const uptime = process.uptime();
244
+ return `# HELP mcp_server_uptime_seconds Total uptime of the MCP server
245
+ # TYPE mcp_server_uptime_seconds counter
246
+ mcp_server_uptime_seconds{service="${this.config.name}"} ${uptime}
247
+
248
+ # HELP mcp_server_memory_usage_bytes Memory usage in bytes
249
+ # TYPE mcp_server_memory_usage_bytes gauge
250
+ mcp_server_memory_usage_bytes{service="${this.config.name}",type="rss"} ${memUsage.rss}
251
+ mcp_server_memory_usage_bytes{service="${this.config.name}",type="heapTotal"} ${memUsage.heapTotal}
252
+ mcp_server_memory_usage_bytes{service="${this.config.name}",type="heapUsed"} ${memUsage.heapUsed}
253
+
254
+ # HELP mcp_server_ready Server readiness status
255
+ # TYPE mcp_server_ready gauge
256
+ mcp_server_ready{service="${this.config.name}"} ${this.isReady ? 1 : 0}
257
+ `;
258
+ }
259
+ async start() {
260
+ return new Promise((resolve, reject) => {
261
+ const server = this.app.listen(this.config.port, async () => {
262
+ this.logger.info(`MCP HTTP server started on port ${this.config.port}`);
263
+ try {
264
+ // Register with service discovery
265
+ await this.serviceDiscovery.register({
266
+ id: `${this.config.name}-${process.env.HOSTNAME || 'localhost'}`,
267
+ name: this.config.name,
268
+ address: process.env.SERVICE_IP || 'localhost',
269
+ port: this.config.port,
270
+ health: {
271
+ http: `http://${process.env.SERVICE_IP || 'localhost'}:${this.config.port}/health`,
272
+ interval: '10s',
273
+ timeout: '3s',
274
+ deregisterAfter: '30s'
275
+ },
276
+ tags: [
277
+ 'mcp-server',
278
+ `version:${this.config.version}`,
279
+ `environment:${process.env.NODE_ENV || 'development'}`
280
+ ]
281
+ });
282
+ this.isReady = true;
283
+ this.logger.info(`Service registered with discovery: ${this.config.name}`);
284
+ resolve();
285
+ }
286
+ catch (error) {
287
+ this.logger.warn('Service discovery registration failed:', error);
288
+ // Continue without service discovery
289
+ this.isReady = true;
290
+ resolve();
291
+ }
292
+ });
293
+ server.on('error', (error) => {
294
+ this.logger.error(`Server startup error:`, error);
295
+ reject(error);
296
+ });
297
+ // Graceful shutdown handling
298
+ const shutdown = async () => {
299
+ this.logger.info('Shutting down HTTP server...');
300
+ try {
301
+ await this.serviceDiscovery.deregister(`${this.config.name}-${process.env.HOSTNAME || 'localhost'}`);
302
+ this.logger.info('Service deregistered from discovery');
303
+ }
304
+ catch (error) {
305
+ this.logger.warn('Service deregistration failed:', error);
306
+ }
307
+ server.close(() => {
308
+ this.logger.info('HTTP server closed');
309
+ process.exit(0);
310
+ });
311
+ };
312
+ process.on('SIGTERM', shutdown);
313
+ process.on('SIGINT', shutdown);
314
+ });
315
+ }
316
+ }
317
+ exports.HttpTransportWrapper = HttpTransportWrapper;
318
+ //# sourceMappingURL=http-transport-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport-wrapper.js","sourceRoot":"","sources":["../../src/mcp/http-transport-wrapper.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;AAEH,sDAA8D;AAE9D,kDAA4C;AAC5C,+EAAuE;AAUvE,MAAa,oBAAoB;IAQ/B,YAAY,SAAiB,EAAE,MAAuB;QAF9C,YAAO,GAAY,KAAK,CAAC;QAG/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAM,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,IAAI,oDAAsB,EAAE,CAAC;QAErD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,eAAe;QACrB,mBAAmB;QACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC9B,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YACnD,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACzC,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;YACnD,GAAG,CAAC,SAAS,CAAC,2BAA2B,EAAE,qCAAqC,CAAC,CAAC;YAClF,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QAEH,gCAAgC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAErD,6BAA6B;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;gBAC7C,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;gBAChC,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,aAAa,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;aACzC,CAAC,CAAC;YACH,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,wBAAwB;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,SAAS,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YACrF,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;gBAC7C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACzB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;gBACxB,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;gBAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aACvB,CAAC;YAEF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YACrD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YACpD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,UAAU,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YAClF,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YACtC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YACrE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YACpE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YACzE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YACxE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YACpD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,SAAS,EAAE;oBACT,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,SAAS;oBAChD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,UAAU;oBAC9C,GAAG,EAAE;wBACH,iBAAiB;wBACjB,gBAAgB;wBAChB,qBAAqB;wBACrB,oBAAoB;qBACrB;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,cAAc;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,GAAG,CAAC,WAAW;gBACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,GAAY,EAAE,GAAa,EAAE,IAAc,EAAE,EAAE;YACvE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,MAAW;QACxD,8CAA8C;QAC9C,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;YACd,MAAM;YACN,MAAM,EAAE,MAAM,IAAI,EAAE;SACrB,CAAC;QAEF,IAAI,CAAC;YACH,yCAAyC;YACzC,IAAI,MAAW,CAAC;YAEhB,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,WAAW;oBACd,sEAAsE;oBACtE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;oBAC7D,MAAM,GAAG;wBACP,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;qBAC/C,CAAC;oBACF,MAAM;gBAER,KAAK,UAAU;oBACb,+DAA+D;oBAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACjB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBACxD,CAAC;oBAED,+DAA+D;oBAC/D,MAAM,WAAW,GAAG;wBAClB,MAAM,EAAE;4BACN,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;yBAClC;qBACF,CAAC;oBAEF,iEAAiE;oBACjE,6DAA6D;oBAC7D,oEAAoE;oBACpE,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;oBAChD,MAAM;gBAER,KAAK,eAAe;oBAClB,6DAA6D;oBAC7D,MAAM,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;oBAC3B,MAAM;gBAER,KAAK,cAAc;oBACjB,sDAAsD;oBACtD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAEtE;oBACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;oBAClE,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE;iBACzC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAY;QACvC,qFAAqF;QACrF,kDAAkD;QAClD,mDAAmD;QACnD,sDAAsD;QACtD,4DAA4D;QAE5D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,wDAAwD;QACxD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;QAErD,0EAA0E;QAC1E,uDAAuD;QACvD,MAAM,IAAI,KAAK,CAAC,+DAA+D,IAAI,wEAAwE,CAAC,CAAC;IAC/J,CAAC;IAEO,WAAW,CAAC,GAAa,EAAE,KAAU;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;QAC3C,MAAM,aAAa,GAAG;YACpB,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,gBAAgB;gBACpC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,uBAAuB;gBACjD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;aAC1B;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC3C,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAEO,eAAe;QACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAEhC,OAAO;;qCAE0B,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,MAAM;;;;yCAIxB,IAAI,CAAC,MAAM,CAAC,IAAI,iBAAiB,QAAQ,CAAC,GAAG;yCAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,uBAAuB,QAAQ,CAAC,SAAS;yCACzD,IAAI,CAAC,MAAM,CAAC,IAAI,sBAAsB,QAAQ,CAAC,QAAQ;;;;4BAIpE,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC;IACA,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAExE,IAAI,CAAC;oBACH,kCAAkC;oBAClC,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;wBACnC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW,EAAE;wBAChE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;wBACtB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;wBAC9C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;wBACtB,MAAM,EAAE;4BACN,IAAI,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS;4BAClF,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,IAAI;4BACb,eAAe,EAAE,KAAK;yBACvB;wBACD,IAAI,EAAE;4BACJ,YAAY;4BACZ,WAAW,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;4BAChC,eAAe,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,EAAE;yBACvD;qBACF,CAAC,CAAC;oBAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC3E,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;oBAClE,qCAAqC;oBACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;gBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;gBAEjD,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;oBACrG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;oBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtVD,oDAsVC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Service Discovery Client for Consul Integration
3
+ */
4
+ export interface ServiceRegistration {
5
+ id: string;
6
+ name: string;
7
+ address: string;
8
+ port: number;
9
+ health?: {
10
+ http?: string;
11
+ tcp?: string;
12
+ interval?: string;
13
+ timeout?: string;
14
+ deregisterAfter?: string;
15
+ };
16
+ tags?: string[];
17
+ meta?: Record<string, string>;
18
+ }
19
+ export interface ServiceDiscoveryConfig {
20
+ consulUrl: string;
21
+ timeout: number;
22
+ retryAttempts: number;
23
+ }
24
+ export declare class ServiceDiscoveryClient {
25
+ private client;
26
+ private logger;
27
+ private config;
28
+ constructor(config?: Partial<ServiceDiscoveryConfig>);
29
+ /**
30
+ * Register a service with Consul
31
+ */
32
+ register(service: ServiceRegistration): Promise<void>;
33
+ /**
34
+ * Deregister a service from Consul
35
+ */
36
+ deregister(serviceId: string): Promise<void>;
37
+ /**
38
+ * Discover services by name
39
+ */
40
+ discover(serviceName: string, healthy?: boolean): Promise<ServiceInstance[]>;
41
+ /**
42
+ * List all services
43
+ */
44
+ listServices(): Promise<string[]>;
45
+ /**
46
+ * Get service health status
47
+ */
48
+ getServiceHealth(serviceName: string): Promise<ServiceHealth[]>;
49
+ /**
50
+ * Check if Consul is available
51
+ */
52
+ isAvailable(): Promise<boolean>;
53
+ /**
54
+ * Watch for service changes (simplified polling approach)
55
+ */
56
+ watchService(serviceName: string, callback: (services: ServiceInstance[]) => void, interval?: number): () => void;
57
+ }
58
+ export interface ServiceInstance {
59
+ id: string;
60
+ name: string;
61
+ address: string;
62
+ port: number;
63
+ tags: string[];
64
+ meta: Record<string, string>;
65
+ health?: Array<{
66
+ status: string;
67
+ output: string;
68
+ name: string;
69
+ }>;
70
+ }
71
+ export interface ServiceHealth {
72
+ serviceId: string;
73
+ serviceName: string;
74
+ address: string;
75
+ port: number;
76
+ checks: Array<{
77
+ checkId: string;
78
+ name: string;
79
+ status: string;
80
+ output: string;
81
+ }>;
82
+ }
83
+ //# sourceMappingURL=service-discovery-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-discovery-client.d.ts","sourceRoot":"","sources":["../../src/mcp/service-discovery-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;IA4CpD;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiD3D;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlD;;OAEG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA2B/E;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAUvC;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAsBrE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,IAAI,EAAE,QAAQ,SAAQ,GAAG,MAAM,IAAI;CAwBjH;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ"}