@loop_ouroboros/mcp-hub-lite 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/client/assets/{HomeView-7rMg9C6t.js → HomeView-BBwvy1oj.js} +1 -1
  3. package/dist/client/assets/ResourceDetailView-CZ2aB73w.js +1 -0
  4. package/dist/client/assets/ResourceDetailView-DUJZbegl.css +1 -0
  5. package/dist/client/assets/ResourcesView-CN1NlhWs.js +1 -0
  6. package/dist/client/assets/ResourcesView-Cc8RHtia.css +1 -0
  7. package/dist/client/assets/ServerDashboard-BfLeFDGw.css +1 -0
  8. package/dist/client/assets/ServerDashboard-k652Vw4Z.js +1 -0
  9. package/dist/client/assets/ServerDetail-BLQ-a4cO.js +2 -0
  10. package/dist/client/assets/ServerDetail-CtnNKJGx.css +1 -0
  11. package/dist/client/assets/{ServerListView-Bws09jNR.css → ServerListView-B-bPljsO.css} +1 -1
  12. package/dist/client/assets/ServerListView-BHrsFD5i.js +36 -0
  13. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHhwEuGe.js +1 -0
  14. package/dist/client/assets/SettingsView-CUOFNXrz.js +1 -0
  15. package/dist/client/assets/SettingsView-GkBOKL0V.css +1 -0
  16. package/dist/client/assets/ToolCallDialog-BfPjLxfV.js +1 -0
  17. package/dist/client/assets/ToolsView-BxgXvPC3.css +1 -0
  18. package/dist/client/assets/ToolsView-CyuhYAE2.js +1 -0
  19. package/dist/client/assets/{_baseClone-5q1b0P3O.js → _baseClone-DO5qfalW.js} +1 -1
  20. package/dist/client/assets/el-form-item-B4LbJ6OO.css +1 -0
  21. package/dist/client/assets/el-form-item-CcGsD2K_.js +12 -0
  22. package/dist/client/assets/el-input-BH4BZKnG.css +1 -0
  23. package/dist/client/assets/el-input-tYgeiaCT.js +1 -0
  24. package/dist/client/assets/{el-loading-H85n3BUC.js → el-loading-Dwl9E_Vr.js} +1 -1
  25. package/dist/client/assets/{el-select-C0U_l4IZ.css → el-overlay-CBvdpA69.css} +1 -1
  26. package/dist/client/assets/el-overlay-kqX_BABo.js +1 -0
  27. package/dist/client/assets/{ResourceDetailView-BdOaL_-o.css → el-radio-group-B0bauIRR.css} +1 -1
  28. package/dist/client/assets/el-radio-group-D8aWBVOT.js +1 -0
  29. package/dist/client/assets/el-skeleton-item-BLY1jEuR.css +1 -0
  30. package/dist/client/assets/el-skeleton-item-BRwIFspE.js +1 -0
  31. package/dist/client/assets/el-switch-BBrS-_6y.css +1 -0
  32. package/dist/client/assets/el-switch-BF8c-xeU.js +1 -0
  33. package/dist/client/assets/el-tab-pane-C4Ep94cd.js +1 -0
  34. package/dist/client/assets/el-table-column-BdvRS9Y2.css +1 -0
  35. package/dist/client/assets/el-table-column-Cog6uCh-.js +1 -0
  36. package/dist/client/assets/index-ByNBhPAR.js +1 -0
  37. package/dist/client/assets/index-CTB6oe-9.js +2 -0
  38. package/dist/client/assets/{index-BsDWtoIl.css → index-DpH6ZSbs.css} +1 -1
  39. package/dist/client/assets/omit-CUnDT6sS.js +1 -0
  40. package/dist/client/assets/{raf-DY5mgbuB.js → raf-CmzeRPMd.js} +1 -1
  41. package/dist/client/assets/{vue-vendor-6ny5zj9i.js → vue-vendor-CbgVSHIh.js} +3 -3
  42. package/dist/client/index.html +3 -3
  43. package/dist/server/shared/models/resource.model.d.ts +2 -1
  44. package/dist/server/shared/models/resource.model.d.ts.map +1 -1
  45. package/dist/server/shared/models/server.model.d.ts +362 -5
  46. package/dist/server/shared/models/server.model.d.ts.map +1 -1
  47. package/dist/server/shared/models/server.model.js +220 -1
  48. package/dist/server/shared/models/session.model.d.ts +1 -57
  49. package/dist/server/shared/models/session.model.d.ts.map +1 -1
  50. package/dist/server/shared/models/session.model.js +1 -55
  51. package/dist/server/shared/models/tool.model.d.ts +4 -2
  52. package/dist/server/shared/models/tool.model.d.ts.map +1 -1
  53. package/dist/server/shared/types/session-context.types.d.ts +0 -2
  54. package/dist/server/shared/types/session-context.types.d.ts.map +1 -1
  55. package/dist/server/shared/types/websocket.types.d.ts +17 -10
  56. package/dist/server/shared/types/websocket.types.d.ts.map +1 -1
  57. package/dist/server/src/api/mcp/debug-response-wrapper.js +2 -2
  58. package/dist/server/src/api/mcp/gateway.d.ts +1 -3
  59. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
  60. package/dist/server/src/api/mcp/gateway.js +32 -49
  61. package/dist/server/src/api/web/hub-tools.d.ts +2 -2
  62. package/dist/server/src/api/web/hub-tools.d.ts.map +1 -1
  63. package/dist/server/src/api/web/hub-tools.js +3 -54
  64. package/dist/server/src/api/web/mcp-status.d.ts +1 -1
  65. package/dist/server/src/api/web/mcp-status.d.ts.map +1 -1
  66. package/dist/server/src/api/web/mcp-status.js +71 -30
  67. package/dist/server/src/api/web/resources.d.ts.map +1 -1
  68. package/dist/server/src/api/web/resources.js +28 -22
  69. package/dist/server/src/api/web/search.d.ts +2 -16
  70. package/dist/server/src/api/web/search.d.ts.map +1 -1
  71. package/dist/server/src/api/web/search.js +24 -45
  72. package/dist/server/src/api/web/servers.d.ts +3 -3
  73. package/dist/server/src/api/web/servers.d.ts.map +1 -1
  74. package/dist/server/src/api/web/servers.js +70 -25
  75. package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -1
  76. package/dist/server/src/api/ws/ws-handler.js +4 -2
  77. package/dist/server/src/app.d.ts.map +1 -1
  78. package/dist/server/src/app.js +0 -2
  79. package/dist/server/src/cli/commands/list.js +2 -2
  80. package/dist/server/src/cli/commands/server.d.ts +57 -0
  81. package/dist/server/src/cli/commands/server.d.ts.map +1 -0
  82. package/dist/server/src/cli/commands/server.js +169 -0
  83. package/dist/server/src/cli/commands/status.d.ts.map +1 -1
  84. package/dist/server/src/cli/commands/status.js +41 -30
  85. package/dist/server/src/cli/index.d.ts.map +1 -1
  86. package/dist/server/src/cli/index.js +2 -1
  87. package/dist/server/src/cli/server.d.ts +11 -2
  88. package/dist/server/src/cli/server.d.ts.map +1 -1
  89. package/dist/server/src/config/config-change-logger.d.ts +22 -0
  90. package/dist/server/src/config/config-change-logger.d.ts.map +1 -1
  91. package/dist/server/src/config/config-change-logger.js +135 -11
  92. package/dist/server/src/config/config-loader.d.ts +6 -5
  93. package/dist/server/src/config/config-loader.d.ts.map +1 -1
  94. package/dist/server/src/config/config-loader.js +54 -16
  95. package/dist/server/src/config/config-manager.d.ts +51 -43
  96. package/dist/server/src/config/config-manager.d.ts.map +1 -1
  97. package/dist/server/src/config/config-manager.js +84 -66
  98. package/dist/server/src/config/config-migrator.d.ts +82 -0
  99. package/dist/server/src/config/config-migrator.d.ts.map +1 -0
  100. package/dist/server/src/config/config-migrator.js +348 -0
  101. package/dist/server/src/config/config-saver.d.ts +2 -0
  102. package/dist/server/src/config/config-saver.d.ts.map +1 -1
  103. package/dist/server/src/config/config-saver.js +8 -2
  104. package/dist/server/src/config/config.schema.d.ts +10 -104
  105. package/dist/server/src/config/config.schema.d.ts.map +1 -1
  106. package/dist/server/src/config/config.schema.js +15 -99
  107. package/dist/server/src/config/path-validator.d.ts +27 -0
  108. package/dist/server/src/config/path-validator.d.ts.map +1 -0
  109. package/dist/server/src/config/path-validator.js +53 -0
  110. package/dist/server/src/config/server-config-manager.d.ts +37 -31
  111. package/dist/server/src/config/server-config-manager.d.ts.map +1 -1
  112. package/dist/server/src/config/server-config-manager.js +222 -66
  113. package/dist/server/src/config/type-converter.d.ts.map +1 -1
  114. package/dist/server/src/config/type-converter.js +3 -2
  115. package/dist/server/src/models/event.model.d.ts +17 -10
  116. package/dist/server/src/models/event.model.d.ts.map +1 -1
  117. package/dist/server/src/models/server.model.d.ts +17 -3
  118. package/dist/server/src/models/server.model.d.ts.map +1 -1
  119. package/dist/server/src/models/server.model.js +2 -1
  120. package/dist/server/src/models/system-tools.constants.d.ts +10 -27
  121. package/dist/server/src/models/system-tools.constants.d.ts.map +1 -1
  122. package/dist/server/src/models/system-tools.constants.js +4 -8
  123. package/dist/server/src/pid/manager.d.ts.map +1 -1
  124. package/dist/server/src/pid/manager.js +2 -1
  125. package/dist/server/src/server/dev-server.js +34 -20
  126. package/dist/server/src/server/runner.d.ts.map +1 -1
  127. package/dist/server/src/server/runner.js +41 -26
  128. package/dist/server/src/services/connection/connection-manager.d.ts +85 -103
  129. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
  130. package/dist/server/src/services/connection/connection-manager.js +286 -241
  131. package/dist/server/src/services/connection/tool-cache.d.ts +27 -25
  132. package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -1
  133. package/dist/server/src/services/connection/tool-cache.js +50 -55
  134. package/dist/server/src/services/gateway/gateway.service.d.ts +2 -0
  135. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
  136. package/dist/server/src/services/gateway/gateway.service.js +53 -23
  137. package/dist/server/src/services/gateway/global-transport.d.ts +19 -0
  138. package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -0
  139. package/dist/server/src/services/gateway/global-transport.js +66 -0
  140. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -1
  141. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +67 -65
  142. package/dist/server/src/services/gateway/request-handlers/index.d.ts +1 -1
  143. package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -1
  144. package/dist/server/src/services/gateway/request-handlers/index.js +1 -1
  145. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +1 -4
  146. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
  147. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +20 -80
  148. package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts +35 -0
  149. package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts.map +1 -0
  150. package/dist/server/src/services/gateway/request-handlers/initialize.constants.js +44 -0
  151. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
  152. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +5 -4
  153. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -1
  154. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +32 -77
  155. package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -1
  156. package/dist/server/src/services/gateway/tool-list-generator.js +37 -16
  157. package/dist/server/src/services/gateway/types.d.ts +2 -1
  158. package/dist/server/src/services/gateway/types.d.ts.map +1 -1
  159. package/dist/server/src/services/hub-manager.service.d.ts +32 -238
  160. package/dist/server/src/services/hub-manager.service.d.ts.map +1 -1
  161. package/dist/server/src/services/hub-manager.service.js +89 -267
  162. package/dist/server/src/services/hub-tools/index.d.ts +1 -3
  163. package/dist/server/src/services/hub-tools/index.d.ts.map +1 -1
  164. package/dist/server/src/services/hub-tools/index.js +1 -2
  165. package/dist/server/src/services/hub-tools/instance-matcher.d.ts +62 -0
  166. package/dist/server/src/services/hub-tools/instance-matcher.d.ts.map +1 -0
  167. package/dist/server/src/services/hub-tools/instance-matcher.js +132 -0
  168. package/dist/server/src/services/hub-tools/instance-selector.d.ts +29 -0
  169. package/dist/server/src/services/hub-tools/instance-selector.d.ts.map +1 -0
  170. package/dist/server/src/services/hub-tools/instance-selector.js +103 -0
  171. package/dist/server/src/services/hub-tools/resource-generator.d.ts +24 -1
  172. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
  173. package/dist/server/src/services/hub-tools/resource-generator.js +259 -39
  174. package/dist/server/src/services/hub-tools/server-selector.d.ts +26 -13
  175. package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -1
  176. package/dist/server/src/services/hub-tools/server-selector.js +44 -37
  177. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +1 -4
  178. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -1
  179. package/dist/server/src/services/hub-tools/system-tool-definitions.js +17 -80
  180. package/dist/server/src/services/hub-tools/tool-search.d.ts +7 -7
  181. package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -1
  182. package/dist/server/src/services/hub-tools/tool-search.js +10 -4
  183. package/dist/server/src/services/hub-tools/types.d.ts +2 -2
  184. package/dist/server/src/services/hub-tools/types.d.ts.map +1 -1
  185. package/dist/server/src/services/hub-tools.service.d.ts +43 -72
  186. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
  187. package/dist/server/src/services/hub-tools.service.js +185 -110
  188. package/dist/server/src/services/system-tool-handler.d.ts.map +1 -1
  189. package/dist/server/src/services/system-tool-handler.js +7 -17
  190. package/dist/server/src/utils/composite-key.d.ts +29 -0
  191. package/dist/server/src/utils/composite-key.d.ts.map +1 -0
  192. package/dist/server/src/utils/composite-key.js +39 -0
  193. package/dist/server/src/utils/error-handler.d.ts.map +1 -1
  194. package/dist/server/src/utils/error-handler.js +3 -2
  195. package/dist/server/src/utils/index.d.ts +2 -0
  196. package/dist/server/src/utils/index.d.ts.map +1 -1
  197. package/dist/server/src/utils/index.js +2 -0
  198. package/dist/server/src/utils/instance-id.d.ts +22 -0
  199. package/dist/server/src/utils/instance-id.d.ts.map +1 -0
  200. package/dist/server/src/utils/instance-id.js +59 -0
  201. package/dist/server/src/utils/json-utils.d.ts +4 -4
  202. package/dist/server/src/utils/json-utils.d.ts.map +1 -1
  203. package/dist/server/src/utils/json-utils.js +4 -4
  204. package/dist/server/src/utils/logger/dev-logger.d.ts +2 -1
  205. package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -1
  206. package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
  207. package/dist/server/src/utils/logger/log-formatter.js +82 -5
  208. package/dist/server/src/utils/logger/log-modules.d.ts +15 -9
  209. package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -1
  210. package/dist/server/src/utils/logger/log-modules.js +8 -6
  211. package/dist/server/src/utils/parameter-validator.d.ts +10 -0
  212. package/dist/server/src/utils/parameter-validator.d.ts.map +1 -0
  213. package/dist/server/src/utils/parameter-validator.js +53 -0
  214. package/dist/server/src/utils/process-tree.d.ts +49 -0
  215. package/dist/server/src/utils/process-tree.d.ts.map +1 -0
  216. package/dist/server/src/utils/process-tree.js +285 -0
  217. package/dist/server/src/utils/sort-utils.d.ts +40 -0
  218. package/dist/server/src/utils/sort-utils.d.ts.map +1 -0
  219. package/dist/server/src/utils/sort-utils.js +131 -0
  220. package/dist/server/src/utils/transports/sse-transport.d.ts +16 -1
  221. package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -1
  222. package/dist/server/src/utils/transports/sse-transport.js +55 -9
  223. package/dist/server/src/utils/transports/stdio-transport.d.ts +24 -53
  224. package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -1
  225. package/dist/server/src/utils/transports/stdio-transport.js +66 -247
  226. package/dist/server/src/utils/transports/streamable-http-transport.d.ts +24 -1
  227. package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -1
  228. package/dist/server/src/utils/transports/streamable-http-transport.js +68 -8
  229. package/dist/server/src/utils/transports/transport-factory.d.ts +9 -4
  230. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
  231. package/dist/server/src/utils/transports/transport-factory.js +31 -11
  232. package/dist/server/src/utils/transports/transport.interface.d.ts +6 -0
  233. package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -1
  234. package/dist/server/src/utils/version.d.ts +11 -0
  235. package/dist/server/src/utils/version.d.ts.map +1 -0
  236. package/dist/server/src/utils/version.js +57 -0
  237. package/dist/server/tests/contract/mcp-protocol/initialize.test.js +24 -24
  238. package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +49 -45
  239. package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +35 -36
  240. package/dist/server/tests/integration/gateway/fault-tolerance.test.js +65 -25
  241. package/dist/server/tests/integration/gateway/mcp-connection.test.js +53 -61
  242. package/dist/server/tests/server.test.js +27 -16
  243. package/dist/server/tests/temp/temp-run-docling.d.ts +2 -0
  244. package/dist/server/tests/temp/temp-run-docling.d.ts.map +1 -0
  245. package/dist/server/tests/temp/temp-run-docling.js +53 -0
  246. package/dist/server/tests/types/test-helpers.d.ts +1 -2
  247. package/dist/server/tests/types/test-helpers.d.ts.map +1 -1
  248. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts +2 -0
  249. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts.map +1 -0
  250. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.js +199 -0
  251. package/dist/server/tests/unit/config/config-migrator.test.d.ts +2 -0
  252. package/dist/server/tests/unit/config/config-migrator.test.d.ts.map +1 -0
  253. package/dist/server/tests/unit/config/config-migrator.test.js +316 -0
  254. package/dist/server/tests/unit/config/config-saver.test.d.ts +2 -0
  255. package/dist/server/tests/unit/config/config-saver.test.d.ts.map +1 -0
  256. package/dist/server/tests/unit/config/config-saver.test.js +200 -0
  257. package/dist/server/tests/unit/config/config.schema.test.d.ts +2 -0
  258. package/dist/server/tests/unit/config/config.schema.test.d.ts.map +1 -0
  259. package/dist/server/tests/unit/config/config.schema.test.js +347 -0
  260. package/dist/server/tests/unit/server/runner.test.js +86 -62
  261. package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts +2 -0
  262. package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts.map +1 -0
  263. package/dist/server/tests/unit/services/connection/connection-manager.test.js +112 -0
  264. package/dist/server/tests/unit/services/hub-manager-service.test.js +112 -46
  265. package/dist/server/tests/unit/services/hub-manager.test.js +25 -15
  266. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts +2 -0
  267. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts.map +1 -0
  268. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.js +195 -0
  269. package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts +2 -0
  270. package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts.map +1 -0
  271. package/dist/server/tests/unit/services/hub-tools/server-selector.test.js +190 -0
  272. package/dist/server/tests/unit/services/hub-tools.service.test.js +560 -320
  273. package/dist/server/tests/unit/services/instance-matcher.test.d.ts +2 -0
  274. package/dist/server/tests/unit/services/instance-matcher.test.d.ts.map +1 -0
  275. package/dist/server/tests/unit/services/instance-matcher.test.js +256 -0
  276. package/dist/server/tests/unit/services/session-manager.test.js +26 -436
  277. package/dist/server/tests/unit/utils/config.test.js +88 -186
  278. package/dist/server/tests/unit/utils/json-utils.test.js +18 -18
  279. package/dist/server/tests/unit/utils/logger-formatter.test.d.ts +2 -0
  280. package/dist/server/tests/unit/utils/logger-formatter.test.d.ts.map +1 -0
  281. package/dist/server/tests/unit/utils/logger-formatter.test.js +66 -0
  282. package/dist/server/tests/unit/utils/parameter-validator.test.d.ts +2 -0
  283. package/dist/server/tests/unit/utils/parameter-validator.test.d.ts.map +1 -0
  284. package/dist/server/tests/unit/utils/parameter-validator.test.js +63 -0
  285. package/dist/server/tests/unit/utils/process-tree.test.d.ts +2 -0
  286. package/dist/server/tests/unit/utils/process-tree.test.d.ts.map +1 -0
  287. package/dist/server/tests/unit/utils/process-tree.test.js +129 -0
  288. package/dist/server/tests/unit/utils/sort-utils.test.d.ts +2 -0
  289. package/dist/server/tests/unit/utils/sort-utils.test.d.ts.map +1 -0
  290. package/dist/server/tests/unit/utils/sort-utils.test.js +220 -0
  291. package/dist/server/tests/unit/utils/transport-factory.test.d.ts +2 -0
  292. package/dist/server/tests/unit/utils/transport-factory.test.d.ts.map +1 -0
  293. package/dist/server/tests/unit/utils/transport-factory.test.js +55 -0
  294. package/package.json +3 -1
  295. package/dist/client/assets/ResourceDetailView-Bf-1ffbk.js +0 -1
  296. package/dist/client/assets/ResourcesView-CjMklkyv.css +0 -1
  297. package/dist/client/assets/ResourcesView-g5x4xCPh.js +0 -1
  298. package/dist/client/assets/ServerDashboard-Chpne8Q0.css +0 -1
  299. package/dist/client/assets/ServerDashboard-G8Wmp4hF.js +0 -2
  300. package/dist/client/assets/ServerListView-dV2XrPjo.js +0 -32
  301. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +0 -1
  302. package/dist/client/assets/SessionsView-Ckd38lj1.js +0 -1
  303. package/dist/client/assets/SettingsView-BJUdepEQ.js +0 -1
  304. package/dist/client/assets/ToolCallDialog-C_bTCpHC.js +0 -1
  305. package/dist/client/assets/ToolsView-0c2eputu.js +0 -1
  306. package/dist/client/assets/ToolsView-E3Ps9c7i.css +0 -1
  307. package/dist/client/assets/el-form-item-BVMLpmVC.css +0 -1
  308. package/dist/client/assets/el-form-item-ClFnj49k.js +0 -12
  309. package/dist/client/assets/el-input-CDnuSKVZ.js +0 -1
  310. package/dist/client/assets/el-input-CmuHb8HS.css +0 -1
  311. package/dist/client/assets/el-overlay-B2ZKM6Up.css +0 -1
  312. package/dist/client/assets/el-overlay-CzMkXyYy.js +0 -1
  313. package/dist/client/assets/el-select-DvjGddk_.js +0 -1
  314. package/dist/client/assets/el-tab-pane-C_DQMcwe.js +0 -1
  315. package/dist/client/assets/el-table-column-CASRIbZM.js +0 -1
  316. package/dist/client/assets/el-table-column-T_mV9jNw.css +0 -1
  317. package/dist/client/assets/el-tag-DjxZVOpb.css +0 -1
  318. package/dist/client/assets/el-tag-npbwux4f.js +0 -1
  319. package/dist/client/assets/index-CCnAxNF8.js +0 -2
  320. package/dist/client/assets/index-d1DZeSfz.js +0 -1
  321. package/dist/client/assets/omit-DPsOVNIJ.js +0 -1
  322. package/dist/client/assets/vnode-CHomNjgN.js +0 -1
@@ -1,4 +1,16 @@
1
1
  import type { RequestOptions, ServerInstanceInfo, ValidServer } from './types.js';
2
+ /**
3
+ * Gets the description for a server, using a default if none is provided.
4
+ *
5
+ * @param serverConfig - Server configuration object (may contain description in template)
6
+ * @param serverName - Name of the server
7
+ * @returns The server description or a default one
8
+ */
9
+ export declare function getServerDescription(serverConfig: {
10
+ template?: {
11
+ description?: string;
12
+ };
13
+ } | undefined, serverName: string): string;
2
14
  /**
3
15
  * Type guard to validate that a server object has valid name and configuration.
4
16
  *
@@ -22,26 +34,24 @@ export declare function hasValidId(server: unknown): server is ValidServer;
22
34
  * Selects the best server instance based on server name and request options.
23
35
  *
24
36
  * This function resolves a server name to its configuration and instance details,
25
- * handling both single and multiple instance scenarios. Currently, it returns
26
- * the first instance for multi-instance servers, but the architecture supports
27
- * future extensions for intelligent instance selection based on session ID,
28
- * tags, client ID, or load conditions.
37
+ * handling both single and multiple instance scenarios using configurable instance
38
+ * selection strategies (random, round-robin, tag-match-unique).
29
39
  *
30
40
  * The function performs the following steps:
31
41
  * 1. Retrieves all instances of the specified server name
32
42
  * 2. Returns undefined if no instances are found
33
43
  * 3. Gets the server configuration from the hub manager
34
- * 4. For single-instance servers, returns the instance directly
35
- * 5. For multi-instance servers, currently returns the first instance (with future extension support)
44
+ * 4. Uses InstanceSelector to choose the best instance based on configured strategy
45
+ * 5. Handles errors based on the strictMode parameter
36
46
  *
37
- * Future extensions planned include:
38
- * - Session-aware instance selection based on sessionId
39
- * - Tag-based instance selection for matching specific requirements
40
- * - Load-balancing across multiple instances
41
- * - Client-specific instance assignment
47
+ * Supported instance selection strategies:
48
+ * - random: Randomly selects from enabled instances
49
+ * - round-robin: Cycles through enabled instances in order
50
+ * - tag-match-unique: Selects instance that uniquely matches request tags
42
51
  *
43
52
  * @param {string} serverName - Name of the server to select an instance for
44
53
  * @param {RequestOptions} [requestOptions] - Optional request options for instance selection
54
+ * @param {boolean} [strictMode=true] - Whether to throw errors for tag-match-unique failures (default: true)
45
55
  * @returns {{ name: string; config: ServerConfig; instance: ServerInstanceConfig & Record<string, unknown> } | undefined}
46
56
  * Server information with configuration and instance details, or undefined if not found
47
57
  *
@@ -52,12 +62,15 @@ export declare function hasValidId(server: unknown): server is ValidServer;
52
62
  * console.log(`Selected instance: ${serverInfo.instance.id}`);
53
63
  * }
54
64
  *
55
- * // With request options (future extension)
65
+ * // With request options for tag matching
56
66
  * const serverInfoWithOptions = selectBestInstance('my-mcp-server', {
57
67
  * sessionId: 'session-123',
58
68
  * tags: { environment: 'production' }
59
69
  * });
70
+ *
71
+ * // Non-strict mode for management operations
72
+ * const serverInfoNonStrict = selectBestInstance('my-mcp-server', undefined, false);
60
73
  * ```
61
74
  */
62
- export declare function selectBestInstance(serverName: string, requestOptions?: RequestOptions): ServerInstanceInfo | undefined;
75
+ export declare function selectBestInstance(serverName: string, requestOptions?: RequestOptions, strictMode?: boolean): ServerInstanceInfo | undefined;
63
76
  //# sourceMappingURL=server-selector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-selector.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/server-selector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAMjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,cAAc,GAC9B,kBAAkB,GAAG,SAAS,CA+ChC"}
1
+ {"version":3,"file":"server-selector.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/server-selector.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE;IAAE,QAAQ,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,EACjE,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAMjE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,cAAc,EAC/B,UAAU,GAAE,OAAc,GACzB,kBAAkB,GAAG,SAAS,CA8ChC"}
@@ -1,4 +1,17 @@
1
1
  import { hubManager } from '../hub-manager.service.js';
2
+ import { InstanceSelector, TagMatchUniqueError } from './instance-selector.js';
3
+ import { logger } from '../../utils/logger.js';
4
+ import { LOG_MODULES } from '../../utils/logger/log-modules.js';
5
+ /**
6
+ * Gets the description for a server, using a default if none is provided.
7
+ *
8
+ * @param serverConfig - Server configuration object (may contain description in template)
9
+ * @param serverName - Name of the server
10
+ * @returns The server description or a default one
11
+ */
12
+ export function getServerDescription(serverConfig, serverName) {
13
+ return serverConfig?.template?.description || `Connected MCP server: ${serverName}`;
14
+ }
2
15
  /**
3
16
  * Type guard to validate that a server object has valid name and configuration.
4
17
  *
@@ -28,26 +41,24 @@ export function hasValidId(server) {
28
41
  * Selects the best server instance based on server name and request options.
29
42
  *
30
43
  * This function resolves a server name to its configuration and instance details,
31
- * handling both single and multiple instance scenarios. Currently, it returns
32
- * the first instance for multi-instance servers, but the architecture supports
33
- * future extensions for intelligent instance selection based on session ID,
34
- * tags, client ID, or load conditions.
44
+ * handling both single and multiple instance scenarios using configurable instance
45
+ * selection strategies (random, round-robin, tag-match-unique).
35
46
  *
36
47
  * The function performs the following steps:
37
48
  * 1. Retrieves all instances of the specified server name
38
49
  * 2. Returns undefined if no instances are found
39
50
  * 3. Gets the server configuration from the hub manager
40
- * 4. For single-instance servers, returns the instance directly
41
- * 5. For multi-instance servers, currently returns the first instance (with future extension support)
51
+ * 4. Uses InstanceSelector to choose the best instance based on configured strategy
52
+ * 5. Handles errors based on the strictMode parameter
42
53
  *
43
- * Future extensions planned include:
44
- * - Session-aware instance selection based on sessionId
45
- * - Tag-based instance selection for matching specific requirements
46
- * - Load-balancing across multiple instances
47
- * - Client-specific instance assignment
54
+ * Supported instance selection strategies:
55
+ * - random: Randomly selects from enabled instances
56
+ * - round-robin: Cycles through enabled instances in order
57
+ * - tag-match-unique: Selects instance that uniquely matches request tags
48
58
  *
49
59
  * @param {string} serverName - Name of the server to select an instance for
50
60
  * @param {RequestOptions} [requestOptions] - Optional request options for instance selection
61
+ * @param {boolean} [strictMode=true] - Whether to throw errors for tag-match-unique failures (default: true)
51
62
  * @returns {{ name: string; config: ServerConfig; instance: ServerInstanceConfig & Record<string, unknown> } | undefined}
52
63
  * Server information with configuration and instance details, or undefined if not found
53
64
  *
@@ -58,16 +69,19 @@ export function hasValidId(server) {
58
69
  * console.log(`Selected instance: ${serverInfo.instance.id}`);
59
70
  * }
60
71
  *
61
- * // With request options (future extension)
72
+ * // With request options for tag matching
62
73
  * const serverInfoWithOptions = selectBestInstance('my-mcp-server', {
63
74
  * sessionId: 'session-123',
64
75
  * tags: { environment: 'production' }
65
76
  * });
77
+ *
78
+ * // Non-strict mode for management operations
79
+ * const serverInfoNonStrict = selectBestInstance('my-mcp-server', undefined, false);
66
80
  * ```
67
81
  */
68
- export function selectBestInstance(serverName, requestOptions) {
82
+ export function selectBestInstance(serverName, requestOptions, strictMode = true) {
69
83
  // Get all instances of the server
70
- const instances = hubManager.getServerInstanceByName(serverName);
84
+ const instances = hubManager.getServerInstancesByName(serverName);
71
85
  if (instances.length === 0) {
72
86
  return undefined;
73
87
  }
@@ -76,33 +90,26 @@ export function selectBestInstance(serverName, requestOptions) {
76
90
  if (!serverConfig) {
77
91
  return undefined;
78
92
  }
79
- // If there's only one instance, return it directly
80
- if (instances.length === 1) {
93
+ try {
94
+ // Use the new instance selector
95
+ const selectedInstance = InstanceSelector.selectInstance(serverName, serverConfig, requestOptions);
96
+ if (!selectedInstance) {
97
+ return undefined;
98
+ }
81
99
  return {
82
100
  name: serverName,
83
101
  config: serverConfig,
84
- instance: instances[0]
102
+ instance: selectedInstance
85
103
  };
86
104
  }
87
- // Multi-instance selection logic (for future extension)
88
- // Currently simplified implementation: return the first instance
89
- // Future extensions could support:
90
- // - Selecting specific instance based on sessionId
91
- // - Selecting optimal instance based on tags matching
92
- // - Selecting dedicated instance based on client ID
93
- // - Selecting instance based on load conditions
94
- // Although requestOptions is not currently used, it's kept for future extension
95
- if (requestOptions?.sessionId) {
96
- // In the future, specific instance can be selected based on sessionId
97
- // Currently return the first instance temporarily
98
- }
99
- if (requestOptions?.tags) {
100
- // In the future, optimal instance can be selected based on tags matching
101
- // Currently return the first instance temporarily
105
+ catch (error) {
106
+ // In strict mode, re-throw tag matching errors to maintain correct semantics
107
+ if (strictMode && error instanceof TagMatchUniqueError) {
108
+ // Re-throw with server context added to message
109
+ throw new Error(`[${serverName}] ${error.message}`);
110
+ }
111
+ // Handle other errors or non-strict mode gracefully
112
+ logger.error(`Instance selection failed for server ${serverName}:`, error, LOG_MODULES.SERVER_SELECTOR);
113
+ return undefined;
102
114
  }
103
- return {
104
- name: serverName,
105
- config: serverConfig,
106
- instance: instances[0] // Will be extended to intelligent selection logic later
107
- };
108
115
  }
@@ -27,12 +27,9 @@ export interface SystemToolDefinition {
27
27
  *
28
28
  * The method implements all standard system tools:
29
29
  * - list-servers: List all connected servers
30
- * - find-servers: Find servers matching a pattern
31
- * - list-all-tools-in-server: List tools from a specific server
32
- * - find-tools-in-server: Find tools in a specific server
30
+ * - list-tools-in-server: List tools from a specific server
33
31
  * - get-tool: Get complete tool schema
34
32
  * - call-tool: Call a specific tool from a specific server
35
- * - find-tools: Find tools across all servers
36
33
  *
37
34
  * @returns {Array<{ name: string; description: string; inputSchema: JsonSchema; annotations?: ToolAnnotations }>}
38
35
  * Array of system tool configurations
@@ -1 +1 @@
1
- {"version":3,"file":"system-tool-definitions.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/system-tool-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAY/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,EAAE,CAwMvD"}
1
+ {"version":3,"file":"system-tool-definitions.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/system-tool-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAU/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,EAAE,CA6IvD"}
@@ -1,4 +1,4 @@
1
- import { SYSTEM_TOOL_NAMES, LIST_SERVERS_TOOL, FIND_SERVERS_TOOL, LIST_ALL_TOOLS_IN_SERVER_TOOL, FIND_TOOLS_IN_SERVER_TOOL, GET_TOOL_TOOL, CALL_TOOL_TOOL, FIND_TOOLS_TOOL } from '../../models/system-tools.constants.js';
1
+ import { SYSTEM_TOOL_NAMES, LIST_SERVERS_TOOL, LIST_TOOLS_IN_SERVER_TOOL, GET_TOOL_TOOL, CALL_TOOL_TOOL, UPDATE_SERVER_DESCRIPTION_TOOL } from '../../models/system-tools.constants.js';
2
2
  /**
3
3
  * Retrieves the complete list of system tools provided by this service.
4
4
  *
@@ -8,12 +8,9 @@ import { SYSTEM_TOOL_NAMES, LIST_SERVERS_TOOL, FIND_SERVERS_TOOL, LIST_ALL_TOOLS
8
8
  *
9
9
  * The method implements all standard system tools:
10
10
  * - list-servers: List all connected servers
11
- * - find-servers: Find servers matching a pattern
12
- * - list-all-tools-in-server: List tools from a specific server
13
- * - find-tools-in-server: Find tools in a specific server
11
+ * - list-tools-in-server: List tools from a specific server
14
12
  * - get-tool: Get complete tool schema
15
13
  * - call-tool: Call a specific tool from a specific server
16
- * - find-tools: Find tools across all servers
17
14
  *
18
15
  * @returns {Array<{ name: string; description: string; inputSchema: JsonSchema; annotations?: ToolAnnotations }>}
19
16
  * Array of system tool configurations
@@ -46,33 +43,7 @@ export function getSystemTools() {
46
43
  }
47
44
  });
48
45
  break;
49
- case FIND_SERVERS_TOOL:
50
- systemTools.push({
51
- name: toolName,
52
- description: 'Find servers matching a pattern',
53
- inputSchema: {
54
- type: 'object',
55
- properties: {
56
- pattern: { type: 'string', description: 'Regex pattern to search for' },
57
- searchIn: {
58
- type: 'string',
59
- enum: ['name', 'description', 'both'],
60
- default: 'both'
61
- },
62
- caseSensitive: { type: 'boolean', default: false }
63
- },
64
- required: ['pattern']
65
- },
66
- annotations: {
67
- title: 'Find Servers',
68
- readOnlyHint: true,
69
- destructiveHint: false,
70
- idempotentHint: true,
71
- openWorldHint: false
72
- }
73
- });
74
- break;
75
- case LIST_ALL_TOOLS_IN_SERVER_TOOL:
46
+ case LIST_TOOLS_IN_SERVER_TOOL:
76
47
  systemTools.push({
77
48
  name: toolName,
78
49
  description: 'List all tools from a specific server',
@@ -99,40 +70,6 @@ export function getSystemTools() {
99
70
  }
100
71
  });
101
72
  break;
102
- case FIND_TOOLS_IN_SERVER_TOOL:
103
- systemTools.push({
104
- name: toolName,
105
- description: 'Find tools matching a pattern in a specific server',
106
- inputSchema: {
107
- type: 'object',
108
- properties: {
109
- serverName: { type: 'string', description: 'Name of the MCP server' },
110
- pattern: { type: 'string', description: 'Regex pattern to search for' },
111
- searchIn: {
112
- type: 'string',
113
- enum: ['name', 'description', 'both'],
114
- default: 'both'
115
- },
116
- caseSensitive: { type: 'boolean', default: false },
117
- requestOptions: {
118
- type: 'object',
119
- properties: {
120
- sessionId: { type: 'string', description: 'Session ID for instance selection' },
121
- tags: { type: 'object', description: 'Tags for instance selection' }
122
- }
123
- }
124
- },
125
- required: ['serverName', 'pattern']
126
- },
127
- annotations: {
128
- title: 'Find Tools in Server',
129
- readOnlyHint: true,
130
- destructiveHint: false,
131
- idempotentHint: true,
132
- openWorldHint: false
133
- }
134
- });
135
- break;
136
73
  case GET_TOOL_TOOL:
137
74
  systemTools.push({
138
75
  name: toolName,
@@ -164,11 +101,16 @@ export function getSystemTools() {
164
101
  case CALL_TOOL_TOOL:
165
102
  systemTools.push({
166
103
  name: toolName,
167
- description: 'Call a specific tool from a specific server',
104
+ description: 'Call a specific tool from an external MCP server. ' +
105
+ 'System tools (list_servers, list_tools_in_server, get_tool, update_server_description) ' +
106
+ 'must be called directly via tools/call, not through this tool.',
168
107
  inputSchema: {
169
108
  type: 'object',
170
109
  properties: {
171
- serverName: { type: 'string', description: 'Name of the MCP server' },
110
+ serverName: {
111
+ type: 'string',
112
+ description: 'Name of the MCP server (must be an external server, not mcp-hub-lite)'
113
+ },
172
114
  toolName: { type: 'string', description: 'Name of the tool to call' },
173
115
  toolArgs: { type: 'object', description: 'Arguments to pass to the tool' },
174
116
  requestOptions: {
@@ -190,26 +132,21 @@ export function getSystemTools() {
190
132
  }
191
133
  });
192
134
  break;
193
- case FIND_TOOLS_TOOL:
135
+ case UPDATE_SERVER_DESCRIPTION_TOOL:
194
136
  systemTools.push({
195
137
  name: toolName,
196
- description: 'Find tools matching a pattern across all connected servers',
138
+ description: 'Update the description of a specific MCP server',
197
139
  inputSchema: {
198
140
  type: 'object',
199
141
  properties: {
200
- pattern: { type: 'string', description: 'Regex pattern to search for' },
201
- searchIn: {
202
- type: 'string',
203
- enum: ['name', 'description', 'both'],
204
- default: 'both'
205
- },
206
- caseSensitive: { type: 'boolean', default: false }
142
+ serverName: { type: 'string', description: 'Name of the MCP server to update' },
143
+ description: { type: 'string', description: 'New description text for the server' }
207
144
  },
208
- required: ['pattern']
145
+ required: ['serverName', 'description']
209
146
  },
210
147
  annotations: {
211
- title: 'Find Tools',
212
- readOnlyHint: true,
148
+ title: 'Update Server Description',
149
+ readOnlyHint: false,
213
150
  destructiveHint: false,
214
151
  idempotentHint: true,
215
152
  openWorldHint: false
@@ -1,4 +1,4 @@
1
- import type { Tool } from '../../../shared/models/tool.model.js';
1
+ import type { ToolSummary } from '../../../shared/models/tool.model.js';
2
2
  import type { RequestOptions } from './types.js';
3
3
  /**
4
4
  * Search options for server searches.
@@ -42,7 +42,7 @@ export declare function findServers(pattern: string, searchIn?: 'name' | 'descri
42
42
  * @param {'name' | 'description' | 'both'} [searchIn='both'] - Where to perform the search
43
43
  * @param {boolean} [caseSensitive=false] - Whether the search should be case-sensitive
44
44
  * @param {RequestOptions} [requestOptions] - Optional request options for instance selection
45
- * @returns {Promise<{ serverName: string; tools: Tool[] }>} Object containing server name and matching tools
45
+ * @returns {Promise<{ serverName: string; tools: ToolSummary[] }>} Object containing server name and matching tools
46
46
  * @throws {Error} If the specified server is not found or not connected
47
47
  *
48
48
  * @example
@@ -53,7 +53,7 @@ export declare function findServers(pattern: string, searchIn?: 'name' | 'descri
53
53
  */
54
54
  export declare function findToolsInServer(serverName: string, pattern: string, searchIn?: 'name' | 'description' | 'both', caseSensitive?: boolean, requestOptions?: RequestOptions): Promise<{
55
55
  serverName: string;
56
- tools: Tool[];
56
+ tools: ToolSummary[];
57
57
  }>;
58
58
  /**
59
59
  * Finds tools matching a pattern across all connected MCP servers.
@@ -66,8 +66,8 @@ export declare function findToolsInServer(serverName: string, pattern: string, s
66
66
  * @param {string} pattern - Regex pattern to search for in tool names and descriptions
67
67
  * @param {'name' | 'description' | 'both'} [searchIn='both'] - Where to perform the search
68
68
  * @param {boolean} [caseSensitive=false] - Whether the search should be case-sensitive
69
- * @param {() => Promise<Record<string, { tools: Tool[] }>>} listAllToolsFn - Function to list all tools
70
- * @returns {Promise<Record<string, { tools: Tool[] }>>} Object mapping server names to matching tools
69
+ * @param {() => Promise<Record<string, { tools: ToolSummary[] }>>} listAllToolsFn - Function to list all tools
70
+ * @returns {Promise<Record<string, { tools: ToolSummary[] }>>} Object mapping server names to matching tools
71
71
  *
72
72
  * @example
73
73
  * ```typescript
@@ -78,8 +78,8 @@ export declare function findToolsInServer(serverName: string, pattern: string, s
78
78
  * ```
79
79
  */
80
80
  export declare function findTools(pattern: string, searchIn: "name" | "description" | "both" | undefined, caseSensitive: boolean | undefined, listAllToolsFn: () => Promise<Record<string, {
81
- tools: Tool[];
81
+ tools: ToolSummary[];
82
82
  }>>): Promise<Record<string, {
83
- tools: Tool[];
83
+ tools: ToolSummary[];
84
84
  }>>;
85
85
  //# sourceMappingURL=tool-search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-search.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/tool-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,GAAG,aAAa,GAAG,MAAe,EAClD,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAYnB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,GAAG,aAAa,GAAG,MAAe,EAClD,aAAa,GAAE,OAAe,EAC9B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAAC,CAqBD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,YAAS,EAClD,aAAa,EAAE,OAAO,YAAQ,EAC9B,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAAC,GAC/D,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC,CAAC,CAsB5C"}
1
+ {"version":3,"file":"tool-search.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/tool-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,GAAG,aAAa,GAAG,MAAe,EAClD,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CAYnB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAM,GAAG,aAAa,GAAG,MAAe,EAClD,aAAa,GAAE,OAAe,EAC9B,cAAc,CAAC,EAAE,cAAc,GAC9B,OAAO,CAAC;IACT,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC,CA4BD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,YAAS,EAClD,aAAa,EAAE,OAAO,YAAQ,EAC9B,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAC,GACtE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAAC,CAsBnD"}
@@ -47,7 +47,7 @@ export async function findServers(pattern, searchIn = 'both', caseSensitive = fa
47
47
  * @param {'name' | 'description' | 'both'} [searchIn='both'] - Where to perform the search
48
48
  * @param {boolean} [caseSensitive=false] - Whether the search should be case-sensitive
49
49
  * @param {RequestOptions} [requestOptions] - Optional request options for instance selection
50
- * @returns {Promise<{ serverName: string; tools: Tool[] }>} Object containing server name and matching tools
50
+ * @returns {Promise<{ serverName: string; tools: ToolSummary[] }>} Object containing server name and matching tools
51
51
  * @throws {Error} If the specified server is not found or not connected
52
52
  *
53
53
  * @example
@@ -68,9 +68,15 @@ export async function findToolsInServer(serverName, pattern, searchIn = 'both',
68
68
  const matchDescription = searchIn !== 'name' && tool.description && regex.test(tool.description);
69
69
  return matchName || matchDescription;
70
70
  });
71
+ // Convert to ToolSummary format
72
+ const toolSummaries = matchingTools.map((tool) => ({
73
+ name: tool.name,
74
+ description: tool.description,
75
+ serverName: serverName
76
+ }));
71
77
  return {
72
78
  serverName: serverName,
73
- tools: matchingTools
79
+ tools: toolSummaries
74
80
  };
75
81
  }
76
82
  /**
@@ -84,8 +90,8 @@ export async function findToolsInServer(serverName, pattern, searchIn = 'both',
84
90
  * @param {string} pattern - Regex pattern to search for in tool names and descriptions
85
91
  * @param {'name' | 'description' | 'both'} [searchIn='both'] - Where to perform the search
86
92
  * @param {boolean} [caseSensitive=false] - Whether the search should be case-sensitive
87
- * @param {() => Promise<Record<string, { tools: Tool[] }>>} listAllToolsFn - Function to list all tools
88
- * @returns {Promise<Record<string, { tools: Tool[] }>>} Object mapping server names to matching tools
93
+ * @param {() => Promise<Record<string, { tools: ToolSummary[] }>>} listAllToolsFn - Function to list all tools
94
+ * @returns {Promise<Record<string, { tools: ToolSummary[] }>>} Object mapping server names to matching tools
89
95
  *
90
96
  * @example
91
97
  * ```typescript
@@ -1,4 +1,4 @@
1
- import type { ServerConfig, ServerInstanceConfig } from '../../config/config.schema.js';
1
+ import type { ServerConfig } from '../../config/config.schema.js';
2
2
  /**
3
3
  * Configuration options for server instance selection in multi-instance scenarios.
4
4
  *
@@ -30,7 +30,7 @@ export interface RequestOptions {
30
30
  export type ServerInstanceInfo = {
31
31
  name: string;
32
32
  config: ServerConfig;
33
- instance: ServerInstanceConfig & Record<string, unknown>;
33
+ instance: Record<string, unknown>;
34
34
  };
35
35
  /**
36
36
  * Type guard return type.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAG/B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/hub-tools/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAG/B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC"}