@loop_ouroboros/mcp-hub-lite 1.0.0

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 (499) hide show
  1. package/CHANGELOG.md +228 -0
  2. package/LICENSE +21 -0
  3. package/README.md +354 -0
  4. package/dist/client/assets/HomeView-f901HeKw.js +1 -0
  5. package/dist/client/assets/ResourceDetailView-BdOaL_-o.css +1 -0
  6. package/dist/client/assets/ResourceDetailView-Bz66ZjfY.js +1 -0
  7. package/dist/client/assets/ResourcesView-CjMklkyv.css +1 -0
  8. package/dist/client/assets/ResourcesView-lI_fItfA.js +1 -0
  9. package/dist/client/assets/ServerDashboard-7_8Og9JJ.css +1 -0
  10. package/dist/client/assets/ServerDashboard-Bgx8WVkx.js +2 -0
  11. package/dist/client/assets/ServerListView-Bws09jNR.css +1 -0
  12. package/dist/client/assets/ServerListView-CP6Ffkfx.js +30 -0
  13. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +1 -0
  14. package/dist/client/assets/SessionsView-D68qKR4D.js +1 -0
  15. package/dist/client/assets/SettingsView-BPYfO9BE.js +1 -0
  16. package/dist/client/assets/ToolCallDialog-Br8FNebN.js +1 -0
  17. package/dist/client/assets/ToolCallDialog-C7eh7jHE.css +1 -0
  18. package/dist/client/assets/ToolsView-B6hUiR43.js +1 -0
  19. package/dist/client/assets/ToolsView-BLnU8cV6.css +1 -0
  20. package/dist/client/assets/_baseClone-DCmK847M.js +1 -0
  21. package/dist/client/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
  22. package/dist/client/assets/el-form-item-BVMLpmVC.css +1 -0
  23. package/dist/client/assets/el-form-item-DM0q2hmO.js +12 -0
  24. package/dist/client/assets/el-input-BtI9NECe.js +1 -0
  25. package/dist/client/assets/el-input-CmuHb8HS.css +1 -0
  26. package/dist/client/assets/el-loading-CChNmKeI.js +1 -0
  27. package/dist/client/assets/el-loading-bpKhqqQq.css +1 -0
  28. package/dist/client/assets/el-overlay-B2ZKM6Up.css +1 -0
  29. package/dist/client/assets/el-overlay-lZZbPmsX.js +1 -0
  30. package/dist/client/assets/el-select-BXztu2b5.js +1 -0
  31. package/dist/client/assets/el-select-C0U_l4IZ.css +1 -0
  32. package/dist/client/assets/el-tab-pane-CnNoQHsR.css +1 -0
  33. package/dist/client/assets/el-tab-pane-Dy9ruaEX.js +1 -0
  34. package/dist/client/assets/el-table-column-98UyVgBH.js +1 -0
  35. package/dist/client/assets/el-table-column-T_mV9jNw.css +1 -0
  36. package/dist/client/assets/el-tag-B5lLT51E.js +1 -0
  37. package/dist/client/assets/el-tag-DjxZVOpb.css +1 -0
  38. package/dist/client/assets/event-BB_Ol6Sd.js +1 -0
  39. package/dist/client/assets/index-BgKcmWJr.js +1 -0
  40. package/dist/client/assets/index-BsDWtoIl.css +1 -0
  41. package/dist/client/assets/index-BzQXG7no.js +1 -0
  42. package/dist/client/assets/index-CSTs2jYk.js +2 -0
  43. package/dist/client/assets/omit-Bx5HJNV_.js +1 -0
  44. package/dist/client/assets/raf-B9VDMtMF.js +1 -0
  45. package/dist/client/assets/typescript-Bp3YSIOJ.js +1 -0
  46. package/dist/client/assets/vnode-B8aJx8u4.js +1 -0
  47. package/dist/client/assets/vue-vendor-6ny5zj9i.js +3 -0
  48. package/dist/client/index.html +15 -0
  49. package/dist/server/shared/index.d.ts +3 -0
  50. package/dist/server/shared/index.d.ts.map +1 -0
  51. package/dist/server/shared/index.js +2 -0
  52. package/dist/server/shared/models/index.d.ts +4 -0
  53. package/dist/server/shared/models/index.d.ts.map +1 -0
  54. package/dist/server/shared/models/index.js +3 -0
  55. package/dist/server/shared/models/resource.model.d.ts +8 -0
  56. package/dist/server/shared/models/resource.model.d.ts.map +1 -0
  57. package/dist/server/shared/models/resource.model.js +1 -0
  58. package/dist/server/shared/models/server.model.d.ts +57 -0
  59. package/dist/server/shared/models/server.model.d.ts.map +1 -0
  60. package/dist/server/shared/models/server.model.js +1 -0
  61. package/dist/server/shared/models/session.model.d.ts +73 -0
  62. package/dist/server/shared/models/session.model.d.ts.map +1 -0
  63. package/dist/server/shared/models/session.model.js +70 -0
  64. package/dist/server/shared/models/tool.model.d.ts +22 -0
  65. package/dist/server/shared/models/tool.model.d.ts.map +1 -0
  66. package/dist/server/shared/models/tool.model.js +1 -0
  67. package/dist/server/shared/types/client.types.d.ts +35 -0
  68. package/dist/server/shared/types/client.types.d.ts.map +1 -0
  69. package/dist/server/shared/types/client.types.js +5 -0
  70. package/dist/server/shared/types/common.types.d.ts +5 -0
  71. package/dist/server/shared/types/common.types.d.ts.map +1 -0
  72. package/dist/server/shared/types/common.types.js +2 -0
  73. package/dist/server/shared/types/index.d.ts +4 -0
  74. package/dist/server/shared/types/index.d.ts.map +1 -0
  75. package/dist/server/shared/types/index.js +3 -0
  76. package/dist/server/shared/types/session.types.d.ts +15 -0
  77. package/dist/server/shared/types/session.types.d.ts.map +1 -0
  78. package/dist/server/shared/types/session.types.js +5 -0
  79. package/dist/server/shared/types/websocket.types.d.ts +177 -0
  80. package/dist/server/shared/types/websocket.types.d.ts.map +1 -0
  81. package/dist/server/shared/types/websocket.types.js +25 -0
  82. package/dist/server/src/api/mcp/debug-response-wrapper.d.ts +13 -0
  83. package/dist/server/src/api/mcp/debug-response-wrapper.d.ts.map +1 -0
  84. package/dist/server/src/api/mcp/debug-response-wrapper.js +271 -0
  85. package/dist/server/src/api/mcp/gateway.d.ts +14 -0
  86. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -0
  87. package/dist/server/src/api/mcp/gateway.js +116 -0
  88. package/dist/server/src/api/mcp/session-context-extractor.d.ts +47 -0
  89. package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -0
  90. package/dist/server/src/api/mcp/session-context-extractor.js +127 -0
  91. package/dist/server/src/api/mcp/sse-stream-manager.d.ts +13 -0
  92. package/dist/server/src/api/mcp/sse-stream-manager.d.ts.map +1 -0
  93. package/dist/server/src/api/mcp/sse-stream-manager.js +40 -0
  94. package/dist/server/src/api/web/clients.d.ts +30 -0
  95. package/dist/server/src/api/web/clients.d.ts.map +1 -0
  96. package/dist/server/src/api/web/clients.js +41 -0
  97. package/dist/server/src/api/web/config.d.ts +21 -0
  98. package/dist/server/src/api/web/config.d.ts.map +1 -0
  99. package/dist/server/src/api/web/config.js +119 -0
  100. package/dist/server/src/api/web/health.d.ts +21 -0
  101. package/dist/server/src/api/web/health.d.ts.map +1 -0
  102. package/dist/server/src/api/web/health.js +24 -0
  103. package/dist/server/src/api/web/hub-tools.d.ts +30 -0
  104. package/dist/server/src/api/web/hub-tools.d.ts.map +1 -0
  105. package/dist/server/src/api/web/hub-tools.js +202 -0
  106. package/dist/server/src/api/web/logs.d.ts +30 -0
  107. package/dist/server/src/api/web/logs.d.ts.map +1 -0
  108. package/dist/server/src/api/web/logs.js +141 -0
  109. package/dist/server/src/api/web/mcp-status.d.ts +29 -0
  110. package/dist/server/src/api/web/mcp-status.d.ts.map +1 -0
  111. package/dist/server/src/api/web/mcp-status.js +126 -0
  112. package/dist/server/src/api/web/resources.d.ts +28 -0
  113. package/dist/server/src/api/web/resources.d.ts.map +1 -0
  114. package/dist/server/src/api/web/resources.js +93 -0
  115. package/dist/server/src/api/web/search.d.ts +26 -0
  116. package/dist/server/src/api/web/search.d.ts.map +1 -0
  117. package/dist/server/src/api/web/search.js +62 -0
  118. package/dist/server/src/api/web/servers.d.ts +33 -0
  119. package/dist/server/src/api/web/servers.d.ts.map +1 -0
  120. package/dist/server/src/api/web/servers.js +235 -0
  121. package/dist/server/src/api/web/sessions.d.ts +29 -0
  122. package/dist/server/src/api/web/sessions.d.ts.map +1 -0
  123. package/dist/server/src/api/web/sessions.js +104 -0
  124. package/dist/server/src/api/ws/events.d.ts +29 -0
  125. package/dist/server/src/api/ws/events.d.ts.map +1 -0
  126. package/dist/server/src/api/ws/events.js +44 -0
  127. package/dist/server/src/api/ws/ws-handler.d.ts +83 -0
  128. package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -0
  129. package/dist/server/src/api/ws/ws-handler.js +217 -0
  130. package/dist/server/src/app.d.ts +24 -0
  131. package/dist/server/src/app.d.ts.map +1 -0
  132. package/dist/server/src/app.js +108 -0
  133. package/dist/server/src/cli/commands/list.d.ts +71 -0
  134. package/dist/server/src/cli/commands/list.d.ts.map +1 -0
  135. package/dist/server/src/cli/commands/list.js +97 -0
  136. package/dist/server/src/cli/commands/restart.d.ts +42 -0
  137. package/dist/server/src/cli/commands/restart.d.ts.map +1 -0
  138. package/dist/server/src/cli/commands/restart.js +61 -0
  139. package/dist/server/src/cli/commands/start.d.ts +43 -0
  140. package/dist/server/src/cli/commands/start.d.ts.map +1 -0
  141. package/dist/server/src/cli/commands/start.js +160 -0
  142. package/dist/server/src/cli/commands/status.d.ts +39 -0
  143. package/dist/server/src/cli/commands/status.d.ts.map +1 -0
  144. package/dist/server/src/cli/commands/status.js +164 -0
  145. package/dist/server/src/cli/commands/stop.d.ts +34 -0
  146. package/dist/server/src/cli/commands/stop.d.ts.map +1 -0
  147. package/dist/server/src/cli/commands/stop.js +47 -0
  148. package/dist/server/src/cli/commands/ui.d.ts +44 -0
  149. package/dist/server/src/cli/commands/ui.d.ts.map +1 -0
  150. package/dist/server/src/cli/commands/ui.js +95 -0
  151. package/dist/server/src/cli/index.d.ts +62 -0
  152. package/dist/server/src/cli/index.d.ts.map +1 -0
  153. package/dist/server/src/cli/index.js +88 -0
  154. package/dist/server/src/cli/parse-args.d.ts +108 -0
  155. package/dist/server/src/cli/parse-args.d.ts.map +1 -0
  156. package/dist/server/src/cli/parse-args.js +131 -0
  157. package/dist/server/src/cli/server.d.ts +171 -0
  158. package/dist/server/src/cli/server.d.ts.map +1 -0
  159. package/dist/server/src/cli/server.js +246 -0
  160. package/dist/server/src/config/config-change-logger.d.ts +16 -0
  161. package/dist/server/src/config/config-change-logger.d.ts.map +1 -0
  162. package/dist/server/src/config/config-change-logger.js +43 -0
  163. package/dist/server/src/config/config-loader.d.ts +22 -0
  164. package/dist/server/src/config/config-loader.d.ts.map +1 -0
  165. package/dist/server/src/config/config-loader.js +66 -0
  166. package/dist/server/src/config/config-manager.d.ts +158 -0
  167. package/dist/server/src/config/config-manager.d.ts.map +1 -0
  168. package/dist/server/src/config/config-manager.js +246 -0
  169. package/dist/server/src/config/config-saver.d.ts +16 -0
  170. package/dist/server/src/config/config-saver.d.ts.map +1 -0
  171. package/dist/server/src/config/config-saver.js +28 -0
  172. package/dist/server/src/config/config.schema.d.ts +108 -0
  173. package/dist/server/src/config/config.schema.d.ts.map +1 -0
  174. package/dist/server/src/config/config.schema.js +103 -0
  175. package/dist/server/src/config/server-config-manager.d.ts +74 -0
  176. package/dist/server/src/config/server-config-manager.d.ts.map +1 -0
  177. package/dist/server/src/config/server-config-manager.js +157 -0
  178. package/dist/server/src/config/type-converter.d.ts +13 -0
  179. package/dist/server/src/config/type-converter.d.ts.map +1 -0
  180. package/dist/server/src/config/type-converter.js +37 -0
  181. package/dist/server/src/index.d.ts +3 -0
  182. package/dist/server/src/index.d.ts.map +1 -0
  183. package/dist/server/src/index.js +352 -0
  184. package/dist/server/src/models/event.model.d.ts +106 -0
  185. package/dist/server/src/models/event.model.d.ts.map +1 -0
  186. package/dist/server/src/models/event.model.js +5 -0
  187. package/dist/server/src/models/server.model.d.ts +19 -0
  188. package/dist/server/src/models/server.model.d.ts.map +1 -0
  189. package/dist/server/src/models/server.model.js +1 -0
  190. package/dist/server/src/models/system-tools.constants.d.ts +73 -0
  191. package/dist/server/src/models/system-tools.constants.d.ts.map +1 -0
  192. package/dist/server/src/models/system-tools.constants.js +31 -0
  193. package/dist/server/src/models/types.d.ts +84 -0
  194. package/dist/server/src/models/types.d.ts.map +1 -0
  195. package/dist/server/src/models/types.js +67 -0
  196. package/dist/server/src/pid/file.d.ts +26 -0
  197. package/dist/server/src/pid/file.d.ts.map +1 -0
  198. package/dist/server/src/pid/file.js +68 -0
  199. package/dist/server/src/pid/manager.d.ts +98 -0
  200. package/dist/server/src/pid/manager.d.ts.map +1 -0
  201. package/dist/server/src/pid/manager.js +158 -0
  202. package/dist/server/src/pid/types.d.ts +13 -0
  203. package/dist/server/src/pid/types.d.ts.map +1 -0
  204. package/dist/server/src/pid/types.js +4 -0
  205. package/dist/server/src/server/dev-server.d.ts +2 -0
  206. package/dist/server/src/server/dev-server.d.ts.map +1 -0
  207. package/dist/server/src/server/dev-server.js +171 -0
  208. package/dist/server/src/server/runner.d.ts +57 -0
  209. package/dist/server/src/server/runner.d.ts.map +1 -0
  210. package/dist/server/src/server/runner.js +163 -0
  211. package/dist/server/src/services/client-tracker.service.d.ts +132 -0
  212. package/dist/server/src/services/client-tracker.service.d.ts.map +1 -0
  213. package/dist/server/src/services/client-tracker.service.js +203 -0
  214. package/dist/server/src/services/connection/connection-manager.d.ts +478 -0
  215. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -0
  216. package/dist/server/src/services/connection/connection-manager.js +929 -0
  217. package/dist/server/src/services/connection/index.d.ts +6 -0
  218. package/dist/server/src/services/connection/index.d.ts.map +1 -0
  219. package/dist/server/src/services/connection/index.js +4 -0
  220. package/dist/server/src/services/connection/tool-cache.d.ts +122 -0
  221. package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -0
  222. package/dist/server/src/services/connection/tool-cache.js +202 -0
  223. package/dist/server/src/services/connection/types.d.ts +30 -0
  224. package/dist/server/src/services/connection/types.d.ts.map +1 -0
  225. package/dist/server/src/services/connection/types.js +1 -0
  226. package/dist/server/src/services/event-bus.service.d.ts +169 -0
  227. package/dist/server/src/services/event-bus.service.d.ts.map +1 -0
  228. package/dist/server/src/services/event-bus.service.js +200 -0
  229. package/dist/server/src/services/gateway/gateway.service.d.ts +61 -0
  230. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -0
  231. package/dist/server/src/services/gateway/gateway.service.js +107 -0
  232. package/dist/server/src/services/gateway/index.d.ts +8 -0
  233. package/dist/server/src/services/gateway/index.d.ts.map +1 -0
  234. package/dist/server/src/services/gateway/index.js +6 -0
  235. package/dist/server/src/services/gateway/log-formatter.d.ts +26 -0
  236. package/dist/server/src/services/gateway/log-formatter.d.ts.map +1 -0
  237. package/dist/server/src/services/gateway/log-formatter.js +66 -0
  238. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts +13 -0
  239. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -0
  240. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +131 -0
  241. package/dist/server/src/services/gateway/request-handlers/index.d.ts +9 -0
  242. package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -0
  243. package/dist/server/src/services/gateway/request-handlers/index.js +8 -0
  244. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +11 -0
  245. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -0
  246. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +85 -0
  247. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts +11 -0
  248. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -0
  249. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +56 -0
  250. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts +11 -0
  251. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -0
  252. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +228 -0
  253. package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts +11 -0
  254. package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts.map +1 -0
  255. package/dist/server/src/services/gateway/request-handlers/tools-handler.js +79 -0
  256. package/dist/server/src/services/gateway/tool-list-generator.d.ts +23 -0
  257. package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -0
  258. package/dist/server/src/services/gateway/tool-list-generator.js +115 -0
  259. package/dist/server/src/services/gateway/types.d.ts +27 -0
  260. package/dist/server/src/services/gateway/types.d.ts.map +1 -0
  261. package/dist/server/src/services/gateway/types.js +4 -0
  262. package/dist/server/src/services/gateway.service.d.ts +7 -0
  263. package/dist/server/src/services/gateway.service.d.ts.map +1 -0
  264. package/dist/server/src/services/gateway.service.js +6 -0
  265. package/dist/server/src/services/hub-manager.service.d.ts +299 -0
  266. package/dist/server/src/services/hub-manager.service.d.ts.map +1 -0
  267. package/dist/server/src/services/hub-manager.service.js +413 -0
  268. package/dist/server/src/services/hub-tools/index.d.ts +10 -0
  269. package/dist/server/src/services/hub-tools/index.d.ts.map +1 -0
  270. package/dist/server/src/services/hub-tools/index.js +6 -0
  271. package/dist/server/src/services/hub-tools/resource-generator.d.ts +63 -0
  272. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -0
  273. package/dist/server/src/services/hub-tools/resource-generator.js +141 -0
  274. package/dist/server/src/services/hub-tools/server-selector.d.ts +63 -0
  275. package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -0
  276. package/dist/server/src/services/hub-tools/server-selector.js +108 -0
  277. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +47 -0
  278. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -0
  279. package/dist/server/src/services/hub-tools/system-tool-definitions.js +225 -0
  280. package/dist/server/src/services/hub-tools/tool-search.d.ts +85 -0
  281. package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -0
  282. package/dist/server/src/services/hub-tools/tool-search.js +115 -0
  283. package/dist/server/src/services/hub-tools/types.d.ts +42 -0
  284. package/dist/server/src/services/hub-tools/types.d.ts.map +1 -0
  285. package/dist/server/src/services/hub-tools/types.js +1 -0
  286. package/dist/server/src/services/hub-tools.service.d.ts +235 -0
  287. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -0
  288. package/dist/server/src/services/hub-tools.service.js +457 -0
  289. package/dist/server/src/services/log-storage.service.d.ts +177 -0
  290. package/dist/server/src/services/log-storage.service.d.ts.map +1 -0
  291. package/dist/server/src/services/log-storage.service.js +243 -0
  292. package/dist/server/src/services/mcp-connection-manager.d.ts +7 -0
  293. package/dist/server/src/services/mcp-connection-manager.d.ts.map +1 -0
  294. package/dist/server/src/services/mcp-connection-manager.js +6 -0
  295. package/dist/server/src/services/mcp-session-manager.d.ts +6 -0
  296. package/dist/server/src/services/mcp-session-manager.d.ts.map +1 -0
  297. package/dist/server/src/services/mcp-session-manager.js +4 -0
  298. package/dist/server/src/services/search/index.d.ts +5 -0
  299. package/dist/server/src/services/search/index.d.ts.map +1 -0
  300. package/dist/server/src/services/search/index.js +5 -0
  301. package/dist/server/src/services/search/search-cache.d.ts +132 -0
  302. package/dist/server/src/services/search/search-cache.d.ts.map +1 -0
  303. package/dist/server/src/services/search/search-cache.js +151 -0
  304. package/dist/server/src/services/search/search-core.service.d.ts +108 -0
  305. package/dist/server/src/services/search/search-core.service.d.ts.map +1 -0
  306. package/dist/server/src/services/search/search-core.service.js +187 -0
  307. package/dist/server/src/services/search/search-scorer.d.ts +54 -0
  308. package/dist/server/src/services/search/search-scorer.d.ts.map +1 -0
  309. package/dist/server/src/services/search/search-scorer.js +83 -0
  310. package/dist/server/src/services/search/types.d.ts +20 -0
  311. package/dist/server/src/services/search/types.d.ts.map +1 -0
  312. package/dist/server/src/services/search/types.js +1 -0
  313. package/dist/server/src/services/session/index.d.ts +6 -0
  314. package/dist/server/src/services/session/index.d.ts.map +1 -0
  315. package/dist/server/src/services/session/index.js +4 -0
  316. package/dist/server/src/services/session/session-manager.d.ts +352 -0
  317. package/dist/server/src/services/session/session-manager.d.ts.map +1 -0
  318. package/dist/server/src/services/session/session-manager.js +835 -0
  319. package/dist/server/src/services/session/types.d.ts +32 -0
  320. package/dist/server/src/services/session/types.d.ts.map +1 -0
  321. package/dist/server/src/services/session/types.js +1 -0
  322. package/dist/server/src/services/simple-search.service.d.ts +67 -0
  323. package/dist/server/src/services/simple-search.service.d.ts.map +1 -0
  324. package/dist/server/src/services/simple-search.service.js +82 -0
  325. package/dist/server/src/services/system-tool-handler.d.ts +10 -0
  326. package/dist/server/src/services/system-tool-handler.d.ts.map +1 -0
  327. package/dist/server/src/services/system-tool-handler.js +77 -0
  328. package/dist/server/src/utils/error-handler.d.ts +18 -0
  329. package/dist/server/src/utils/error-handler.d.ts.map +1 -0
  330. package/dist/server/src/utils/error-handler.js +59 -0
  331. package/dist/server/src/utils/format-utils.d.ts +23 -0
  332. package/dist/server/src/utils/format-utils.d.ts.map +1 -0
  333. package/dist/server/src/utils/format-utils.js +58 -0
  334. package/dist/server/src/utils/index.d.ts +2 -0
  335. package/dist/server/src/utils/index.d.ts.map +1 -0
  336. package/dist/server/src/utils/index.js +1 -0
  337. package/dist/server/src/utils/json-utils.d.ts +82 -0
  338. package/dist/server/src/utils/json-utils.d.ts.map +1 -0
  339. package/dist/server/src/utils/json-utils.js +204 -0
  340. package/dist/server/src/utils/log-rotator.d.ts +223 -0
  341. package/dist/server/src/utils/log-rotator.d.ts.map +1 -0
  342. package/dist/server/src/utils/log-rotator.js +306 -0
  343. package/dist/server/src/utils/logger/dev-logger.d.ts +39 -0
  344. package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -0
  345. package/dist/server/src/utils/logger/dev-logger.js +63 -0
  346. package/dist/server/src/utils/logger/index.d.ts +36 -0
  347. package/dist/server/src/utils/logger/index.d.ts.map +1 -0
  348. package/dist/server/src/utils/logger/index.js +46 -0
  349. package/dist/server/src/utils/logger/log-colors.d.ts +27 -0
  350. package/dist/server/src/utils/logger/log-colors.d.ts.map +1 -0
  351. package/dist/server/src/utils/logger/log-colors.js +41 -0
  352. package/dist/server/src/utils/logger/log-context.d.ts +13 -0
  353. package/dist/server/src/utils/logger/log-context.d.ts.map +1 -0
  354. package/dist/server/src/utils/logger/log-context.js +5 -0
  355. package/dist/server/src/utils/logger/log-formatter.d.ts +47 -0
  356. package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -0
  357. package/dist/server/src/utils/logger/log-formatter.js +150 -0
  358. package/dist/server/src/utils/logger/log-modules.d.ts +141 -0
  359. package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -0
  360. package/dist/server/src/utils/logger/log-modules.js +81 -0
  361. package/dist/server/src/utils/logger/log-output.d.ts +68 -0
  362. package/dist/server/src/utils/logger/log-output.d.ts.map +1 -0
  363. package/dist/server/src/utils/logger/log-output.js +320 -0
  364. package/dist/server/src/utils/logger/logger.d.ts +190 -0
  365. package/dist/server/src/utils/logger/logger.d.ts.map +1 -0
  366. package/dist/server/src/utils/logger/logger.js +350 -0
  367. package/dist/server/src/utils/logger.d.ts +12 -0
  368. package/dist/server/src/utils/logger.d.ts.map +1 -0
  369. package/dist/server/src/utils/logger.js +12 -0
  370. package/dist/server/src/utils/mcp-error-handler.d.ts +162 -0
  371. package/dist/server/src/utils/mcp-error-handler.d.ts.map +1 -0
  372. package/dist/server/src/utils/mcp-error-handler.js +270 -0
  373. package/dist/server/src/utils/port-checker.d.ts +16 -0
  374. package/dist/server/src/utils/port-checker.d.ts.map +1 -0
  375. package/dist/server/src/utils/port-checker.js +242 -0
  376. package/dist/server/src/utils/request-context.d.ts +71 -0
  377. package/dist/server/src/utils/request-context.d.ts.map +1 -0
  378. package/dist/server/src/utils/request-context.js +73 -0
  379. package/dist/server/src/utils/tool-args-parser.d.ts +17 -0
  380. package/dist/server/src/utils/tool-args-parser.d.ts.map +1 -0
  381. package/dist/server/src/utils/tool-args-parser.js +34 -0
  382. package/dist/server/src/utils/transports/sse-transport.d.ts +104 -0
  383. package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -0
  384. package/dist/server/src/utils/transports/sse-transport.js +189 -0
  385. package/dist/server/src/utils/transports/stdio-transport.d.ts +122 -0
  386. package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -0
  387. package/dist/server/src/utils/transports/stdio-transport.js +324 -0
  388. package/dist/server/src/utils/transports/streamable-http-transport.d.ts +146 -0
  389. package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -0
  390. package/dist/server/src/utils/transports/streamable-http-transport.js +212 -0
  391. package/dist/server/src/utils/transports/transport-factory.d.ts +26 -0
  392. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -0
  393. package/dist/server/src/utils/transports/transport-factory.js +104 -0
  394. package/dist/server/src/utils/transports/transport.interface.d.ts +35 -0
  395. package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -0
  396. package/dist/server/src/utils/transports/transport.interface.js +1 -0
  397. package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts +2 -0
  398. package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts.map +1 -0
  399. package/dist/server/tests/contract/mcp-protocol/initialize.test.js +103 -0
  400. package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts +2 -0
  401. package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts.map +1 -0
  402. package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +181 -0
  403. package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts +2 -0
  404. package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts.map +1 -0
  405. package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +155 -0
  406. package/dist/server/tests/evaluation/evaluation.test.d.ts +2 -0
  407. package/dist/server/tests/evaluation/evaluation.test.d.ts.map +1 -0
  408. package/dist/server/tests/evaluation/evaluation.test.js +102 -0
  409. package/dist/server/tests/helpers/sdk-test-helpers.d.ts +32 -0
  410. package/dist/server/tests/helpers/sdk-test-helpers.d.ts.map +1 -0
  411. package/dist/server/tests/helpers/sdk-test-helpers.js +82 -0
  412. package/dist/server/tests/integration/api/gateway.test.d.ts +2 -0
  413. package/dist/server/tests/integration/api/gateway.test.d.ts.map +1 -0
  414. package/dist/server/tests/integration/api/gateway.test.js +366 -0
  415. package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts +2 -0
  416. package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts.map +1 -0
  417. package/dist/server/tests/integration/gateway/fault-tolerance.test.js +109 -0
  418. package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts +2 -0
  419. package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts.map +1 -0
  420. package/dist/server/tests/integration/gateway/mcp-connection.test.js +149 -0
  421. package/dist/server/tests/server.test.d.ts +2 -0
  422. package/dist/server/tests/server.test.d.ts.map +1 -0
  423. package/dist/server/tests/server.test.js +95 -0
  424. package/dist/server/tests/setup.d.ts +7 -0
  425. package/dist/server/tests/setup.d.ts.map +1 -0
  426. package/dist/server/tests/setup.js +53 -0
  427. package/dist/server/tests/types/logger-test-helpers.d.ts +17 -0
  428. package/dist/server/tests/types/logger-test-helpers.d.ts.map +1 -0
  429. package/dist/server/tests/types/logger-test-helpers.js +4 -0
  430. package/dist/server/tests/types/test-helpers.d.ts +27 -0
  431. package/dist/server/tests/types/test-helpers.d.ts.map +1 -0
  432. package/dist/server/tests/types/test-helpers.js +4 -0
  433. package/dist/server/tests/unit/cli/basic-cli.test.d.ts +2 -0
  434. package/dist/server/tests/unit/cli/basic-cli.test.d.ts.map +1 -0
  435. package/dist/server/tests/unit/cli/basic-cli.test.js +33 -0
  436. package/dist/server/tests/unit/cli/cli.test.d.ts +2 -0
  437. package/dist/server/tests/unit/cli/cli.test.d.ts.map +1 -0
  438. package/dist/server/tests/unit/cli/cli.test.js +17 -0
  439. package/dist/server/tests/unit/cli/commands.test.d.ts +2 -0
  440. package/dist/server/tests/unit/cli/commands.test.d.ts.map +1 -0
  441. package/dist/server/tests/unit/cli/commands.test.js +75 -0
  442. package/dist/server/tests/unit/cli/server.test.d.ts +2 -0
  443. package/dist/server/tests/unit/cli/server.test.d.ts.map +1 -0
  444. package/dist/server/tests/unit/cli/server.test.js +68 -0
  445. package/dist/server/tests/unit/server/runner.test.d.ts +2 -0
  446. package/dist/server/tests/unit/server/runner.test.d.ts.map +1 -0
  447. package/dist/server/tests/unit/server/runner.test.js +488 -0
  448. package/dist/server/tests/unit/server/setup.d.ts +2 -0
  449. package/dist/server/tests/unit/server/setup.d.ts.map +1 -0
  450. package/dist/server/tests/unit/server/setup.js +21 -0
  451. package/dist/server/tests/unit/services/gateway-logging.test.d.ts +2 -0
  452. package/dist/server/tests/unit/services/gateway-logging.test.d.ts.map +1 -0
  453. package/dist/server/tests/unit/services/gateway-logging.test.js +47 -0
  454. package/dist/server/tests/unit/services/hub-manager-service.test.d.ts +2 -0
  455. package/dist/server/tests/unit/services/hub-manager-service.test.d.ts.map +1 -0
  456. package/dist/server/tests/unit/services/hub-manager-service.test.js +140 -0
  457. package/dist/server/tests/unit/services/hub-manager.test.d.ts +2 -0
  458. package/dist/server/tests/unit/services/hub-manager.test.d.ts.map +1 -0
  459. package/dist/server/tests/unit/services/hub-manager.test.js +98 -0
  460. package/dist/server/tests/unit/services/hub-tools.service.test.d.ts +2 -0
  461. package/dist/server/tests/unit/services/hub-tools.service.test.d.ts.map +1 -0
  462. package/dist/server/tests/unit/services/hub-tools.service.test.js +674 -0
  463. package/dist/server/tests/unit/services/search/search-cache.test.d.ts +2 -0
  464. package/dist/server/tests/unit/services/search/search-cache.test.d.ts.map +1 -0
  465. package/dist/server/tests/unit/services/search/search-cache.test.js +58 -0
  466. package/dist/server/tests/unit/services/search/search-core.service.test.d.ts +2 -0
  467. package/dist/server/tests/unit/services/search/search-core.service.test.d.ts.map +1 -0
  468. package/dist/server/tests/unit/services/search/search-core.service.test.js +84 -0
  469. package/dist/server/tests/unit/services/search/search-scorer.test.d.ts +2 -0
  470. package/dist/server/tests/unit/services/search/search-scorer.test.d.ts.map +1 -0
  471. package/dist/server/tests/unit/services/search/search-scorer.test.js +97 -0
  472. package/dist/server/tests/unit/services/session-manager.test.d.ts +2 -0
  473. package/dist/server/tests/unit/services/session-manager.test.d.ts.map +1 -0
  474. package/dist/server/tests/unit/services/session-manager.test.js +481 -0
  475. package/dist/server/tests/unit/utils/config.test.d.ts +2 -0
  476. package/dist/server/tests/unit/utils/config.test.d.ts.map +1 -0
  477. package/dist/server/tests/unit/utils/config.test.js +634 -0
  478. package/dist/server/tests/unit/utils/json-utils.test.d.ts +2 -0
  479. package/dist/server/tests/unit/utils/json-utils.test.d.ts.map +1 -0
  480. package/dist/server/tests/unit/utils/json-utils.test.js +296 -0
  481. package/dist/server/tests/unit/utils/log-rotator.test.d.ts +2 -0
  482. package/dist/server/tests/unit/utils/log-rotator.test.d.ts.map +1 -0
  483. package/dist/server/tests/unit/utils/log-rotator.test.js +296 -0
  484. package/dist/server/tests/unit/utils/logger.test.d.ts +2 -0
  485. package/dist/server/tests/unit/utils/logger.test.d.ts.map +1 -0
  486. package/dist/server/tests/unit/utils/logger.test.js +462 -0
  487. package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts +2 -0
  488. package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts.map +1 -0
  489. package/dist/server/tests/unit/utils/mcp-error-handler.test.js +163 -0
  490. package/dist/server/tests/unit/utils/request-context.test.d.ts +2 -0
  491. package/dist/server/tests/unit/utils/request-context.test.d.ts.map +1 -0
  492. package/dist/server/tests/unit/utils/request-context.test.js +82 -0
  493. package/dist/server/vite.config.d.ts +3 -0
  494. package/dist/server/vite.config.d.ts.map +1 -0
  495. package/dist/server/vite.config.js +160 -0
  496. package/dist/server/vitest.config.d.ts +3 -0
  497. package/dist/server/vitest.config.d.ts.map +1 -0
  498. package/dist/server/vitest.config.js +53 -0
  499. package/package.json +113 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Connection service module index.
3
+ */
4
+ export { McpConnectionManager, mcpConnectionManager } from './connection-manager.js';
5
+ export type { ServerStatus } from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Connection service module index.
3
+ */
4
+ export { McpConnectionManager, mcpConnectionManager } from './connection-manager.js';
@@ -0,0 +1,122 @@
1
+ import type { Tool } from '../../../shared/models/tool.model.js';
2
+ /**
3
+ * Manages tool caching for MCP connections at both server ID and server name levels.
4
+ *
5
+ * This class encapsulates all tool cache operations, providing both server ID-level
6
+ * and server name-level caching for efficient tool lookup while maintaining data
7
+ * consistency across multiple instances of the same server.
8
+ */
9
+ export declare class ToolCache {
10
+ private toolCache;
11
+ private serverNameToolCache;
12
+ private nameToIdMap;
13
+ /**
14
+ * Sets the name-to-ID mapping for server name resolution.
15
+ *
16
+ * @param serverName - The server name
17
+ * @param serverId - The corresponding server instance ID
18
+ */
19
+ setNameMapping(serverName: string, serverId: string): void;
20
+ /**
21
+ * Removes the name-to-ID mapping for a server.
22
+ *
23
+ * @param serverName - The server name to remove
24
+ */
25
+ removeNameMapping(serverName: string): void;
26
+ /**
27
+ * Removes name mapping by server ID.
28
+ *
29
+ * @param serverId - The server ID to remove
30
+ */
31
+ removeNameMappingById(serverId: string): void;
32
+ /**
33
+ * Gets the server ID for a given server name.
34
+ *
35
+ * @param name - The server name
36
+ * @returns The server ID or undefined if not found
37
+ */
38
+ getServerIdByName(name: string): string | undefined;
39
+ /**
40
+ * Gets the server name for a given server ID.
41
+ *
42
+ * @param serverId - The server ID
43
+ * @returns The server name or 'unknown' if not found
44
+ */
45
+ getServerNameById(serverId: string): string;
46
+ /**
47
+ * Sets tools for a specific server instance and updates both caches.
48
+ *
49
+ * @param serverId - The server instance ID
50
+ * @param tools - The tools to cache
51
+ * @param serverName - Optional server name for name-level cache update
52
+ */
53
+ setTools(serverId: string, tools: Tool[], serverName?: string): void;
54
+ /**
55
+ * Gets tools for a specific server instance.
56
+ *
57
+ * @param serverId - The server instance ID
58
+ * @returns Array of tools, empty if none
59
+ */
60
+ getTools(serverId: string): Tool[];
61
+ /**
62
+ * Gets tools by server name from the server name-level cache.
63
+ *
64
+ * @param serverName - The server name
65
+ * @returns Array of tools, empty if none
66
+ */
67
+ getToolsByServerName(serverName: string): Tool[];
68
+ /**
69
+ * Gets a specific tool by name from the server name-level cache.
70
+ *
71
+ * @param serverName - The server name
72
+ * @param toolName - The tool name to find
73
+ * @returns The tool object or undefined if not found
74
+ */
75
+ getTool(serverName: string, toolName: string): Tool | undefined;
76
+ /**
77
+ * Gets all tools from all connected server instances.
78
+ *
79
+ * @returns Array of all tools from all servers
80
+ */
81
+ getAllTools(): Tool[];
82
+ /**
83
+ * Gets all tools from the server name-level cache.
84
+ *
85
+ * @returns Array of all tools aggregated by server name
86
+ */
87
+ getAllToolsByServerName(): Tool[];
88
+ /**
89
+ * Gets all tool cache entries.
90
+ *
91
+ * @returns Array of [serverId, tools] tuples
92
+ */
93
+ getToolCacheEntries(): [string, Tool[]][];
94
+ /**
95
+ * Returns an iterator over the tool cache entries for backward compatibility.
96
+ * This mimics the Map.entries() method signature.
97
+ *
98
+ * @returns Iterator of [serverId, tools] tuples
99
+ * @deprecated Use getToolCacheEntries() instead
100
+ */
101
+ entries(): IterableIterator<[string, Tool[]]>;
102
+ /**
103
+ * Clears tools for a specific server and updates both caches.
104
+ *
105
+ * @param serverId - The server instance ID
106
+ */
107
+ clearTools(serverId: string): void;
108
+ /**
109
+ * Updates the server name-level cache for a specific server.
110
+ * This aggregates tools from all instances of the same server name.
111
+ *
112
+ * @param serverName - The server name to update
113
+ */
114
+ private updateServerNameCache;
115
+ /**
116
+ * Backward compatibility: direct access to the underlying toolCache Map.
117
+ * This is maintained for backward compatibility with code that accesses
118
+ * mcpConnectionManager.toolCache directly.
119
+ */
120
+ get internalToolCache(): Map<string, Tool[]>;
121
+ }
122
+ //# sourceMappingURL=tool-cache.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,202 @@
1
+ import { logger, LOG_MODULES } from '../../utils/logger.js';
2
+ /**
3
+ * Manages tool caching for MCP connections at both server ID and server name levels.
4
+ *
5
+ * This class encapsulates all tool cache operations, providing both server ID-level
6
+ * and server name-level caching for efficient tool lookup while maintaining data
7
+ * consistency across multiple instances of the same server.
8
+ */
9
+ export class ToolCache {
10
+ toolCache = new Map();
11
+ serverNameToolCache = new Map();
12
+ nameToIdMap = new Map();
13
+ /**
14
+ * Sets the name-to-ID mapping for server name resolution.
15
+ *
16
+ * @param serverName - The server name
17
+ * @param serverId - The corresponding server instance ID
18
+ */
19
+ setNameMapping(serverName, serverId) {
20
+ this.nameToIdMap.set(serverName, serverId);
21
+ }
22
+ /**
23
+ * Removes the name-to-ID mapping for a server.
24
+ *
25
+ * @param serverName - The server name to remove
26
+ */
27
+ removeNameMapping(serverName) {
28
+ this.nameToIdMap.delete(serverName);
29
+ }
30
+ /**
31
+ * Removes name mapping by server ID.
32
+ *
33
+ * @param serverId - The server ID to remove
34
+ */
35
+ removeNameMappingById(serverId) {
36
+ for (const [name, id] of this.nameToIdMap.entries()) {
37
+ if (id === serverId) {
38
+ this.nameToIdMap.delete(name);
39
+ break;
40
+ }
41
+ }
42
+ }
43
+ /**
44
+ * Gets the server ID for a given server name.
45
+ *
46
+ * @param name - The server name
47
+ * @returns The server ID or undefined if not found
48
+ */
49
+ getServerIdByName(name) {
50
+ return this.nameToIdMap.get(name);
51
+ }
52
+ /**
53
+ * Gets the server name for a given server ID.
54
+ *
55
+ * @param serverId - The server ID
56
+ * @returns The server name or 'unknown' if not found
57
+ */
58
+ getServerNameById(serverId) {
59
+ for (const [name, id] of this.nameToIdMap.entries()) {
60
+ if (id === serverId) {
61
+ return name;
62
+ }
63
+ }
64
+ return 'unknown';
65
+ }
66
+ /**
67
+ * Sets tools for a specific server instance and updates both caches.
68
+ *
69
+ * @param serverId - The server instance ID
70
+ * @param tools - The tools to cache
71
+ * @param serverName - Optional server name for name-level cache update
72
+ */
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);
85
+ }
86
+ /**
87
+ * Gets tools for a specific server instance.
88
+ *
89
+ * @param serverId - The server instance ID
90
+ * @returns Array of tools, empty if none
91
+ */
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);
96
+ return tools;
97
+ }
98
+ /**
99
+ * Gets tools by server name from the server name-level cache.
100
+ *
101
+ * @param serverName - The server name
102
+ * @returns Array of tools, empty if none
103
+ */
104
+ getToolsByServerName(serverName) {
105
+ return this.serverNameToolCache.get(serverName) || [];
106
+ }
107
+ /**
108
+ * Gets a specific tool by name from the server name-level cache.
109
+ *
110
+ * @param serverName - The server name
111
+ * @param toolName - The tool name to find
112
+ * @returns The tool object or undefined if not found
113
+ */
114
+ getTool(serverName, toolName) {
115
+ const tools = this.serverNameToolCache.get(serverName);
116
+ return tools?.find((t) => t.name === toolName);
117
+ }
118
+ /**
119
+ * Gets all tools from all connected server instances.
120
+ *
121
+ * @returns Array of all tools from all servers
122
+ */
123
+ getAllTools() {
124
+ const allTools = [];
125
+ for (const tools of this.toolCache.values()) {
126
+ allTools.push(...tools);
127
+ }
128
+ return allTools;
129
+ }
130
+ /**
131
+ * Gets all tools from the server name-level cache.
132
+ *
133
+ * @returns Array of all tools aggregated by server name
134
+ */
135
+ getAllToolsByServerName() {
136
+ const allTools = [];
137
+ for (const tools of this.serverNameToolCache.values()) {
138
+ allTools.push(...tools);
139
+ }
140
+ return allTools;
141
+ }
142
+ /**
143
+ * Gets all tool cache entries.
144
+ *
145
+ * @returns Array of [serverId, tools] tuples
146
+ */
147
+ getToolCacheEntries() {
148
+ return Array.from(this.toolCache.entries());
149
+ }
150
+ /**
151
+ * Returns an iterator over the tool cache entries for backward compatibility.
152
+ * This mimics the Map.entries() method signature.
153
+ *
154
+ * @returns Iterator of [serverId, tools] tuples
155
+ * @deprecated Use getToolCacheEntries() instead
156
+ */
157
+ entries() {
158
+ return this.toolCache.entries();
159
+ }
160
+ /**
161
+ * Clears tools for a specific server and updates both caches.
162
+ *
163
+ * @param serverId - The server instance ID
164
+ */
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);
172
+ }
173
+ /**
174
+ * Updates the server name-level cache for a specific server.
175
+ * This aggregates tools from all instances of the same server name.
176
+ *
177
+ * @param serverName - The server name to update
178
+ */
179
+ updateServerNameCache(serverName) {
180
+ const allToolsForServer = [];
181
+ for (const [id, cachedTools] of this.toolCache.entries()) {
182
+ const instanceServerName = this.getServerNameById(id);
183
+ if (instanceServerName === serverName) {
184
+ allToolsForServer.push(...cachedTools);
185
+ }
186
+ }
187
+ if (allToolsForServer.length > 0) {
188
+ this.serverNameToolCache.set(serverName, allToolsForServer);
189
+ }
190
+ else {
191
+ this.serverNameToolCache.delete(serverName);
192
+ }
193
+ }
194
+ /**
195
+ * Backward compatibility: direct access to the underlying toolCache Map.
196
+ * This is maintained for backward compatibility with code that accesses
197
+ * mcpConnectionManager.toolCache directly.
198
+ */
199
+ get internalToolCache() {
200
+ return this.toolCache;
201
+ }
202
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Represents the connection status and metadata of an MCP server instance.
3
+ *
4
+ * This interface tracks the operational state of connected MCP servers,
5
+ * including connection status, error information, resource counts, and
6
+ * process-level details for stdio-based servers.
7
+ *
8
+ * @interface ServerStatus
9
+ * @property {boolean} connected - Whether the server is currently connected
10
+ * @property {string} [error] - Error message if connection failed or was lost
11
+ * @property {number} lastCheck - Timestamp (milliseconds) of last status check
12
+ * @property {number} toolsCount - Number of tools available from this server
13
+ * @property {number} resourcesCount - Number of resources available from this server
14
+ * @property {number} [pid] - Process ID for stdio-based servers
15
+ * @property {number} [startTime] - Server startup timestamp (milliseconds)
16
+ * @property {string} [version] - Server version string from MCP protocol
17
+ * @property {string} [hash] - Unique identifier hash for the server instance
18
+ */
19
+ export interface ServerStatus {
20
+ connected: boolean;
21
+ error?: string;
22
+ lastCheck: number;
23
+ toolsCount: number;
24
+ resourcesCount: number;
25
+ pid?: number;
26
+ startTime?: number;
27
+ version?: string;
28
+ hash?: string;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Event Bus Service
3
+ *
4
+ * Centralized event management system for decoupled communication between different modules
5
+ * throughout the MCP Hub Lite application. This service implements the publish-subscribe
6
+ * pattern to enable loose coupling between components while maintaining efficient
7
+ * event-driven architecture.
8
+ *
9
+ * The event bus handles various types of events including server status changes,
10
+ * connection state updates, tool registry changes, log entries, configuration updates,
11
+ * and system health notifications. It provides thread-safe operations with error
12
+ * handling for listener callbacks to prevent cascading failures.
13
+ *
14
+ * Usage scenarios:
15
+ * - Server management modules publish server lifecycle events
16
+ * - Connection managers notify about connection state changes
17
+ * - UI components subscribe to relevant events for real-time updates
18
+ * - Logging services broadcast log entries to interested parties
19
+ * - Configuration services announce configuration changes
20
+ *
21
+ * All public methods are safe to call from any part of the application, and the service
22
+ * automatically manages memory by cleaning up empty event type entries when all listeners
23
+ * are unsubscribed.
24
+ */
25
+ import type { EventData } from '../models/event.model.js';
26
+ /**
27
+ * Interface representing a published event with its type and associated data.
28
+ *
29
+ * @interface EventBusEvent
30
+ * @property {string} type - The event type identifier (e.g., 'server-connected', 'tools-updated')
31
+ * @property {EventData} data - The event payload containing relevant data for the event
32
+ */
33
+ export interface EventBusEvent {
34
+ type: string;
35
+ data: EventData;
36
+ }
37
+ export declare class EventBusService {
38
+ private listeners;
39
+ /**
40
+ * Publishes an event to all subscribed listeners for the specified event type.
41
+ *
42
+ * This method notifies all registered listeners for the given event type by
43
+ * invoking their callback functions with the provided event data. Each listener
44
+ * is executed in a try-catch block to prevent errors in one listener from
45
+ * affecting other listeners or the publisher.
46
+ *
47
+ * @param {string} eventType - The type of event to publish (e.g., EventTypes.SERVER_CONNECTED)
48
+ * @param {EventData} data - The event payload data to be passed to all listeners
49
+ * @throws {Error} - Never throws; errors in listeners are caught and logged to console.error
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * eventBus.publish(EventTypes.SERVER_CONNECTED, { serverId: 'server-1', timestamp: Date.now() });
54
+ * ```
55
+ */
56
+ publish(eventType: string, data: EventData): void;
57
+ /**
58
+ * Subscribes a listener function to receive events of the specified type.
59
+ *
60
+ * Registers the provided listener callback to be invoked whenever an event
61
+ * of the specified type is published. Returns an unsubscribe function that
62
+ * can be called to remove the listener registration.
63
+ *
64
+ * The service automatically creates a new listener set for the event type
65
+ * if it doesn't already exist, ensuring safe concurrent access.
66
+ *
67
+ * @param {string} eventType - The event type to subscribe to (e.g., EventTypes.TOOLS_UPDATED)
68
+ * @param {(data: EventData) => void} listener - The callback function to invoke when the event is published
69
+ * @returns {() => void} A function that, when called, unsubscribes the listener from the event type
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const unsubscribe = eventBus.subscribe(EventTypes.SERVER_DISCONNECTED, (data) => {
74
+ * console.log('Server disconnected:', data.serverId);
75
+ * });
76
+ * // Later, to unsubscribe:
77
+ * unsubscribe();
78
+ * ```
79
+ */
80
+ subscribe(eventType: string, listener: (data: EventData) => void): () => void;
81
+ /**
82
+ * Unsubscribes a listener from receiving events of the specified type.
83
+ *
84
+ * Removes the specified listener from the registry for the given event type.
85
+ * If this was the last listener for the event type, the entire event type
86
+ * entry is removed from the registry to free memory.
87
+ *
88
+ * This method is private and should only be called internally by the
89
+ * unsubscribe function returned by the subscribe method.
90
+ *
91
+ * @param {string} eventType - The event type to unsubscribe from
92
+ * @param {(data: EventData) => void} listener - The listener function to remove
93
+ * @access private
94
+ */
95
+ private unsubscribe;
96
+ /**
97
+ * Unsubscribes all listeners from all event types.
98
+ *
99
+ * Clears the entire listener registry, effectively removing all subscriptions
100
+ * across all event types. This is typically used during application shutdown
101
+ * or when a complete reset of the event system is required.
102
+ *
103
+ * @returns {void}
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * // Clean up all event subscriptions before application shutdown
108
+ * eventBus.unsubscribeAll();
109
+ * ```
110
+ */
111
+ unsubscribeAll(): void;
112
+ /**
113
+ * Retrieves all currently registered event types that have active listeners.
114
+ *
115
+ * Returns an array of event type strings that currently have at least one
116
+ * subscribed listener. This can be useful for debugging, monitoring, or
117
+ * introspection purposes.
118
+ *
119
+ * @returns {string[]} Array of event type strings with active listeners
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const activeEventTypes = eventBus.getEventTypes();
124
+ * console.log('Active event types:', activeEventTypes);
125
+ * ```
126
+ */
127
+ getEventTypes(): string[];
128
+ /**
129
+ * Gets the number of active listeners subscribed to a specific event type.
130
+ *
131
+ * Returns the count of listener functions currently registered for the
132
+ * specified event type. Returns 0 if no listeners are registered for
133
+ * the event type or if the event type doesn't exist.
134
+ *
135
+ * @param {string} eventType - The event type to check listener count for
136
+ * @returns {number} The number of active listeners for the event type (0 if none)
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * const listenerCount = eventBus.getListenerCount(EventTypes.LOG_ENTRY);
141
+ * console.log(`There are ${listenerCount} listeners for log entries`);
142
+ * ```
143
+ */
144
+ getListenerCount(eventType: string): number;
145
+ }
146
+ export declare const EventTypes: {
147
+ readonly SERVER_STATUS_CHANGE: "server-status";
148
+ readonly SERVER_CONNECTED: "server-connected";
149
+ readonly SERVER_DISCONNECTED: "server-disconnected";
150
+ readonly SERVER_ADDED: "server-added";
151
+ readonly SERVER_UPDATED: "server-updated";
152
+ readonly SERVER_DELETED: "server-deleted";
153
+ readonly SERVER_INSTANCE_ADDED: "server-instance-added";
154
+ readonly SERVER_INSTANCE_UPDATED: "server-instance-updated";
155
+ readonly SERVER_INSTANCE_DELETED: "server-instance-deleted";
156
+ readonly TOOLS_UPDATED: "tools";
157
+ readonly TOOL_CALL_STARTED: "tool-call-started";
158
+ readonly TOOL_CALL_COMPLETED: "tool-call-completed";
159
+ readonly TOOL_CALL_ERROR: "tool-call-error";
160
+ readonly RESOURCES_UPDATED: "resources";
161
+ readonly LOG_ENTRY: "log";
162
+ readonly LOGS_CLEARED: "logs-cleared";
163
+ readonly SYSTEM_HEALTH: "system-health";
164
+ readonly CONFIGURATION_UPDATED: "configuration-updated";
165
+ readonly CLIENT_CONNECTED: "client-connected";
166
+ readonly CLIENT_DISCONNECTED: "client-disconnected";
167
+ };
168
+ export declare const eventBus: EventBusService;
169
+ //# sourceMappingURL=event-bus.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.service.d.ts","sourceRoot":"","sources":["../../../../src/services/event-bus.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAqD;IAEtE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAajD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAU7E;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,IAAI;IAItB;;;;;;;;;;;;;;OAcG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAI5C;AAGD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;CAkCb,CAAC;AAGX,eAAO,MAAM,QAAQ,iBAAwB,CAAC"}