@loop_ouroboros/mcp-hub-lite 1.0.2 → 1.1.1

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 (322) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/client/assets/{HomeView-7rMg9C6t.js → HomeView-BBwvy1oj.js} +1 -1
  3. package/dist/client/assets/ResourceDetailView-CZ2aB73w.js +1 -0
  4. package/dist/client/assets/ResourceDetailView-DUJZbegl.css +1 -0
  5. package/dist/client/assets/ResourcesView-CN1NlhWs.js +1 -0
  6. package/dist/client/assets/ResourcesView-Cc8RHtia.css +1 -0
  7. package/dist/client/assets/ServerDashboard-BfLeFDGw.css +1 -0
  8. package/dist/client/assets/ServerDashboard-k652Vw4Z.js +1 -0
  9. package/dist/client/assets/ServerDetail-BLQ-a4cO.js +2 -0
  10. package/dist/client/assets/ServerDetail-CtnNKJGx.css +1 -0
  11. package/dist/client/assets/{ServerListView-Bws09jNR.css → ServerListView-B-bPljsO.css} +1 -1
  12. package/dist/client/assets/ServerListView-BHrsFD5i.js +36 -0
  13. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHhwEuGe.js +1 -0
  14. package/dist/client/assets/SettingsView-CUOFNXrz.js +1 -0
  15. package/dist/client/assets/SettingsView-GkBOKL0V.css +1 -0
  16. package/dist/client/assets/ToolCallDialog-BfPjLxfV.js +1 -0
  17. package/dist/client/assets/ToolsView-BxgXvPC3.css +1 -0
  18. package/dist/client/assets/ToolsView-CyuhYAE2.js +1 -0
  19. package/dist/client/assets/{_baseClone-5q1b0P3O.js → _baseClone-DO5qfalW.js} +1 -1
  20. package/dist/client/assets/el-form-item-B4LbJ6OO.css +1 -0
  21. package/dist/client/assets/el-form-item-CcGsD2K_.js +12 -0
  22. package/dist/client/assets/el-input-BH4BZKnG.css +1 -0
  23. package/dist/client/assets/el-input-tYgeiaCT.js +1 -0
  24. package/dist/client/assets/{el-loading-H85n3BUC.js → el-loading-Dwl9E_Vr.js} +1 -1
  25. package/dist/client/assets/{el-select-C0U_l4IZ.css → el-overlay-CBvdpA69.css} +1 -1
  26. package/dist/client/assets/el-overlay-kqX_BABo.js +1 -0
  27. package/dist/client/assets/{ResourceDetailView-BdOaL_-o.css → el-radio-group-B0bauIRR.css} +1 -1
  28. package/dist/client/assets/el-radio-group-D8aWBVOT.js +1 -0
  29. package/dist/client/assets/el-skeleton-item-BLY1jEuR.css +1 -0
  30. package/dist/client/assets/el-skeleton-item-BRwIFspE.js +1 -0
  31. package/dist/client/assets/el-switch-BBrS-_6y.css +1 -0
  32. package/dist/client/assets/el-switch-BF8c-xeU.js +1 -0
  33. package/dist/client/assets/el-tab-pane-C4Ep94cd.js +1 -0
  34. package/dist/client/assets/el-table-column-BdvRS9Y2.css +1 -0
  35. package/dist/client/assets/el-table-column-Cog6uCh-.js +1 -0
  36. package/dist/client/assets/index-ByNBhPAR.js +1 -0
  37. package/dist/client/assets/index-CTB6oe-9.js +2 -0
  38. package/dist/client/assets/{index-BsDWtoIl.css → index-DpH6ZSbs.css} +1 -1
  39. package/dist/client/assets/omit-CUnDT6sS.js +1 -0
  40. package/dist/client/assets/{raf-DY5mgbuB.js → raf-CmzeRPMd.js} +1 -1
  41. package/dist/client/assets/{vue-vendor-6ny5zj9i.js → vue-vendor-CbgVSHIh.js} +3 -3
  42. package/dist/client/index.html +3 -3
  43. package/dist/server/shared/models/resource.model.d.ts +2 -1
  44. package/dist/server/shared/models/resource.model.d.ts.map +1 -1
  45. package/dist/server/shared/models/server.model.d.ts +362 -5
  46. package/dist/server/shared/models/server.model.d.ts.map +1 -1
  47. package/dist/server/shared/models/server.model.js +220 -1
  48. package/dist/server/shared/models/session.model.d.ts +1 -57
  49. package/dist/server/shared/models/session.model.d.ts.map +1 -1
  50. package/dist/server/shared/models/session.model.js +1 -55
  51. package/dist/server/shared/models/tool.model.d.ts +4 -2
  52. package/dist/server/shared/models/tool.model.d.ts.map +1 -1
  53. package/dist/server/shared/types/session-context.types.d.ts +0 -2
  54. package/dist/server/shared/types/session-context.types.d.ts.map +1 -1
  55. package/dist/server/shared/types/websocket.types.d.ts +17 -10
  56. package/dist/server/shared/types/websocket.types.d.ts.map +1 -1
  57. package/dist/server/src/api/mcp/debug-response-wrapper.js +2 -2
  58. package/dist/server/src/api/mcp/gateway.d.ts +1 -3
  59. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
  60. package/dist/server/src/api/mcp/gateway.js +32 -49
  61. package/dist/server/src/api/web/hub-tools.d.ts +2 -2
  62. package/dist/server/src/api/web/hub-tools.d.ts.map +1 -1
  63. package/dist/server/src/api/web/hub-tools.js +3 -54
  64. package/dist/server/src/api/web/mcp-status.d.ts +1 -1
  65. package/dist/server/src/api/web/mcp-status.d.ts.map +1 -1
  66. package/dist/server/src/api/web/mcp-status.js +71 -30
  67. package/dist/server/src/api/web/resources.d.ts.map +1 -1
  68. package/dist/server/src/api/web/resources.js +28 -22
  69. package/dist/server/src/api/web/search.d.ts +2 -16
  70. package/dist/server/src/api/web/search.d.ts.map +1 -1
  71. package/dist/server/src/api/web/search.js +24 -45
  72. package/dist/server/src/api/web/servers.d.ts +3 -3
  73. package/dist/server/src/api/web/servers.d.ts.map +1 -1
  74. package/dist/server/src/api/web/servers.js +70 -25
  75. package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -1
  76. package/dist/server/src/api/ws/ws-handler.js +4 -2
  77. package/dist/server/src/app.d.ts.map +1 -1
  78. package/dist/server/src/app.js +0 -2
  79. package/dist/server/src/cli/commands/list.js +2 -2
  80. package/dist/server/src/cli/commands/server.d.ts +57 -0
  81. package/dist/server/src/cli/commands/server.d.ts.map +1 -0
  82. package/dist/server/src/cli/commands/server.js +169 -0
  83. package/dist/server/src/cli/commands/status.d.ts.map +1 -1
  84. package/dist/server/src/cli/commands/status.js +41 -30
  85. package/dist/server/src/cli/index.d.ts.map +1 -1
  86. package/dist/server/src/cli/index.js +2 -1
  87. package/dist/server/src/cli/server.d.ts +11 -2
  88. package/dist/server/src/cli/server.d.ts.map +1 -1
  89. package/dist/server/src/config/config-change-logger.d.ts +22 -0
  90. package/dist/server/src/config/config-change-logger.d.ts.map +1 -1
  91. package/dist/server/src/config/config-change-logger.js +135 -11
  92. package/dist/server/src/config/config-loader.d.ts +6 -5
  93. package/dist/server/src/config/config-loader.d.ts.map +1 -1
  94. package/dist/server/src/config/config-loader.js +54 -16
  95. package/dist/server/src/config/config-manager.d.ts +51 -43
  96. package/dist/server/src/config/config-manager.d.ts.map +1 -1
  97. package/dist/server/src/config/config-manager.js +84 -66
  98. package/dist/server/src/config/config-migrator.d.ts +82 -0
  99. package/dist/server/src/config/config-migrator.d.ts.map +1 -0
  100. package/dist/server/src/config/config-migrator.js +348 -0
  101. package/dist/server/src/config/config-saver.d.ts +2 -0
  102. package/dist/server/src/config/config-saver.d.ts.map +1 -1
  103. package/dist/server/src/config/config-saver.js +8 -2
  104. package/dist/server/src/config/config.schema.d.ts +10 -104
  105. package/dist/server/src/config/config.schema.d.ts.map +1 -1
  106. package/dist/server/src/config/config.schema.js +15 -99
  107. package/dist/server/src/config/path-validator.d.ts +27 -0
  108. package/dist/server/src/config/path-validator.d.ts.map +1 -0
  109. package/dist/server/src/config/path-validator.js +53 -0
  110. package/dist/server/src/config/server-config-manager.d.ts +37 -31
  111. package/dist/server/src/config/server-config-manager.d.ts.map +1 -1
  112. package/dist/server/src/config/server-config-manager.js +222 -66
  113. package/dist/server/src/config/type-converter.d.ts.map +1 -1
  114. package/dist/server/src/config/type-converter.js +3 -2
  115. package/dist/server/src/models/event.model.d.ts +17 -10
  116. package/dist/server/src/models/event.model.d.ts.map +1 -1
  117. package/dist/server/src/models/server.model.d.ts +17 -3
  118. package/dist/server/src/models/server.model.d.ts.map +1 -1
  119. package/dist/server/src/models/server.model.js +2 -1
  120. package/dist/server/src/models/system-tools.constants.d.ts +10 -27
  121. package/dist/server/src/models/system-tools.constants.d.ts.map +1 -1
  122. package/dist/server/src/models/system-tools.constants.js +4 -8
  123. package/dist/server/src/pid/manager.d.ts.map +1 -1
  124. package/dist/server/src/pid/manager.js +2 -1
  125. package/dist/server/src/server/dev-server.js +34 -20
  126. package/dist/server/src/server/runner.d.ts.map +1 -1
  127. package/dist/server/src/server/runner.js +41 -26
  128. package/dist/server/src/services/connection/connection-manager.d.ts +85 -103
  129. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
  130. package/dist/server/src/services/connection/connection-manager.js +286 -241
  131. package/dist/server/src/services/connection/tool-cache.d.ts +27 -25
  132. package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -1
  133. package/dist/server/src/services/connection/tool-cache.js +50 -55
  134. package/dist/server/src/services/gateway/gateway.service.d.ts +2 -0
  135. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
  136. package/dist/server/src/services/gateway/gateway.service.js +53 -23
  137. package/dist/server/src/services/gateway/global-transport.d.ts +19 -0
  138. package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -0
  139. package/dist/server/src/services/gateway/global-transport.js +66 -0
  140. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -1
  141. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +67 -65
  142. package/dist/server/src/services/gateway/request-handlers/index.d.ts +1 -1
  143. package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -1
  144. package/dist/server/src/services/gateway/request-handlers/index.js +1 -1
  145. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +1 -4
  146. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
  147. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +20 -80
  148. package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts +35 -0
  149. package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts.map +1 -0
  150. package/dist/server/src/services/gateway/request-handlers/initialize.constants.js +44 -0
  151. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
  152. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +5 -4
  153. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -1
  154. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +32 -77
  155. package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -1
  156. package/dist/server/src/services/gateway/tool-list-generator.js +37 -16
  157. package/dist/server/src/services/gateway/types.d.ts +2 -1
  158. package/dist/server/src/services/gateway/types.d.ts.map +1 -1
  159. package/dist/server/src/services/hub-manager.service.d.ts +32 -238
  160. package/dist/server/src/services/hub-manager.service.d.ts.map +1 -1
  161. package/dist/server/src/services/hub-manager.service.js +89 -267
  162. package/dist/server/src/services/hub-tools/index.d.ts +1 -3
  163. package/dist/server/src/services/hub-tools/index.d.ts.map +1 -1
  164. package/dist/server/src/services/hub-tools/index.js +1 -2
  165. package/dist/server/src/services/hub-tools/instance-matcher.d.ts +62 -0
  166. package/dist/server/src/services/hub-tools/instance-matcher.d.ts.map +1 -0
  167. package/dist/server/src/services/hub-tools/instance-matcher.js +132 -0
  168. package/dist/server/src/services/hub-tools/instance-selector.d.ts +29 -0
  169. package/dist/server/src/services/hub-tools/instance-selector.d.ts.map +1 -0
  170. package/dist/server/src/services/hub-tools/instance-selector.js +103 -0
  171. package/dist/server/src/services/hub-tools/resource-generator.d.ts +24 -1
  172. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
  173. package/dist/server/src/services/hub-tools/resource-generator.js +259 -39
  174. package/dist/server/src/services/hub-tools/server-selector.d.ts +26 -13
  175. package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -1
  176. package/dist/server/src/services/hub-tools/server-selector.js +44 -37
  177. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +1 -4
  178. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -1
  179. package/dist/server/src/services/hub-tools/system-tool-definitions.js +17 -80
  180. package/dist/server/src/services/hub-tools/tool-search.d.ts +7 -7
  181. package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -1
  182. package/dist/server/src/services/hub-tools/tool-search.js +10 -4
  183. package/dist/server/src/services/hub-tools/types.d.ts +2 -2
  184. package/dist/server/src/services/hub-tools/types.d.ts.map +1 -1
  185. package/dist/server/src/services/hub-tools.service.d.ts +43 -72
  186. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
  187. package/dist/server/src/services/hub-tools.service.js +185 -110
  188. package/dist/server/src/services/system-tool-handler.d.ts.map +1 -1
  189. package/dist/server/src/services/system-tool-handler.js +7 -17
  190. package/dist/server/src/utils/composite-key.d.ts +29 -0
  191. package/dist/server/src/utils/composite-key.d.ts.map +1 -0
  192. package/dist/server/src/utils/composite-key.js +39 -0
  193. package/dist/server/src/utils/error-handler.d.ts.map +1 -1
  194. package/dist/server/src/utils/error-handler.js +3 -2
  195. package/dist/server/src/utils/index.d.ts +2 -0
  196. package/dist/server/src/utils/index.d.ts.map +1 -1
  197. package/dist/server/src/utils/index.js +2 -0
  198. package/dist/server/src/utils/instance-id.d.ts +22 -0
  199. package/dist/server/src/utils/instance-id.d.ts.map +1 -0
  200. package/dist/server/src/utils/instance-id.js +59 -0
  201. package/dist/server/src/utils/json-utils.d.ts +4 -4
  202. package/dist/server/src/utils/json-utils.d.ts.map +1 -1
  203. package/dist/server/src/utils/json-utils.js +4 -4
  204. package/dist/server/src/utils/logger/dev-logger.d.ts +2 -1
  205. package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -1
  206. package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
  207. package/dist/server/src/utils/logger/log-formatter.js +82 -5
  208. package/dist/server/src/utils/logger/log-modules.d.ts +15 -9
  209. package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -1
  210. package/dist/server/src/utils/logger/log-modules.js +8 -6
  211. package/dist/server/src/utils/parameter-validator.d.ts +10 -0
  212. package/dist/server/src/utils/parameter-validator.d.ts.map +1 -0
  213. package/dist/server/src/utils/parameter-validator.js +53 -0
  214. package/dist/server/src/utils/process-tree.d.ts +49 -0
  215. package/dist/server/src/utils/process-tree.d.ts.map +1 -0
  216. package/dist/server/src/utils/process-tree.js +285 -0
  217. package/dist/server/src/utils/sort-utils.d.ts +40 -0
  218. package/dist/server/src/utils/sort-utils.d.ts.map +1 -0
  219. package/dist/server/src/utils/sort-utils.js +131 -0
  220. package/dist/server/src/utils/transports/sse-transport.d.ts +16 -1
  221. package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -1
  222. package/dist/server/src/utils/transports/sse-transport.js +55 -9
  223. package/dist/server/src/utils/transports/stdio-transport.d.ts +24 -53
  224. package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -1
  225. package/dist/server/src/utils/transports/stdio-transport.js +66 -247
  226. package/dist/server/src/utils/transports/streamable-http-transport.d.ts +24 -1
  227. package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -1
  228. package/dist/server/src/utils/transports/streamable-http-transport.js +68 -8
  229. package/dist/server/src/utils/transports/transport-factory.d.ts +9 -4
  230. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
  231. package/dist/server/src/utils/transports/transport-factory.js +31 -11
  232. package/dist/server/src/utils/transports/transport.interface.d.ts +6 -0
  233. package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -1
  234. package/dist/server/src/utils/version.d.ts +11 -0
  235. package/dist/server/src/utils/version.d.ts.map +1 -0
  236. package/dist/server/src/utils/version.js +57 -0
  237. package/dist/server/tests/contract/mcp-protocol/initialize.test.js +24 -24
  238. package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +49 -45
  239. package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +35 -36
  240. package/dist/server/tests/integration/gateway/fault-tolerance.test.js +65 -25
  241. package/dist/server/tests/integration/gateway/mcp-connection.test.js +53 -61
  242. package/dist/server/tests/server.test.js +27 -16
  243. package/dist/server/tests/temp/temp-run-docling.d.ts +2 -0
  244. package/dist/server/tests/temp/temp-run-docling.d.ts.map +1 -0
  245. package/dist/server/tests/temp/temp-run-docling.js +53 -0
  246. package/dist/server/tests/types/test-helpers.d.ts +1 -2
  247. package/dist/server/tests/types/test-helpers.d.ts.map +1 -1
  248. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts +2 -0
  249. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts.map +1 -0
  250. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.js +199 -0
  251. package/dist/server/tests/unit/config/config-migrator.test.d.ts +2 -0
  252. package/dist/server/tests/unit/config/config-migrator.test.d.ts.map +1 -0
  253. package/dist/server/tests/unit/config/config-migrator.test.js +316 -0
  254. package/dist/server/tests/unit/config/config-saver.test.d.ts +2 -0
  255. package/dist/server/tests/unit/config/config-saver.test.d.ts.map +1 -0
  256. package/dist/server/tests/unit/config/config-saver.test.js +200 -0
  257. package/dist/server/tests/unit/config/config.schema.test.d.ts +2 -0
  258. package/dist/server/tests/unit/config/config.schema.test.d.ts.map +1 -0
  259. package/dist/server/tests/unit/config/config.schema.test.js +347 -0
  260. package/dist/server/tests/unit/server/runner.test.js +86 -62
  261. package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts +2 -0
  262. package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts.map +1 -0
  263. package/dist/server/tests/unit/services/connection/connection-manager.test.js +112 -0
  264. package/dist/server/tests/unit/services/hub-manager-service.test.js +112 -46
  265. package/dist/server/tests/unit/services/hub-manager.test.js +25 -15
  266. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts +2 -0
  267. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts.map +1 -0
  268. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.js +195 -0
  269. package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts +2 -0
  270. package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts.map +1 -0
  271. package/dist/server/tests/unit/services/hub-tools/server-selector.test.js +190 -0
  272. package/dist/server/tests/unit/services/hub-tools.service.test.js +560 -320
  273. package/dist/server/tests/unit/services/instance-matcher.test.d.ts +2 -0
  274. package/dist/server/tests/unit/services/instance-matcher.test.d.ts.map +1 -0
  275. package/dist/server/tests/unit/services/instance-matcher.test.js +256 -0
  276. package/dist/server/tests/unit/services/session-manager.test.js +26 -436
  277. package/dist/server/tests/unit/utils/config.test.js +88 -186
  278. package/dist/server/tests/unit/utils/json-utils.test.js +18 -18
  279. package/dist/server/tests/unit/utils/logger-formatter.test.d.ts +2 -0
  280. package/dist/server/tests/unit/utils/logger-formatter.test.d.ts.map +1 -0
  281. package/dist/server/tests/unit/utils/logger-formatter.test.js +66 -0
  282. package/dist/server/tests/unit/utils/parameter-validator.test.d.ts +2 -0
  283. package/dist/server/tests/unit/utils/parameter-validator.test.d.ts.map +1 -0
  284. package/dist/server/tests/unit/utils/parameter-validator.test.js +63 -0
  285. package/dist/server/tests/unit/utils/process-tree.test.d.ts +2 -0
  286. package/dist/server/tests/unit/utils/process-tree.test.d.ts.map +1 -0
  287. package/dist/server/tests/unit/utils/process-tree.test.js +129 -0
  288. package/dist/server/tests/unit/utils/sort-utils.test.d.ts +2 -0
  289. package/dist/server/tests/unit/utils/sort-utils.test.d.ts.map +1 -0
  290. package/dist/server/tests/unit/utils/sort-utils.test.js +220 -0
  291. package/dist/server/tests/unit/utils/transport-factory.test.d.ts +2 -0
  292. package/dist/server/tests/unit/utils/transport-factory.test.d.ts.map +1 -0
  293. package/dist/server/tests/unit/utils/transport-factory.test.js +55 -0
  294. package/package.json +3 -1
  295. package/dist/client/assets/ResourceDetailView-Bf-1ffbk.js +0 -1
  296. package/dist/client/assets/ResourcesView-CjMklkyv.css +0 -1
  297. package/dist/client/assets/ResourcesView-g5x4xCPh.js +0 -1
  298. package/dist/client/assets/ServerDashboard-Chpne8Q0.css +0 -1
  299. package/dist/client/assets/ServerDashboard-G8Wmp4hF.js +0 -2
  300. package/dist/client/assets/ServerListView-dV2XrPjo.js +0 -32
  301. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +0 -1
  302. package/dist/client/assets/SessionsView-Ckd38lj1.js +0 -1
  303. package/dist/client/assets/SettingsView-BJUdepEQ.js +0 -1
  304. package/dist/client/assets/ToolCallDialog-C_bTCpHC.js +0 -1
  305. package/dist/client/assets/ToolsView-0c2eputu.js +0 -1
  306. package/dist/client/assets/ToolsView-E3Ps9c7i.css +0 -1
  307. package/dist/client/assets/el-form-item-BVMLpmVC.css +0 -1
  308. package/dist/client/assets/el-form-item-ClFnj49k.js +0 -12
  309. package/dist/client/assets/el-input-CDnuSKVZ.js +0 -1
  310. package/dist/client/assets/el-input-CmuHb8HS.css +0 -1
  311. package/dist/client/assets/el-overlay-B2ZKM6Up.css +0 -1
  312. package/dist/client/assets/el-overlay-CzMkXyYy.js +0 -1
  313. package/dist/client/assets/el-select-DvjGddk_.js +0 -1
  314. package/dist/client/assets/el-tab-pane-C_DQMcwe.js +0 -1
  315. package/dist/client/assets/el-table-column-CASRIbZM.js +0 -1
  316. package/dist/client/assets/el-table-column-T_mV9jNw.css +0 -1
  317. package/dist/client/assets/el-tag-DjxZVOpb.css +0 -1
  318. package/dist/client/assets/el-tag-npbwux4f.js +0 -1
  319. package/dist/client/assets/index-CCnAxNF8.js +0 -2
  320. package/dist/client/assets/index-d1DZeSfz.js +0 -1
  321. package/dist/client/assets/omit-DPsOVNIJ.js +0 -1
  322. package/dist/client/assets/vnode-CHomNjgN.js +0 -1
@@ -1,63 +1,64 @@
1
1
  import type { Tool } from '../../../shared/models/tool.model.js';
2
2
  /**
3
- * Manages tool caching for MCP connections at both server ID and server name levels.
3
+ * Manages tool caching for MCP connections at both composite key and server name levels.
4
4
  *
5
- * This class encapsulates all tool cache operations, providing both server ID-level
5
+ * This class encapsulates all tool cache operations, providing both composite key-level
6
6
  * and server name-level caching for efficient tool lookup while maintaining data
7
7
  * consistency across multiple instances of the same server.
8
8
  */
9
9
  export declare class ToolCache {
10
10
  private toolCache;
11
11
  private serverNameToolCache;
12
- private nameToIdMap;
12
+ private nameToCompositeKeyMap;
13
13
  /**
14
- * Sets the name-to-ID mapping for server name resolution.
14
+ * Sets the name-to-composite-key mapping for server name resolution.
15
15
  *
16
16
  * @param serverName - The server name
17
- * @param serverId - The corresponding server instance ID
17
+ * @param compositeKey - The corresponding composite key
18
18
  */
19
- setNameMapping(serverName: string, serverId: string): void;
19
+ setNameMapping(serverName: string, compositeKey: string): void;
20
20
  /**
21
- * Removes the name-to-ID mapping for a server.
21
+ * Removes the name-to-composite-key mapping for a server.
22
22
  *
23
23
  * @param serverName - The server name to remove
24
24
  */
25
25
  removeNameMapping(serverName: string): void;
26
26
  /**
27
- * Removes name mapping by server ID.
27
+ * Removes name mapping by composite key.
28
28
  *
29
- * @param serverId - The server ID to remove
29
+ * @param compositeKey - The composite key to remove
30
30
  */
31
- removeNameMappingById(serverId: string): void;
31
+ removeNameMappingById(compositeKey: string): void;
32
32
  /**
33
- * Gets the server ID for a given server name.
33
+ * Gets the composite key for a given server name.
34
34
  *
35
35
  * @param name - The server name
36
- * @returns The server ID or undefined if not found
36
+ * @returns The composite key or undefined if not found
37
37
  */
38
- getServerIdByName(name: string): string | undefined;
38
+ getCompositeKeyByName(name: string): string | undefined;
39
39
  /**
40
- * Gets the server name for a given server ID.
40
+ * Gets the server name for a given composite key.
41
41
  *
42
- * @param serverId - The server ID
42
+ * @param compositeKey - The composite key
43
43
  * @returns The server name or 'unknown' if not found
44
44
  */
45
- getServerNameById(serverId: string): string;
45
+ getServerNameById(compositeKey: string): string;
46
46
  /**
47
47
  * Sets tools for a specific server instance and updates both caches.
48
48
  *
49
- * @param serverId - The server instance ID
49
+ * @param serverName - The server name
50
+ * @param serverIndex - The instance index
50
51
  * @param tools - The tools to cache
51
- * @param serverName - Optional server name for name-level cache update
52
52
  */
53
- setTools(serverId: string, tools: Tool[], serverName?: string): void;
53
+ setTools(serverName: string, serverIndex: number, tools: Tool[]): void;
54
54
  /**
55
55
  * Gets tools for a specific server instance.
56
56
  *
57
- * @param serverId - The server instance ID
57
+ * @param serverName - The server name
58
+ * @param serverIndex - The instance index
58
59
  * @returns Array of tools, empty if none
59
60
  */
60
- getTools(serverId: string): Tool[];
61
+ getTools(serverName: string, serverIndex: number): Tool[];
61
62
  /**
62
63
  * Gets tools by server name from the server name-level cache.
63
64
  *
@@ -88,23 +89,24 @@ export declare class ToolCache {
88
89
  /**
89
90
  * Gets all tool cache entries.
90
91
  *
91
- * @returns Array of [serverId, tools] tuples
92
+ * @returns Array of [compositeKey, tools] tuples
92
93
  */
93
94
  getToolCacheEntries(): [string, Tool[]][];
94
95
  /**
95
96
  * Returns an iterator over the tool cache entries for backward compatibility.
96
97
  * This mimics the Map.entries() method signature.
97
98
  *
98
- * @returns Iterator of [serverId, tools] tuples
99
+ * @returns Iterator of [compositeKey, tools] tuples
99
100
  * @deprecated Use getToolCacheEntries() instead
100
101
  */
101
102
  entries(): IterableIterator<[string, Tool[]]>;
102
103
  /**
103
104
  * Clears tools for a specific server and updates both caches.
104
105
  *
105
- * @param serverId - The server instance ID
106
+ * @param serverName - The server name
107
+ * @param serverIndex - The instance index
106
108
  */
107
- clearTools(serverId: string): void;
109
+ clearTools(serverName: string, serverIndex: number): void;
108
110
  /**
109
111
  * Updates the server name-level cache for a specific server.
110
112
  * This aggregates tools from all instances of the same server name.
@@ -1 +1 @@
1
- {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/tool-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,WAAW,CAAkC;IAErD;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI1D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAS7C;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInD;;;;;OAKG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAS3C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAkBpE;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE;IAUlC;;;;;OAKG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAIhD;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAK/D;;;;OAIG;IACH,WAAW,IAAI,IAAI,EAAE;IAQrB;;;;OAIG;IACH,uBAAuB,IAAI,IAAI,EAAE;IAQjC;;;;OAIG;IACH,mBAAmB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IAIzC;;;;;;OAMG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAI7C;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAclC;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAE3C;CACF"}
1
+ {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/tool-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAGzD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,qBAAqB,CAAkC;IAE/D;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IASjD;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAS/C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAWtE;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE;IAWzD;;;;;OAKG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAIhD;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAK/D;;;;OAIG;IACH,WAAW,IAAI,IAAI,EAAE;IAQrB;;;;OAIG;IACH,uBAAuB,IAAI,IAAI,EAAE;IAQjC;;;;OAIG;IACH,mBAAmB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IAIzC;;;;;;OAMG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAI7C;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAWzD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAE3C;CACF"}
@@ -1,63 +1,64 @@
1
1
  import { logger, LOG_MODULES } from '../../utils/logger.js';
2
+ import { getCompositeKey } from '../../utils/composite-key.js';
2
3
  /**
3
- * Manages tool caching for MCP connections at both server ID and server name levels.
4
+ * Manages tool caching for MCP connections at both composite key and server name levels.
4
5
  *
5
- * This class encapsulates all tool cache operations, providing both server ID-level
6
+ * This class encapsulates all tool cache operations, providing both composite key-level
6
7
  * and server name-level caching for efficient tool lookup while maintaining data
7
8
  * consistency across multiple instances of the same server.
8
9
  */
9
10
  export class ToolCache {
10
11
  toolCache = new Map();
11
12
  serverNameToolCache = new Map();
12
- nameToIdMap = new Map();
13
+ nameToCompositeKeyMap = new Map();
13
14
  /**
14
- * Sets the name-to-ID mapping for server name resolution.
15
+ * Sets the name-to-composite-key mapping for server name resolution.
15
16
  *
16
17
  * @param serverName - The server name
17
- * @param serverId - The corresponding server instance ID
18
+ * @param compositeKey - The corresponding composite key
18
19
  */
19
- setNameMapping(serverName, serverId) {
20
- this.nameToIdMap.set(serverName, serverId);
20
+ setNameMapping(serverName, compositeKey) {
21
+ this.nameToCompositeKeyMap.set(serverName, compositeKey);
21
22
  }
22
23
  /**
23
- * Removes the name-to-ID mapping for a server.
24
+ * Removes the name-to-composite-key mapping for a server.
24
25
  *
25
26
  * @param serverName - The server name to remove
26
27
  */
27
28
  removeNameMapping(serverName) {
28
- this.nameToIdMap.delete(serverName);
29
+ this.nameToCompositeKeyMap.delete(serverName);
29
30
  }
30
31
  /**
31
- * Removes name mapping by server ID.
32
+ * Removes name mapping by composite key.
32
33
  *
33
- * @param serverId - The server ID to remove
34
+ * @param compositeKey - The composite key to remove
34
35
  */
35
- removeNameMappingById(serverId) {
36
- for (const [name, id] of this.nameToIdMap.entries()) {
37
- if (id === serverId) {
38
- this.nameToIdMap.delete(name);
36
+ removeNameMappingById(compositeKey) {
37
+ for (const [name, key] of this.nameToCompositeKeyMap.entries()) {
38
+ if (key === compositeKey) {
39
+ this.nameToCompositeKeyMap.delete(name);
39
40
  break;
40
41
  }
41
42
  }
42
43
  }
43
44
  /**
44
- * Gets the server ID for a given server name.
45
+ * Gets the composite key for a given server name.
45
46
  *
46
47
  * @param name - The server name
47
- * @returns The server ID or undefined if not found
48
+ * @returns The composite key or undefined if not found
48
49
  */
49
- getServerIdByName(name) {
50
- return this.nameToIdMap.get(name);
50
+ getCompositeKeyByName(name) {
51
+ return this.nameToCompositeKeyMap.get(name);
51
52
  }
52
53
  /**
53
- * Gets the server name for a given server ID.
54
+ * Gets the server name for a given composite key.
54
55
  *
55
- * @param serverId - The server ID
56
+ * @param compositeKey - The composite key
56
57
  * @returns The server name or 'unknown' if not found
57
58
  */
58
- getServerNameById(serverId) {
59
- for (const [name, id] of this.nameToIdMap.entries()) {
60
- if (id === serverId) {
59
+ getServerNameById(compositeKey) {
60
+ for (const [name, key] of this.nameToCompositeKeyMap.entries()) {
61
+ if (key === compositeKey) {
61
62
  return name;
62
63
  }
63
64
  }
@@ -66,33 +67,28 @@ export class ToolCache {
66
67
  /**
67
68
  * Sets tools for a specific server instance and updates both caches.
68
69
  *
69
- * @param serverId - The server instance ID
70
+ * @param serverName - The server name
71
+ * @param serverIndex - The instance index
70
72
  * @param tools - The tools to cache
71
- * @param serverName - Optional server name for name-level cache update
72
73
  */
73
- setTools(serverId, tools, serverName) {
74
- this.toolCache.set(serverId, tools);
75
- if (serverName) {
76
- this.updateServerNameCache(serverName);
77
- }
78
- else {
79
- const resolvedName = this.getServerNameById(serverId);
80
- if (resolvedName !== 'unknown') {
81
- this.updateServerNameCache(resolvedName);
82
- }
83
- }
84
- logger.debug(`ToolCache: Set ${tools.length} tools for server [${serverId}]`, LOG_MODULES.CONNECTION_MANAGER);
74
+ setTools(serverName, serverIndex, tools) {
75
+ const compositeKey = getCompositeKey(serverName, serverIndex);
76
+ this.toolCache.set(compositeKey, tools);
77
+ this.updateServerNameCache(serverName);
78
+ logger.debug(`ToolCache: Set ${tools.length} tools for server [${compositeKey}]`, LOG_MODULES.CONNECTION_MANAGER);
85
79
  }
86
80
  /**
87
81
  * Gets tools for a specific server instance.
88
82
  *
89
- * @param serverId - The server instance ID
83
+ * @param serverName - The server name
84
+ * @param serverIndex - The instance index
90
85
  * @returns Array of tools, empty if none
91
86
  */
92
- getTools(serverId) {
93
- const tools = this.toolCache.get(serverId) || [];
94
- const fromCache = this.toolCache.has(serverId);
95
- logger.debug(`ToolCache: getTools for [${serverId}]: returned ${tools.length} tools (${fromCache ? 'from cache' : 'no cache'})`, LOG_MODULES.CONNECTION_MANAGER);
87
+ getTools(serverName, serverIndex) {
88
+ const compositeKey = getCompositeKey(serverName, serverIndex);
89
+ const tools = this.toolCache.get(compositeKey) || [];
90
+ const fromCache = this.toolCache.has(compositeKey);
91
+ logger.debug(`ToolCache: getTools for [${compositeKey}]: returned ${tools.length} tools (${fromCache ? 'from cache' : 'no cache'})`, LOG_MODULES.CONNECTION_MANAGER);
96
92
  return tools;
97
93
  }
98
94
  /**
@@ -142,7 +138,7 @@ export class ToolCache {
142
138
  /**
143
139
  * Gets all tool cache entries.
144
140
  *
145
- * @returns Array of [serverId, tools] tuples
141
+ * @returns Array of [compositeKey, tools] tuples
146
142
  */
147
143
  getToolCacheEntries() {
148
144
  return Array.from(this.toolCache.entries());
@@ -151,7 +147,7 @@ export class ToolCache {
151
147
  * Returns an iterator over the tool cache entries for backward compatibility.
152
148
  * This mimics the Map.entries() method signature.
153
149
  *
154
- * @returns Iterator of [serverId, tools] tuples
150
+ * @returns Iterator of [compositeKey, tools] tuples
155
151
  * @deprecated Use getToolCacheEntries() instead
156
152
  */
157
153
  entries() {
@@ -160,15 +156,14 @@ export class ToolCache {
160
156
  /**
161
157
  * Clears tools for a specific server and updates both caches.
162
158
  *
163
- * @param serverId - The server instance ID
159
+ * @param serverName - The server name
160
+ * @param serverIndex - The instance index
164
161
  */
165
- clearTools(serverId) {
166
- const serverName = this.getServerNameById(serverId);
167
- this.toolCache.delete(serverId);
168
- if (serverName !== 'unknown') {
169
- this.updateServerNameCache(serverName);
170
- }
171
- logger.debug(`ToolCache: Cleared tools for server [${serverId}]`, LOG_MODULES.CONNECTION_MANAGER);
162
+ clearTools(serverName, serverIndex) {
163
+ const compositeKey = getCompositeKey(serverName, serverIndex);
164
+ this.toolCache.delete(compositeKey);
165
+ this.updateServerNameCache(serverName);
166
+ logger.debug(`ToolCache: Cleared tools for server [${compositeKey}]`, LOG_MODULES.CONNECTION_MANAGER);
172
167
  }
173
168
  /**
174
169
  * Updates the server name-level cache for a specific server.
@@ -178,8 +173,8 @@ export class ToolCache {
178
173
  */
179
174
  updateServerNameCache(serverName) {
180
175
  const allToolsForServer = [];
181
- for (const [id, cachedTools] of this.toolCache.entries()) {
182
- const instanceServerName = this.getServerNameById(id);
176
+ for (const [compositeKey, cachedTools] of this.toolCache.entries()) {
177
+ const instanceServerName = this.getServerNameById(compositeKey);
183
178
  if (instanceServerName === serverName) {
184
179
  allToolsForServer.push(...cachedTools);
185
180
  }
@@ -21,7 +21,9 @@ import type { ToolMapEntry, GatewayTool } from './types.js';
21
21
  export declare class GatewayService {
22
22
  private server;
23
23
  private transport;
24
+ private readonly appVersion;
24
25
  constructor();
26
+ private createServerWithHandlers;
25
27
  private registerHandlers;
26
28
  /**
27
29
  * Generates a unified list of gateway tools with proper naming and collision resolution.
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/gateway.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAapE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAqC;;IAoBtD,OAAO,CAAC,gBAAgB;IAWxB;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;IAIvF;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;IAI5C;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IAIpD;;;;OAIG;IACI,sBAAsB,IAAI,SAAS;IAmB1C;;;;OAIG;IACU,KAAK;CAKnB;AAED,eAAO,MAAM,OAAO,gBAAuB,CAAC"}
1
+ {"version":3,"file":"gateway.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/gateway.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAcpE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;;IAOpC,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,gBAAgB;IAyCxB;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;IAIvF;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;IAI5C;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IAIpD;;;;OAIG;IACI,sBAAsB,IAAI,SAAS;IAI1C;;;;OAIG;IACU,KAAK;CAKnB;AAED,eAAO,MAAM,OAAO,gBAAuB,CAAC"}
@@ -19,34 +19,74 @@
19
19
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
20
20
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
21
21
  import { logger } from '../../utils/index.js';
22
+ import { LOG_MODULES } from '../../utils/logger/log-modules.js';
22
23
  import { MCP_HUB_LITE_SERVER } from '../../models/system-tools.constants.js';
23
- import { registerInitializeHandlers, registerToolsHandlers, registerResourcesHandlers, registerSystemToolsHandlers, registerCallToolHandler } from './request-handlers/index.js';
24
+ import { registerInitializeHandlers, registerResourcesHandlers, registerSystemToolsHandlers, registerCallToolHandler } from './request-handlers/index.js';
25
+ import { getAppVersion } from '../../utils/version.js';
24
26
  import { generateGatewayToolsList } from './tool-list-generator.js';
25
27
  import { formatToolArgs, formatToolResponse } from './log-formatter.js';
26
28
  export class GatewayService {
27
29
  server;
28
30
  transport = null;
31
+ appVersion;
29
32
  constructor() {
30
- this.server = new McpServer({
33
+ this.appVersion = getAppVersion();
34
+ this.server = this.createServerWithHandlers();
35
+ }
36
+ createServerWithHandlers() {
37
+ logger.debug('Creating new MCP server with handlers', LOG_MODULES.GATEWAY_SERVICE);
38
+ const server = new McpServer({
31
39
  name: MCP_HUB_LITE_SERVER,
32
- version: '1.0.0'
40
+ version: this.appVersion
33
41
  }, {
34
42
  capabilities: {
35
43
  tools: {},
36
- resources: {} // Add resource capability support
44
+ resources: {}
37
45
  }
38
46
  });
39
- // Call registerHandlers directly in constructor
40
- this.registerHandlers(this.server);
47
+ logger.debug('MCP server created successfully', LOG_MODULES.GATEWAY_SERVICE);
48
+ this.registerHandlers(server);
49
+ logger.debug('Handlers registered successfully on MCP server', LOG_MODULES.GATEWAY_SERVICE);
50
+ return server;
41
51
  }
42
52
  registerHandlers(server) {
53
+ logger.debug('Registering handlers on MCP server', LOG_MODULES.GATEWAY_SERVICE);
43
54
  // Local toolMap for this connection
44
55
  const toolMap = new Map();
45
- registerInitializeHandlers(server);
46
- registerToolsHandlers(server);
47
- registerResourcesHandlers(server);
48
- registerSystemToolsHandlers(server);
49
- registerCallToolHandler(server, toolMap);
56
+ logger.debug('Created local toolMap for connection', LOG_MODULES.GATEWAY_SERVICE);
57
+ try {
58
+ registerInitializeHandlers(server);
59
+ logger.debug('Initialize handlers registered successfully', LOG_MODULES.GATEWAY_SERVICE);
60
+ }
61
+ catch (error) {
62
+ logger.error('Failed to register initialize handlers:', error, LOG_MODULES.GATEWAY_SERVICE);
63
+ throw error;
64
+ }
65
+ try {
66
+ registerResourcesHandlers(server);
67
+ logger.debug('Resources handlers registered successfully', LOG_MODULES.GATEWAY_SERVICE);
68
+ }
69
+ catch (error) {
70
+ logger.error('Failed to register resources handlers:', error, LOG_MODULES.GATEWAY_SERVICE);
71
+ throw error;
72
+ }
73
+ try {
74
+ registerSystemToolsHandlers(server);
75
+ logger.debug('System tools handlers registered successfully', LOG_MODULES.GATEWAY_SERVICE);
76
+ }
77
+ catch (error) {
78
+ logger.error('Failed to register system tools handlers:', error, LOG_MODULES.GATEWAY_SERVICE);
79
+ throw error;
80
+ }
81
+ try {
82
+ registerCallToolHandler(server, toolMap);
83
+ logger.debug('Call tool handler registered successfully', LOG_MODULES.GATEWAY_SERVICE);
84
+ }
85
+ catch (error) {
86
+ logger.error('Failed to register call tool handler:', error, LOG_MODULES.GATEWAY_SERVICE);
87
+ throw error;
88
+ }
89
+ logger.debug('All handlers registered successfully', LOG_MODULES.GATEWAY_SERVICE);
50
90
  }
51
91
  /**
52
92
  * Generates a unified list of gateway tools with proper naming and collision resolution.
@@ -81,17 +121,7 @@ export class GatewayService {
81
121
  * @returns {McpServer} New MCP server instance with all handlers registered
82
122
  */
83
123
  createConnectionServer() {
84
- const server = new McpServer({
85
- name: MCP_HUB_LITE_SERVER,
86
- version: '1.0.0'
87
- }, {
88
- capabilities: {
89
- tools: {},
90
- resources: {} // Add resource capability support
91
- }
92
- });
93
- this.registerHandlers(server);
94
- return server;
124
+ return this.createServerWithHandlers();
95
125
  }
96
126
  /**
97
127
  * Starts the MCP gateway service on stdio transport.
@@ -101,7 +131,7 @@ export class GatewayService {
101
131
  async start() {
102
132
  this.transport = new StdioServerTransport();
103
133
  await this.server.connect(this.transport);
104
- logger.info('MCP Gateway started on stdio');
134
+ logger.info('MCP Gateway started on stdio', LOG_MODULES.GATEWAY_SERVICE);
105
135
  }
106
136
  }
107
137
  export const gateway = new GatewayService();
@@ -0,0 +1,19 @@
1
+ /**
2
+ * MCP transport factory for per-request transport instances.
3
+ *
4
+ * This module provides a factory function to create isolated MCP transport and server instances
5
+ * for each HTTP request, ensuring proper state isolation between concurrent clients.
6
+ */
7
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
+ /**
9
+ * Creates a new MCP transport and server instance for a single request session.
10
+ * Each call returns isolated instances that should be cleaned up after the request completes.
11
+ *
12
+ * @returns {Promise<{ transport: StreamableHTTPServerTransport, server: import('@modelcontextprotocol/sdk/server/mcp.js').McpServer }>}
13
+ * Object containing the transport and server instances
14
+ */
15
+ export declare function createSessionTransport(): Promise<{
16
+ transport: StreamableHTTPServerTransport;
17
+ server: import("@modelcontextprotocol/sdk/server/mcp").McpServer;
18
+ }>;
19
+ //# sourceMappingURL=global-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-transport.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/global-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAMnG;;;;;;GAMG;AACH,wBAAsB,sBAAsB;;;GA+D3C"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * MCP transport factory for per-request transport instances.
3
+ *
4
+ * This module provides a factory function to create isolated MCP transport and server instances
5
+ * for each HTTP request, ensuring proper state isolation between concurrent clients.
6
+ */
7
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
+ import { gateway } from './gateway.service.js';
9
+ import { logger, LOG_MODULES } from '../../utils/logger/index.js';
10
+ import { stringifyForLogging, getMcpCommDebugSetting } from '../../utils/json-utils.js';
11
+ import { formatMcpMessageForLogging, logNotificationMessage } from '../../utils/logger/log-output.js';
12
+ /**
13
+ * Creates a new MCP transport and server instance for a single request session.
14
+ * Each call returns isolated instances that should be cleaned up after the request completes.
15
+ *
16
+ * @returns {Promise<{ transport: StreamableHTTPServerTransport, server: import('@modelcontextprotocol/sdk/server/mcp.js').McpServer }>}
17
+ * Object containing the transport and server instances
18
+ */
19
+ export async function createSessionTransport() {
20
+ const transport = new StreamableHTTPServerTransport();
21
+ const server = gateway.createConnectionServer();
22
+ // Set up message logging (use empty string for sessionId in per-request mode)
23
+ transport.onmessage = (message) => {
24
+ logger.debug(`Session transport onmessage called with: ${stringifyForLogging(message)}`, LOG_MODULES.GATEWAY);
25
+ try {
26
+ if (getMcpCommDebugSetting()) {
27
+ const logMessage = formatMcpMessageForLogging(message);
28
+ logger.debug(`MCP message received: ${logMessage}`, LOG_MODULES.COMMUNICATION);
29
+ }
30
+ logNotificationMessage(message, ''); // Empty sessionId for per-request
31
+ logger.debug(`Session transport onmessage completed successfully`, LOG_MODULES.GATEWAY);
32
+ }
33
+ catch (error) {
34
+ const errorMessage = error instanceof Error ? error.message : String(error);
35
+ logger.error(`Error in session transport onmessage handler: ${errorMessage}`, LOG_MODULES.GATEWAY);
36
+ logger.error(`Message that caused error: ${stringifyForLogging(message)}`, LOG_MODULES.GATEWAY);
37
+ }
38
+ };
39
+ // Wrap send method for debug logging
40
+ if (getMcpCommDebugSetting()) {
41
+ const originalSend = transport.send;
42
+ transport.send = async (message, options) => {
43
+ try {
44
+ const logMessage = formatMcpMessageForLogging(message);
45
+ logger.debug(`MCP message sent: ${logMessage}`, LOG_MODULES.COMMUNICATION);
46
+ }
47
+ catch {
48
+ logger.debug(`MCP message sent: [Error formatting response]`, LOG_MODULES.COMMUNICATION);
49
+ }
50
+ return await originalSend.call(transport, message, options);
51
+ };
52
+ }
53
+ // Connect server to transport
54
+ logger.debug('About to connect session server to transport', LOG_MODULES.GATEWAY);
55
+ try {
56
+ await server.connect(transport);
57
+ logger.info('MCP session transport initialized (per-request mode)', LOG_MODULES.GATEWAY);
58
+ }
59
+ catch (error) {
60
+ const errorMessage = error instanceof Error ? error.message : String(error);
61
+ logger.error(`Failed to connect session server to transport: ${errorMessage}`, LOG_MODULES.GATEWAY);
62
+ logger.error(`Transport connection error details: ${stringifyForLogging(error)}`, LOG_MODULES.GATEWAY);
63
+ throw error;
64
+ }
65
+ return { transport, server };
66
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"call-tool-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/call-tool-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACjC,IAAI,CAwKN"}
1
+ {"version":3,"file":"call-tool-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/call-tool-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgFhD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACjC,IAAI,CA8FN"}