@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,103 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * MCP Server Configuration Schema
4
+ * Simplified schema for MCP-HUB-LITE Lite version
5
+ */
6
+ // Server configuration schema (keyed by server name)
7
+ export const ServerConfigSchema = z.object({
8
+ command: z.string().optional(),
9
+ args: z.array(z.string()).default([]),
10
+ env: z.record(z.string(), z.string()).optional(),
11
+ enabled: z.boolean().default(true),
12
+ tags: z.record(z.string(), z.string()).optional(),
13
+ type: z.enum(['stdio', 'sse', 'streamable-http', 'http']).default('stdio'),
14
+ timeout: z.number().default(60000),
15
+ url: z.string().optional(),
16
+ allowedTools: z.array(z.string()).default([]),
17
+ description: z.string().optional()
18
+ });
19
+ // Server instance schema (each instance contains id, timestamp, hash)
20
+ export const ServerInstanceConfigSchema = z.object({
21
+ id: z.string(),
22
+ timestamp: z.number(), // Startup time
23
+ hash: z.string(),
24
+ pid: z.number().optional(), // Process ID
25
+ startTime: z.number().optional() // Startup time (same as timestamp, for compatibility)
26
+ });
27
+ /**
28
+ * Logging Configuration Schema
29
+ */
30
+ export const LoggingConfigSchema = z
31
+ .object({
32
+ level: z.custom().default('info'),
33
+ rotationAge: z.string().default('7d'), // e.g., "7d", "30d"
34
+ jsonPretty: z.boolean().default(true), // Enable pretty JSON formatting in logs
35
+ mcpCommDebug: z.boolean().default(false), // Enable MCP communication debug logging
36
+ sessionDebug: z.boolean().default(false) // Enable session debug logging
37
+ })
38
+ .default({
39
+ level: 'info',
40
+ rotationAge: '7d',
41
+ jsonPretty: true,
42
+ mcpCommDebug: false,
43
+ sessionDebug: false
44
+ });
45
+ /**
46
+ * Security Configuration Schema
47
+ */
48
+ export const SecurityConfigSchema = z
49
+ .object({
50
+ allowedNetworks: z
51
+ .array(z.string())
52
+ .default(['127.0.0.1', '192.168.0.0/16', '10.0.0.0/8', '172.16.0.0/12']),
53
+ maxConcurrentConnections: z.number().min(1).max(1000).default(50),
54
+ connectionTimeout: z.number().min(1000).default(30000),
55
+ idleConnectionTimeout: z.number().min(30000).default(300000),
56
+ sessionTimeout: z
57
+ .number()
58
+ .min(60000)
59
+ .default(30 * 60 * 1000), // Default 30 minutes, min 1 minute
60
+ sessionFlushInterval: z
61
+ .number()
62
+ .min(1000)
63
+ .default(15 * 60 * 1000), // Default 15 minutes, min 1 second
64
+ maxConnections: z.number().min(1).max(1000).default(50)
65
+ })
66
+ .default({
67
+ allowedNetworks: ['127.0.0.1', '192.168.0.0/16', '10.0.0.0/8', '172.16.0.0/12'],
68
+ maxConcurrentConnections: 50,
69
+ connectionTimeout: 30000,
70
+ idleConnectionTimeout: 300000,
71
+ sessionTimeout: 30 * 60 * 1000,
72
+ sessionFlushInterval: 15 * 60 * 1000,
73
+ maxConnections: 50
74
+ });
75
+ /**
76
+ * System Configuration Schema
77
+ */
78
+ export const SystemConfigSchema = z.object({
79
+ version: z.string().default('1.0.0'),
80
+ system: z
81
+ .object({
82
+ host: z.string().default('localhost'),
83
+ port: z.number().default(7788),
84
+ language: z.enum(['zh', 'en']).default('zh'),
85
+ theme: z.enum(['light', 'dark', 'system']).default('system'),
86
+ logging: LoggingConfigSchema
87
+ })
88
+ .default({
89
+ host: 'localhost',
90
+ port: 7788,
91
+ language: 'zh',
92
+ theme: 'system',
93
+ logging: {
94
+ level: 'info',
95
+ rotationAge: '7d',
96
+ jsonPretty: true,
97
+ mcpCommDebug: false,
98
+ sessionDebug: false
99
+ }
100
+ }),
101
+ security: SecurityConfigSchema,
102
+ servers: z.record(z.string(), ServerConfigSchema).default({})
103
+ });
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Server configuration management utilities.
3
+ * Handles CRUD operations for server configurations and instances.
4
+ */
5
+ import type { ServerConfig, ServerInstanceConfig } from './config.schema.js';
6
+ /**
7
+ * Adds multiple server configurations to the system in a single operation.
8
+ *
9
+ * @param servers - Array of server objects containing name and partial configuration
10
+ * @param currentServers - Current servers configuration object (will be modified)
11
+ * @param serverInstances - Current server instances record (will be modified)
12
+ * @returns The updated servers configuration
13
+ */
14
+ export declare function addServers(servers: Array<{
15
+ name: string;
16
+ config: Partial<ServerConfig>;
17
+ }>, currentServers: Record<string, ServerConfig>, serverInstances: Record<string, ServerInstanceConfig[]>): Record<string, ServerConfig>;
18
+ /**
19
+ * Adds a new server configuration to the system.
20
+ *
21
+ * @param name - The unique name for the server
22
+ * @param config - The server configuration (partial, will be validated)
23
+ * @param currentServers - Current servers configuration object (will be modified)
24
+ * @param serverInstances - Current server instances record (will be modified)
25
+ * @returns The validated and complete server configuration
26
+ */
27
+ export declare function addServer(name: string, config: Partial<ServerConfig>, currentServers: Record<string, ServerConfig>, serverInstances: Record<string, ServerInstanceConfig[]>): ServerConfig;
28
+ /**
29
+ * Adds a new server instance for the specified server.
30
+ *
31
+ * @param name - The name of the server to add an instance for
32
+ * @param instance - The server instance configuration (partial, will be validated)
33
+ * @param serverInstances - Current server instances record (will be modified)
34
+ * @returns The validated and complete server instance configuration
35
+ */
36
+ export declare function addServerInstance(name: string, instance: Partial<ServerInstanceConfig>, serverInstances: Record<string, ServerInstanceConfig[]>): ServerInstanceConfig;
37
+ /**
38
+ * Updates an existing server configuration with the provided changes.
39
+ *
40
+ * @param name - The name of the server to update
41
+ * @param updates - The partial configuration updates to apply
42
+ * @param currentServers - Current servers configuration object (will be modified)
43
+ * @returns True if the server was updated, false if it didn't exist
44
+ */
45
+ export declare function updateServer(name: string, updates: Partial<ServerConfig>, currentServers: Record<string, ServerConfig>): boolean;
46
+ /**
47
+ * Updates an existing server instance configuration with the provided changes.
48
+ *
49
+ * @param name - The name of the server containing the instance to update
50
+ * @param index - The index of the instance to update in the instances array
51
+ * @param updates - The partial instance configuration updates to apply
52
+ * @param serverInstances - Current server instances record (will be modified)
53
+ * @returns True if the instance was updated, false if it didn't exist
54
+ */
55
+ export declare function updateServerInstance(name: string, index: number, updates: Partial<ServerInstanceConfig>, serverInstances: Record<string, ServerInstanceConfig[]>): boolean;
56
+ /**
57
+ * Removes a server configuration and all its instances from the system.
58
+ *
59
+ * @param name - The name of the server to remove
60
+ * @param currentServers - Current servers configuration object (will be modified)
61
+ * @param serverInstances - Current server instances record (will be modified)
62
+ * @returns True if the server was removed, false if it didn't exist
63
+ */
64
+ export declare function removeServer(name: string, currentServers: Record<string, ServerConfig>, serverInstances: Record<string, ServerInstanceConfig[]>): boolean;
65
+ /**
66
+ * Removes a specific server instance from the system.
67
+ *
68
+ * @param name - The name of the server containing the instance to remove
69
+ * @param index - The index of the instance to remove from the instances array
70
+ * @param serverInstances - Current server instances record (will be modified)
71
+ * @returns True if the instance was removed, false if it didn't exist
72
+ */
73
+ export declare function removeServerInstance(name: string, index: number, serverInstances: Record<string, ServerInstanceConfig[]>): boolean;
74
+ //# sourceMappingURL=server-config-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config-manager.d.ts","sourceRoot":"","sources":["../../../../src/config/server-config-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAc7E;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAAE,CAAC,EAC/D,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,GACtD,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAU9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAC7B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,GACtD,YAAY,CAiBd;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACvC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,GACtD,oBAAoB,CActB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,OAAO,CAkBT;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACtC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,GACtD,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC5C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,GACtD,OAAO,CAiBT;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,GACtD,OAAO,CAST"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Server configuration management utilities.
3
+ * Handles CRUD operations for server configurations and instances.
4
+ */
5
+ import { ServerConfigSchema, ServerInstanceConfigSchema } from './config.schema.js';
6
+ import { convertHttpToStreamableHttp } from './type-converter.js';
7
+ /**
8
+ * Generates a unique server instance ID.
9
+ *
10
+ * @param serverName - Name of the server
11
+ * @returns A unique instance ID
12
+ */
13
+ function generateInstanceId(serverName) {
14
+ const ts = Date.now();
15
+ return `${serverName}-${ts}-${Math.random().toString(36).substr(2, 5)}`;
16
+ }
17
+ /**
18
+ * Adds multiple server configurations to the system in a single operation.
19
+ *
20
+ * @param servers - Array of server objects containing name and partial configuration
21
+ * @param currentServers - Current servers configuration object (will be modified)
22
+ * @param serverInstances - Current server instances record (will be modified)
23
+ * @returns The updated servers configuration
24
+ */
25
+ export function addServers(servers, currentServers, serverInstances) {
26
+ for (const { name, config } of servers) {
27
+ // Unified type conversion: convert http to streamable-http
28
+ const convertedConfig = convertHttpToStreamableHttp(config);
29
+ currentServers[name] = ServerConfigSchema.parse(convertedConfig);
30
+ if (!serverInstances[name])
31
+ serverInstances[name] = [];
32
+ }
33
+ // Ensure server configurations are sorted by name
34
+ return Object.fromEntries(Object.entries(currentServers).sort(([a], [b]) => a.localeCompare(b)));
35
+ }
36
+ /**
37
+ * Adds a new server configuration to the system.
38
+ *
39
+ * @param name - The unique name for the server
40
+ * @param config - The server configuration (partial, will be validated)
41
+ * @param currentServers - Current servers configuration object (will be modified)
42
+ * @param serverInstances - Current server instances record (will be modified)
43
+ * @returns The validated and complete server configuration
44
+ */
45
+ export function addServer(name, config, currentServers, serverInstances) {
46
+ // Unified type conversion: convert http to streamable-http
47
+ const convertedConfig = convertHttpToStreamableHttp(config);
48
+ const validated = ServerConfigSchema.parse(convertedConfig);
49
+ currentServers[name] = validated;
50
+ if (!serverInstances[name])
51
+ serverInstances[name] = [];
52
+ // Ensure server configurations are sorted by name
53
+ const sortedServers = Object.fromEntries(Object.entries(currentServers).sort(([a], [b]) => a.localeCompare(b)));
54
+ // Update the reference
55
+ Object.keys(currentServers).forEach((key) => delete currentServers[key]);
56
+ Object.assign(currentServers, sortedServers);
57
+ return validated;
58
+ }
59
+ /**
60
+ * Adds a new server instance for the specified server.
61
+ *
62
+ * @param name - The name of the server to add an instance for
63
+ * @param instance - The server instance configuration (partial, will be validated)
64
+ * @param serverInstances - Current server instances record (will be modified)
65
+ * @returns The validated and complete server instance configuration
66
+ */
67
+ export function addServerInstance(name, instance, serverInstances) {
68
+ if (!serverInstances[name])
69
+ serverInstances[name] = [];
70
+ // Minimal identity generation logic
71
+ if (!instance.id) {
72
+ const ts = Date.now();
73
+ instance.id = generateInstanceId(name);
74
+ instance.timestamp = ts;
75
+ instance.hash = Math.random().toString(36);
76
+ }
77
+ const validated = ServerInstanceConfigSchema.parse(instance);
78
+ serverInstances[name].push(validated);
79
+ return validated;
80
+ }
81
+ /**
82
+ * Updates an existing server configuration with the provided changes.
83
+ *
84
+ * @param name - The name of the server to update
85
+ * @param updates - The partial configuration updates to apply
86
+ * @param currentServers - Current servers configuration object (will be modified)
87
+ * @returns True if the server was updated, false if it didn't exist
88
+ */
89
+ export function updateServer(name, updates, currentServers) {
90
+ if (currentServers[name]) {
91
+ // Unified type conversion: convert http to streamable-http
92
+ const convertedUpdates = convertHttpToStreamableHttp(updates);
93
+ currentServers[name] = { ...currentServers[name], ...convertedUpdates };
94
+ // Ensure server configurations are sorted by name
95
+ const sortedServers = Object.fromEntries(Object.entries(currentServers).sort(([a], [b]) => a.localeCompare(b)));
96
+ // Update the reference
97
+ Object.keys(currentServers).forEach((key) => delete currentServers[key]);
98
+ Object.assign(currentServers, sortedServers);
99
+ return true;
100
+ }
101
+ return false;
102
+ }
103
+ /**
104
+ * Updates an existing server instance configuration with the provided changes.
105
+ *
106
+ * @param name - The name of the server containing the instance to update
107
+ * @param index - The index of the instance to update in the instances array
108
+ * @param updates - The partial instance configuration updates to apply
109
+ * @param serverInstances - Current server instances record (will be modified)
110
+ * @returns True if the instance was updated, false if it didn't exist
111
+ */
112
+ export function updateServerInstance(name, index, updates, serverInstances) {
113
+ if (serverInstances[name]?.[index]) {
114
+ serverInstances[name][index] = { ...serverInstances[name][index], ...updates };
115
+ return true;
116
+ }
117
+ return false;
118
+ }
119
+ /**
120
+ * Removes a server configuration and all its instances from the system.
121
+ *
122
+ * @param name - The name of the server to remove
123
+ * @param currentServers - Current servers configuration object (will be modified)
124
+ * @param serverInstances - Current server instances record (will be modified)
125
+ * @returns True if the server was removed, false if it didn't exist
126
+ */
127
+ export function removeServer(name, currentServers, serverInstances) {
128
+ if (currentServers[name]) {
129
+ delete currentServers[name];
130
+ delete serverInstances[name];
131
+ // Ensure server configurations are sorted by name
132
+ const sortedServers = Object.fromEntries(Object.entries(currentServers).sort(([a], [b]) => a.localeCompare(b)));
133
+ // Update the reference
134
+ Object.keys(currentServers).forEach((key) => delete currentServers[key]);
135
+ Object.assign(currentServers, sortedServers);
136
+ return true;
137
+ }
138
+ return false;
139
+ }
140
+ /**
141
+ * Removes a specific server instance from the system.
142
+ *
143
+ * @param name - The name of the server containing the instance to remove
144
+ * @param index - The index of the instance to remove from the instances array
145
+ * @param serverInstances - Current server instances record (will be modified)
146
+ * @returns True if the instance was removed, false if it didn't exist
147
+ */
148
+ export function removeServerInstance(name, index, serverInstances) {
149
+ if (serverInstances[name]) {
150
+ serverInstances[name].splice(index, 1);
151
+ if (serverInstances[name].length === 0) {
152
+ delete serverInstances[name];
153
+ }
154
+ return true;
155
+ }
156
+ return false;
157
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Type conversion utilities for configuration management.
3
+ * Handles backward compatibility type conversions.
4
+ */
5
+ /**
6
+ * Unified type conversion method: convert type: 'http' to type: 'streamable-http'
7
+ * Ensure compatibility across all scenarios (loading, adding, updating)
8
+ *
9
+ * @param config - The configuration object to convert
10
+ * @returns The converted configuration object
11
+ */
12
+ export declare function convertHttpToStreamableHttp(config: unknown): unknown;
13
+ //# sourceMappingURL=type-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../../../../src/config/type-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CA2BpE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Type conversion utilities for configuration management.
3
+ * Handles backward compatibility type conversions.
4
+ */
5
+ /**
6
+ * Unified type conversion method: convert type: 'http' to type: 'streamable-http'
7
+ * Ensure compatibility across all scenarios (loading, adding, updating)
8
+ *
9
+ * @param config - The configuration object to convert
10
+ * @returns The converted configuration object
11
+ */
12
+ export function convertHttpToStreamableHttp(config) {
13
+ if (!config)
14
+ return config;
15
+ // If it's an array, process each element
16
+ if (Array.isArray(config)) {
17
+ return config.map((item) => convertHttpToStreamableHttp(item));
18
+ }
19
+ // If it's an object, create a copy to avoid directly modifying the original object
20
+ if (typeof config === 'object' && config !== null) {
21
+ const result = {};
22
+ for (const [key, value] of Object.entries(config)) {
23
+ if (key === 'type' && value === 'http') {
24
+ result[key] = 'streamable-http';
25
+ }
26
+ else if (typeof value === 'object' && value !== null) {
27
+ result[key] = convertHttpToStreamableHttp(value);
28
+ }
29
+ else {
30
+ result[key] = value;
31
+ }
32
+ }
33
+ return result;
34
+ }
35
+ // Return primitive types directly
36
+ return config;
37
+ }
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":""}