@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,243 @@
1
+ import { logger, LOG_MODULES } from '../utils/logger.js';
2
+ import { eventBus, EventTypes } from './event-bus.service.js';
3
+ /**
4
+ * Service for managing and storing log entries for MCP servers.
5
+ *
6
+ * This service provides centralized log storage with memory-efficient management,
7
+ * real-time event notifications, and query capabilities for debugging and monitoring
8
+ * MCP server activities. It maintains separate log streams for each server identified
9
+ * by their unique server ID and supports configurable log retention limits.
10
+ *
11
+ * Key features:
12
+ * - Memory-efficient log storage with automatic cleanup
13
+ * - Real-time log event publishing via EventBus
14
+ * - Listener registration for immediate log notifications
15
+ * - Queryable log retrieval with filtering and pagination
16
+ * - Configurable maximum log entries per server to prevent memory leaks
17
+ *
18
+ * Usage scenarios:
19
+ * - Debugging MCP server communication issues
20
+ * - Monitoring server activity and status changes
21
+ * - Providing log data for UI log viewers
22
+ * - Supporting audit trails for server operations
23
+ */
24
+ export class LogStorageService {
25
+ serverLogs = new Map();
26
+ maxLogsPerServer = 1000; // Configurable maximum number of log entries
27
+ logListeners = new Map();
28
+ /**
29
+ * Appends a new log entry for the specified server.
30
+ *
31
+ * Creates a timestamped log entry with the provided level and message,
32
+ * stores it in memory, and notifies all registered listeners and the
33
+ * global event bus about the new log entry.
34
+ *
35
+ * @param serverId - The unique identifier of the MCP server to log for
36
+ * @param level - The log level (e.g., 'debug', 'info', 'warn', 'error')
37
+ * @param message - The log message content (will be trimmed of whitespace)
38
+ * @returns The created LogEntry object containing timestamp, level, and message
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const logEntry = logStorage.append('server-123', 'info', 'Server connected successfully');
43
+ * console.log(logEntry.timestamp); // Current timestamp in milliseconds
44
+ * ```
45
+ */
46
+ append(serverId, level, message) {
47
+ const logEntry = {
48
+ timestamp: Date.now(),
49
+ level,
50
+ message: message.trim()
51
+ };
52
+ if (!this.serverLogs.has(serverId)) {
53
+ this.serverLogs.set(serverId, []);
54
+ }
55
+ const logs = this.serverLogs.get(serverId);
56
+ logs.push(logEntry);
57
+ // Limit log entries to prevent memory leaks
58
+ if (logs.length > this.maxLogsPerServer) {
59
+ logs.splice(0, logs.length - this.maxLogsPerServer);
60
+ }
61
+ // Notify listeners
62
+ this.notifyListeners(serverId, logEntry);
63
+ // Publish log event
64
+ eventBus.publish(EventTypes.LOG_ENTRY, {
65
+ serverId,
66
+ logs: [logEntry]
67
+ });
68
+ return logEntry;
69
+ }
70
+ /**
71
+ * Retrieves log entries for the specified server with optional filtering and pagination.
72
+ *
73
+ * Returns a filtered and paginated subset of log entries based on the provided query options.
74
+ * The method supports filtering by log level, timestamp range, and pagination parameters.
75
+ *
76
+ * @param serverId - The unique identifier of the MCP server to retrieve logs for
77
+ * @param options - Optional query parameters for filtering and pagination
78
+ * @param options.level - Filter logs by specific log level (e.g., 'error', 'warn')
79
+ * @param options.since - Filter logs with timestamps greater than or equal to this value (milliseconds since epoch)
80
+ * @param options.offset - Number of log entries to skip (for pagination, default: 0)
81
+ * @param options.limit - Maximum number of log entries to return (default: all matching entries)
82
+ * @returns Array of LogEntry objects matching the query criteria, empty array if no logs exist
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * // Get last 10 error logs
87
+ * const errorLogs = logStorage.getLogs('server-123', { level: 'error', limit: 10 });
88
+ *
89
+ * // Get logs from the last hour
90
+ * const recentLogs = logStorage.getLogs('server-123', { since: Date.now() - 3600000 });
91
+ *
92
+ * // Get logs with pagination
93
+ * const paginatedLogs = logStorage.getLogs('server-123', { offset: 20, limit: 10 });
94
+ * ```
95
+ */
96
+ getLogs(serverId, options) {
97
+ let logs = this.serverLogs.get(serverId) || [];
98
+ // Filter by level
99
+ if (options?.level) {
100
+ logs = logs.filter((log) => log.level === options.level);
101
+ }
102
+ // Filter by time
103
+ if (options?.since != null) {
104
+ const since = options.since;
105
+ logs = logs.filter((log) => log.timestamp >= since);
106
+ }
107
+ // Pagination
108
+ const offset = options?.offset || 0;
109
+ const limit = options?.limit || logs.length;
110
+ return logs.slice(offset, offset + limit);
111
+ }
112
+ /**
113
+ * Clears all log entries for the specified server.
114
+ *
115
+ * Removes all stored log entries for the given server ID, effectively resetting
116
+ * the log history for that server. This operation is immediate and cannot be undone.
117
+ *
118
+ * @param serverId - The unique identifier of the MCP server to clear logs for
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * // Clear all logs for a specific server
123
+ * logStorage.clearLogs('server-123');
124
+ * ```
125
+ */
126
+ clearLogs(serverId) {
127
+ this.serverLogs.set(serverId, []);
128
+ }
129
+ /**
130
+ * Gets the total number of log entries stored for the specified server.
131
+ *
132
+ * @param serverId - The unique identifier of the MCP server to get log count for
133
+ * @returns The number of log entries stored for the server, or 0 if no logs exist
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const logCount = logStorage.getLogCount('server-123');
138
+ * console.log(`Server has ${logCount} log entries`);
139
+ * ```
140
+ */
141
+ getLogCount(serverId) {
142
+ return this.serverLogs.get(serverId)?.length || 0;
143
+ }
144
+ /**
145
+ * Sets the maximum number of log entries to store per server.
146
+ *
147
+ * Configures the memory limit for log storage and immediately trims existing logs
148
+ * for all servers that exceed the new limit. This helps prevent memory leaks in
149
+ * long-running applications with high log volume.
150
+ *
151
+ * @param max - The maximum number of log entries to store per server (must be positive)
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * // Limit logs to 500 entries per server
156
+ * logStorage.setMaxLogsPerServer(500);
157
+ * ```
158
+ */
159
+ setMaxLogsPerServer(max) {
160
+ this.maxLogsPerServer = max;
161
+ // Trim logs for all servers
162
+ for (const [serverId, logs] of this.serverLogs.entries()) {
163
+ if (logs.length > max) {
164
+ this.serverLogs.set(serverId, logs.slice(-max));
165
+ }
166
+ }
167
+ }
168
+ /**
169
+ * Adds a listener function that will be called whenever a new log entry is appended for the specified server.
170
+ *
171
+ * Listeners are called synchronously when new logs are added and should handle errors gracefully
172
+ * as exceptions are caught and logged but will not prevent other listeners from being called.
173
+ *
174
+ * @param serverId - The unique identifier of the MCP server to listen for logs
175
+ * @param listener - Function to be called with each new LogEntry for the server
176
+ *
177
+ * @example
178
+ * ```typescript
179
+ * const listener = (log: LogEntry) => {
180
+ * console.log(`New log for server: ${log.message}`);
181
+ * };
182
+ * logStorage.addLogListener('server-123', listener);
183
+ * ```
184
+ */
185
+ addLogListener(serverId, listener) {
186
+ if (!this.logListeners.has(serverId)) {
187
+ this.logListeners.set(serverId, []);
188
+ }
189
+ this.logListeners.get(serverId).push(listener);
190
+ }
191
+ /**
192
+ * Removes a previously registered log listener for the specified server.
193
+ *
194
+ * @param serverId - The unique identifier of the MCP server to remove the listener from
195
+ * @param listener - The listener function to remove (must be the exact same function reference)
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * // Remove the listener
200
+ * logStorage.removeLogListener('server-123', listener);
201
+ * ```
202
+ */
203
+ removeLogListener(serverId, listener) {
204
+ const listeners = this.logListeners.get(serverId);
205
+ if (listeners) {
206
+ const index = listeners.indexOf(listener);
207
+ if (index !== -1) {
208
+ listeners.splice(index, 1);
209
+ }
210
+ }
211
+ }
212
+ /**
213
+ * Notify listeners
214
+ */
215
+ notifyListeners(serverId, log) {
216
+ const listeners = this.logListeners.get(serverId);
217
+ if (listeners) {
218
+ listeners.forEach((listener) => {
219
+ try {
220
+ listener(log);
221
+ }
222
+ catch (error) {
223
+ logger.error(`Error in log listener for server ${serverId}:`, error, LOG_MODULES.dynamic(serverId));
224
+ }
225
+ });
226
+ }
227
+ }
228
+ /**
229
+ * Gets an array of all server IDs that currently have stored log entries.
230
+ *
231
+ * @returns Array of server ID strings that have logs, empty array if no servers have logs
232
+ *
233
+ * @example
234
+ * ```typescript
235
+ * const serverIds = logStorage.getServersWithLogs();
236
+ * console.log(`Servers with logs: ${serverIds.join(', ')}`);
237
+ * ```
238
+ */
239
+ getServersWithLogs() {
240
+ return Array.from(this.serverLogs.keys());
241
+ }
242
+ }
243
+ export const logStorage = new LogStorageService();
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @deprecated This file is now a thin wrapper. Please import from './connection/index.js' instead.
3
+ * MCP Connection Manager - Connection management for MCP servers.
4
+ */
5
+ export { McpConnectionManager, mcpConnectionManager } from './connection/index.js';
6
+ export type { ServerStatus } from './connection/index.js';
7
+ //# sourceMappingURL=mcp-connection-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-connection-manager.d.ts","sourceRoot":"","sources":["../../../../src/services/mcp-connection-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @deprecated This file is now a thin wrapper. Please import from './connection/index.js' instead.
3
+ * MCP Connection Manager - Connection management for MCP servers.
4
+ */
5
+ // Re-export everything from the new modular implementation
6
+ export { McpConnectionManager, mcpConnectionManager } from './connection/index.js';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @deprecated This file is now a thin wrapper. Please import from './session/index.js' instead.
3
+ */
4
+ export { McpSessionManager, mcpSessionManager } from './session/index.js';
5
+ export type { TransportWithWebStandard, Session } from './session/types.js';
6
+ //# sourceMappingURL=mcp-session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-session-manager.d.ts","sourceRoot":"","sources":["../../../../src/services/mcp-session-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @deprecated This file is now a thin wrapper. Please import from './session/index.js' instead.
3
+ */
4
+ export { McpSessionManager, mcpSessionManager } from './session/index.js';
@@ -0,0 +1,5 @@
1
+ export * from './search-core.service.js';
2
+ export * from './search-scorer.js';
3
+ export * from './search-cache.js';
4
+ export * from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/search/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Search module index
2
+ export * from './search-core.service.js';
3
+ export * from './search-scorer.js';
4
+ export * from './search-cache.js';
5
+ export * from './types.js';
@@ -0,0 +1,132 @@
1
+ import type { Tool } from '../../../shared/models/tool.model.js';
2
+ /**
3
+ * Search cache service that provides time-based caching for search results.
4
+ *
5
+ * This service implements a simple TTL (Time-To-Live) cache mechanism for storing
6
+ * and retrieving search results. It automatically invalidates cached data after
7
+ * a specified time period (30 seconds by default) to ensure freshness while
8
+ * providing performance benefits for repeated searches within the TTL window.
9
+ *
10
+ * The cache stores an array of Tool objects and maintains a timestamp of the last
11
+ * update to determine cache validity. This is particularly useful in scenarios
12
+ * where search operations might be expensive or frequently repeated, such as
13
+ * in autocomplete or real-time search interfaces.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const cache = new SearchCacheService();
18
+ *
19
+ * // Set cache with search results
20
+ * cache.set(searchResults);
21
+ *
22
+ * // Retrieve cached results (returns null if expired)
23
+ * const results = cache.get();
24
+ *
25
+ * // Manually invalidate cache
26
+ * cache.invalidate();
27
+ * ```
28
+ */
29
+ export declare class SearchCacheService {
30
+ private cache;
31
+ private lastUpdate;
32
+ private readonly CACHE_TTL;
33
+ /**
34
+ * Checks if the current cache is valid based on the TTL (Time-To-Live).
35
+ *
36
+ * A cache is considered valid if it exists and has not exceeded the
37
+ * configured TTL since the last update. The default TTL is 30 seconds.
38
+ *
39
+ * @returns {boolean} True if the cache exists and is within the TTL window,
40
+ * false otherwise (either no cache or expired).
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * if (cache.isValid()) {
45
+ * // Use cached results
46
+ * const results = cache.get();
47
+ * }
48
+ * ```
49
+ */
50
+ isValid(): boolean;
51
+ /**
52
+ * Retrieves the cached search results if they are still valid.
53
+ *
54
+ * This method first checks if the cache is valid using the TTL mechanism.
55
+ * If the cache is invalid or expired, it automatically clears the cache
56
+ * and returns null. Otherwise, it returns the cached Tool array.
57
+ *
58
+ * @returns {Tool[] | null} The cached array of Tool objects if valid,
59
+ * null if the cache is invalid, expired, or empty.
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const cachedResults = cache.get();
64
+ * if (cachedResults) {
65
+ * // Use cached results
66
+ * return cachedResults;
67
+ * } else {
68
+ * // Perform fresh search
69
+ * const freshResults = performSearch();
70
+ * cache.set(freshResults);
71
+ * return freshResults;
72
+ * }
73
+ * ```
74
+ */
75
+ get(): Tool[] | null;
76
+ /**
77
+ * Stores search results in the cache with the current timestamp.
78
+ *
79
+ * This method sets the provided Tool array as the cached value and
80
+ * records the current timestamp as the last update time. The cache
81
+ * will remain valid until it exceeds the TTL (30 seconds by default).
82
+ *
83
+ * @param {Tool[]} tools - The array of Tool objects to cache.
84
+ * Must be a valid array of Tool instances.
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const searchResults = await searchTools('pattern');
89
+ * cache.set(searchResults);
90
+ * ```
91
+ */
92
+ set(tools: Tool[]): void;
93
+ /**
94
+ * Immediately invalidates and clears the current cache.
95
+ *
96
+ * This method forces the cache to be cleared by setting the cache to null
97
+ * and resetting the last update timestamp to zero. After calling this method,
98
+ * subsequent calls to `get()` will return null until new data is set.
99
+ *
100
+ * This is useful when external events indicate that cached data may be stale,
101
+ * such as when servers are added, removed, or updated.
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * // Invalidate cache when server configuration changes
106
+ * hubManager.on('serverUpdated', () => {
107
+ * searchCache.invalidate();
108
+ * });
109
+ * ```
110
+ */
111
+ invalidate(): void;
112
+ /**
113
+ * Updates a specific tool in the cache (deprecated method).
114
+ *
115
+ * This method is currently deprecated because the serverId field has been
116
+ * removed from the Tool interface. It logs a warning message and performs
117
+ * no actual operations. The method is kept for backward compatibility but
118
+ * should not be used in new code.
119
+ *
120
+ * @deprecated This method is deprecated and does nothing. ServerId field
121
+ * has been removed from the Tool interface, making this method
122
+ * obsolete.
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * // This will log a warning but do nothing
127
+ * cache.updateTool();
128
+ * ```
129
+ */
130
+ updateTool(): void;
131
+ }
132
+ //# sourceMappingURL=search-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/search/search-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAGzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IAEvC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,IAAI,OAAO;IAMlB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI;IASpB;;;;;;;;;;;;;;;OAeG;IACH,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAKxB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,IAAI,IAAI;CAQnB"}
@@ -0,0 +1,151 @@
1
+ import { logger, LOG_MODULES } from '../../utils/logger.js';
2
+ /**
3
+ * Search cache service that provides time-based caching for search results.
4
+ *
5
+ * This service implements a simple TTL (Time-To-Live) cache mechanism for storing
6
+ * and retrieving search results. It automatically invalidates cached data after
7
+ * a specified time period (30 seconds by default) to ensure freshness while
8
+ * providing performance benefits for repeated searches within the TTL window.
9
+ *
10
+ * The cache stores an array of Tool objects and maintains a timestamp of the last
11
+ * update to determine cache validity. This is particularly useful in scenarios
12
+ * where search operations might be expensive or frequently repeated, such as
13
+ * in autocomplete or real-time search interfaces.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const cache = new SearchCacheService();
18
+ *
19
+ * // Set cache with search results
20
+ * cache.set(searchResults);
21
+ *
22
+ * // Retrieve cached results (returns null if expired)
23
+ * const results = cache.get();
24
+ *
25
+ * // Manually invalidate cache
26
+ * cache.invalidate();
27
+ * ```
28
+ */
29
+ export class SearchCacheService {
30
+ cache = null;
31
+ lastUpdate = 0;
32
+ CACHE_TTL = 30 * 1000;
33
+ /**
34
+ * Checks if the current cache is valid based on the TTL (Time-To-Live).
35
+ *
36
+ * A cache is considered valid if it exists and has not exceeded the
37
+ * configured TTL since the last update. The default TTL is 30 seconds.
38
+ *
39
+ * @returns {boolean} True if the cache exists and is within the TTL window,
40
+ * false otherwise (either no cache or expired).
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * if (cache.isValid()) {
45
+ * // Use cached results
46
+ * const results = cache.get();
47
+ * }
48
+ * ```
49
+ */
50
+ isValid() {
51
+ if (!this.cache)
52
+ return false;
53
+ return Date.now() - this.lastUpdate < this.CACHE_TTL;
54
+ }
55
+ /**
56
+ * Retrieves the cached search results if they are still valid.
57
+ *
58
+ * This method first checks if the cache is valid using the TTL mechanism.
59
+ * If the cache is invalid or expired, it automatically clears the cache
60
+ * and returns null. Otherwise, it returns the cached Tool array.
61
+ *
62
+ * @returns {Tool[] | null} The cached array of Tool objects if valid,
63
+ * null if the cache is invalid, expired, or empty.
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const cachedResults = cache.get();
68
+ * if (cachedResults) {
69
+ * // Use cached results
70
+ * return cachedResults;
71
+ * } else {
72
+ * // Perform fresh search
73
+ * const freshResults = performSearch();
74
+ * cache.set(freshResults);
75
+ * return freshResults;
76
+ * }
77
+ * ```
78
+ */
79
+ get() {
80
+ if (!this.isValid()) {
81
+ this.cache = null;
82
+ return null;
83
+ }
84
+ return this.cache;
85
+ }
86
+ /**
87
+ * Stores search results in the cache with the current timestamp.
88
+ *
89
+ * This method sets the provided Tool array as the cached value and
90
+ * records the current timestamp as the last update time. The cache
91
+ * will remain valid until it exceeds the TTL (30 seconds by default).
92
+ *
93
+ * @param {Tool[]} tools - The array of Tool objects to cache.
94
+ * Must be a valid array of Tool instances.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const searchResults = await searchTools('pattern');
99
+ * cache.set(searchResults);
100
+ * ```
101
+ */
102
+ set(tools) {
103
+ this.cache = tools;
104
+ this.lastUpdate = Date.now();
105
+ }
106
+ /**
107
+ * Immediately invalidates and clears the current cache.
108
+ *
109
+ * This method forces the cache to be cleared by setting the cache to null
110
+ * and resetting the last update timestamp to zero. After calling this method,
111
+ * subsequent calls to `get()` will return null until new data is set.
112
+ *
113
+ * This is useful when external events indicate that cached data may be stale,
114
+ * such as when servers are added, removed, or updated.
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * // Invalidate cache when server configuration changes
119
+ * hubManager.on('serverUpdated', () => {
120
+ * searchCache.invalidate();
121
+ * });
122
+ * ```
123
+ */
124
+ invalidate() {
125
+ this.cache = null;
126
+ this.lastUpdate = 0;
127
+ }
128
+ /**
129
+ * Updates a specific tool in the cache (deprecated method).
130
+ *
131
+ * This method is currently deprecated because the serverId field has been
132
+ * removed from the Tool interface. It logs a warning message and performs
133
+ * no actual operations. The method is kept for backward compatibility but
134
+ * should not be used in new code.
135
+ *
136
+ * @deprecated This method is deprecated and does nothing. ServerId field
137
+ * has been removed from the Tool interface, making this method
138
+ * obsolete.
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * // This will log a warning but do nothing
143
+ * cache.updateTool();
144
+ * ```
145
+ */
146
+ updateTool() {
147
+ // Since serverId field has been removed from Tool interface, this method needs refactoring
148
+ // Currently kept but not performing any operations, or modify according to actual requirements
149
+ logger.warn('updateTool method is deprecated because serverId field is removed from Tool', LOG_MODULES.SEARCH);
150
+ }
151
+ }