@loop_ouroboros/mcp-hub-lite 1.0.2 → 1.1.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 (333) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/client/assets/{HomeView-7rMg9C6t.js → HomeView-Bu2joUvW.js} +1 -1
  3. package/dist/client/assets/ResourceDetailView-BvrhDCD1.js +1 -0
  4. package/dist/client/assets/ResourceDetailView-DUJZbegl.css +1 -0
  5. package/dist/client/assets/ResourcesView-Cc8RHtia.css +1 -0
  6. package/dist/client/assets/ResourcesView-LjqioF_s.js +1 -0
  7. package/dist/client/assets/ServerDashboard-BfLeFDGw.css +1 -0
  8. package/dist/client/assets/ServerDashboard-FhHJFvUi.js +1 -0
  9. package/dist/client/assets/ServerDetail-BKV-M4qT.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-BXgtDyt3.js +36 -0
  13. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-D-ooYNdN.js +1 -0
  14. package/dist/client/assets/SettingsView-CMFG91Z4.js +1 -0
  15. package/dist/client/assets/SettingsView-GkBOKL0V.css +1 -0
  16. package/dist/client/assets/ToolCallDialog-Bf4Xe4gH.js +1 -0
  17. package/dist/client/assets/ToolsView-DFpha1z0.js +1 -0
  18. package/dist/client/assets/{_baseClone-5q1b0P3O.js → _baseClone-Bp9Rjwd7.js} +1 -1
  19. package/dist/client/assets/el-form-item-B4LbJ6OO.css +1 -0
  20. package/dist/client/assets/el-form-item-DdSUWYsl.js +12 -0
  21. package/dist/client/assets/el-input-99gMrutP.js +1 -0
  22. package/dist/client/assets/el-input-BH4BZKnG.css +1 -0
  23. package/dist/client/assets/{el-loading-H85n3BUC.js → el-loading-CIQ5pD5u.js} +1 -1
  24. package/dist/client/assets/el-overlay-BVM6msGX.js +1 -0
  25. package/dist/client/assets/{el-select-C0U_l4IZ.css → el-overlay-CBvdpA69.css} +1 -1
  26. package/dist/client/assets/{ResourceDetailView-BdOaL_-o.css → el-radio-group-B0bauIRR.css} +1 -1
  27. package/dist/client/assets/el-radio-group-DhXWy7ry.js +1 -0
  28. package/dist/client/assets/el-skeleton-item-BLY1jEuR.css +1 -0
  29. package/dist/client/assets/el-skeleton-item-DJz-Us12.js +1 -0
  30. package/dist/client/assets/el-switch-BBrS-_6y.css +1 -0
  31. package/dist/client/assets/el-switch-Bu8AQ5uM.js +1 -0
  32. package/dist/client/assets/el-tab-pane-BnGMaV56.js +1 -0
  33. package/dist/client/assets/el-table-column-BMWOaLS_.js +1 -0
  34. package/dist/client/assets/el-table-column-BdvRS9Y2.css +1 -0
  35. package/dist/client/assets/index-C2V-ZGji.js +1 -0
  36. package/dist/client/assets/{index-BsDWtoIl.css → index-DpH6ZSbs.css} +1 -1
  37. package/dist/client/assets/index-vhkqgpmN.js +2 -0
  38. package/dist/client/assets/{omit-DPsOVNIJ.js → omit-CqPQN3XP.js} +1 -1
  39. package/dist/client/assets/{raf-DY5mgbuB.js → raf-C2wXzaVU.js} +1 -1
  40. package/dist/client/assets/{vue-vendor-6ny5zj9i.js → vue-vendor-BLHLXXJK.js} +1 -1
  41. package/dist/client/index.html +3 -3
  42. package/dist/server/shared/models/resource.model.d.ts +2 -1
  43. package/dist/server/shared/models/resource.model.d.ts.map +1 -1
  44. package/dist/server/shared/models/server.model.d.ts +362 -5
  45. package/dist/server/shared/models/server.model.d.ts.map +1 -1
  46. package/dist/server/shared/models/server.model.js +220 -1
  47. package/dist/server/shared/models/session.model.d.ts +1 -57
  48. package/dist/server/shared/models/session.model.d.ts.map +1 -1
  49. package/dist/server/shared/models/session.model.js +1 -55
  50. package/dist/server/shared/models/tool.model.d.ts +4 -2
  51. package/dist/server/shared/models/tool.model.d.ts.map +1 -1
  52. package/dist/server/shared/types/session-context.types.d.ts +0 -2
  53. package/dist/server/shared/types/session-context.types.d.ts.map +1 -1
  54. package/dist/server/shared/types/websocket.types.d.ts +17 -10
  55. package/dist/server/shared/types/websocket.types.d.ts.map +1 -1
  56. package/dist/server/src/api/mcp/gateway.d.ts +1 -3
  57. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
  58. package/dist/server/src/api/mcp/gateway.js +19 -50
  59. package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -1
  60. package/dist/server/src/api/mcp/session-context-extractor.js +5 -14
  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/status.d.ts.map +1 -1
  81. package/dist/server/src/cli/commands/status.js +41 -30
  82. package/dist/server/src/cli/index.d.ts.map +1 -1
  83. package/dist/server/src/cli/index.js +2 -1
  84. package/dist/server/src/cli/server.d.ts +11 -2
  85. package/dist/server/src/cli/server.d.ts.map +1 -1
  86. package/dist/server/src/config/config-change-logger.d.ts +22 -0
  87. package/dist/server/src/config/config-change-logger.d.ts.map +1 -1
  88. package/dist/server/src/config/config-change-logger.js +135 -11
  89. package/dist/server/src/config/config-loader.d.ts +6 -5
  90. package/dist/server/src/config/config-loader.d.ts.map +1 -1
  91. package/dist/server/src/config/config-loader.js +54 -16
  92. package/dist/server/src/config/config-manager.d.ts +51 -43
  93. package/dist/server/src/config/config-manager.d.ts.map +1 -1
  94. package/dist/server/src/config/config-manager.js +84 -66
  95. package/dist/server/src/config/config-migrator.d.ts +82 -0
  96. package/dist/server/src/config/config-migrator.d.ts.map +1 -0
  97. package/dist/server/src/config/config-migrator.js +348 -0
  98. package/dist/server/src/config/config-saver.d.ts +2 -0
  99. package/dist/server/src/config/config-saver.d.ts.map +1 -1
  100. package/dist/server/src/config/config-saver.js +8 -2
  101. package/dist/server/src/config/config.schema.d.ts +10 -104
  102. package/dist/server/src/config/config.schema.d.ts.map +1 -1
  103. package/dist/server/src/config/config.schema.js +15 -99
  104. package/dist/server/src/config/path-validator.d.ts +27 -0
  105. package/dist/server/src/config/path-validator.d.ts.map +1 -0
  106. package/dist/server/src/config/path-validator.js +53 -0
  107. package/dist/server/src/config/server-config-manager.d.ts +37 -31
  108. package/dist/server/src/config/server-config-manager.d.ts.map +1 -1
  109. package/dist/server/src/config/server-config-manager.js +222 -66
  110. package/dist/server/src/config/type-converter.d.ts.map +1 -1
  111. package/dist/server/src/config/type-converter.js +3 -2
  112. package/dist/server/src/models/event.model.d.ts +17 -10
  113. package/dist/server/src/models/event.model.d.ts.map +1 -1
  114. package/dist/server/src/models/server.model.d.ts +17 -3
  115. package/dist/server/src/models/server.model.d.ts.map +1 -1
  116. package/dist/server/src/models/server.model.js +2 -1
  117. package/dist/server/src/models/system-tools.constants.d.ts +10 -27
  118. package/dist/server/src/models/system-tools.constants.d.ts.map +1 -1
  119. package/dist/server/src/models/system-tools.constants.js +4 -8
  120. package/dist/server/src/pid/manager.d.ts.map +1 -1
  121. package/dist/server/src/pid/manager.js +2 -1
  122. package/dist/server/src/server/dev-server.js +34 -20
  123. package/dist/server/src/server/runner.d.ts.map +1 -1
  124. package/dist/server/src/server/runner.js +41 -26
  125. package/dist/server/src/services/connection/connection-manager.d.ts +85 -103
  126. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
  127. package/dist/server/src/services/connection/connection-manager.js +286 -241
  128. package/dist/server/src/services/connection/tool-cache.d.ts +27 -25
  129. package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -1
  130. package/dist/server/src/services/connection/tool-cache.js +50 -55
  131. package/dist/server/src/services/gateway/gateway.service.d.ts +2 -0
  132. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
  133. package/dist/server/src/services/gateway/gateway.service.js +15 -19
  134. package/dist/server/src/services/gateway/global-transport.d.ts +10 -0
  135. package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -0
  136. package/dist/server/src/services/gateway/global-transport.js +42 -0
  137. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -1
  138. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +67 -65
  139. package/dist/server/src/services/gateway/request-handlers/index.d.ts +1 -1
  140. package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -1
  141. package/dist/server/src/services/gateway/request-handlers/index.js +1 -1
  142. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +1 -4
  143. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
  144. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +10 -81
  145. package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts +35 -0
  146. package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts.map +1 -0
  147. package/dist/server/src/services/gateway/request-handlers/initialize.constants.js +44 -0
  148. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
  149. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +5 -4
  150. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -1
  151. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +32 -77
  152. package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts.map +1 -1
  153. package/dist/server/src/services/gateway/request-handlers/tools-handler.js +4 -3
  154. package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -1
  155. package/dist/server/src/services/gateway/tool-list-generator.js +37 -16
  156. package/dist/server/src/services/gateway/types.d.ts +2 -1
  157. package/dist/server/src/services/gateway/types.d.ts.map +1 -1
  158. package/dist/server/src/services/hub-manager.service.d.ts +32 -238
  159. package/dist/server/src/services/hub-manager.service.d.ts.map +1 -1
  160. package/dist/server/src/services/hub-manager.service.js +89 -267
  161. package/dist/server/src/services/hub-tools/index.d.ts +1 -3
  162. package/dist/server/src/services/hub-tools/index.d.ts.map +1 -1
  163. package/dist/server/src/services/hub-tools/index.js +1 -2
  164. package/dist/server/src/services/hub-tools/instance-matcher.d.ts +62 -0
  165. package/dist/server/src/services/hub-tools/instance-matcher.d.ts.map +1 -0
  166. package/dist/server/src/services/hub-tools/instance-matcher.js +132 -0
  167. package/dist/server/src/services/hub-tools/instance-selector.d.ts +29 -0
  168. package/dist/server/src/services/hub-tools/instance-selector.d.ts.map +1 -0
  169. package/dist/server/src/services/hub-tools/instance-selector.js +103 -0
  170. package/dist/server/src/services/hub-tools/resource-generator.d.ts +24 -1
  171. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
  172. package/dist/server/src/services/hub-tools/resource-generator.js +259 -39
  173. package/dist/server/src/services/hub-tools/server-selector.d.ts +26 -13
  174. package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -1
  175. package/dist/server/src/services/hub-tools/server-selector.js +44 -37
  176. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +1 -4
  177. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -1
  178. package/dist/server/src/services/hub-tools/system-tool-definitions.js +17 -80
  179. package/dist/server/src/services/hub-tools/tool-search.d.ts +7 -7
  180. package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -1
  181. package/dist/server/src/services/hub-tools/tool-search.js +10 -4
  182. package/dist/server/src/services/hub-tools/types.d.ts +2 -2
  183. package/dist/server/src/services/hub-tools/types.d.ts.map +1 -1
  184. package/dist/server/src/services/hub-tools.service.d.ts +43 -72
  185. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
  186. package/dist/server/src/services/hub-tools.service.js +185 -110
  187. package/dist/server/src/services/search/search-core.service.d.ts +5 -5
  188. package/dist/server/src/services/search/search-core.service.js +11 -11
  189. package/dist/server/src/services/session/session-manager.d.ts +12 -256
  190. package/dist/server/src/services/session/session-manager.d.ts.map +1 -1
  191. package/dist/server/src/services/session/session-manager.js +23 -585
  192. package/dist/server/src/services/session-tracker.service.d.ts +2 -10
  193. package/dist/server/src/services/session-tracker.service.d.ts.map +1 -1
  194. package/dist/server/src/services/session-tracker.service.js +2 -53
  195. package/dist/server/src/services/system-tool-handler.d.ts.map +1 -1
  196. package/dist/server/src/services/system-tool-handler.js +7 -17
  197. package/dist/server/src/utils/composite-key.d.ts +29 -0
  198. package/dist/server/src/utils/composite-key.d.ts.map +1 -0
  199. package/dist/server/src/utils/composite-key.js +39 -0
  200. package/dist/server/src/utils/error-handler.d.ts.map +1 -1
  201. package/dist/server/src/utils/error-handler.js +3 -2
  202. package/dist/server/src/utils/index.d.ts +2 -0
  203. package/dist/server/src/utils/index.d.ts.map +1 -1
  204. package/dist/server/src/utils/index.js +2 -0
  205. package/dist/server/src/utils/instance-id.d.ts +22 -0
  206. package/dist/server/src/utils/instance-id.d.ts.map +1 -0
  207. package/dist/server/src/utils/instance-id.js +59 -0
  208. package/dist/server/src/utils/json-utils.d.ts +4 -4
  209. package/dist/server/src/utils/json-utils.d.ts.map +1 -1
  210. package/dist/server/src/utils/json-utils.js +4 -4
  211. package/dist/server/src/utils/logger/dev-logger.d.ts +2 -1
  212. package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -1
  213. package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
  214. package/dist/server/src/utils/logger/log-formatter.js +82 -5
  215. package/dist/server/src/utils/logger/log-modules.d.ts +15 -9
  216. package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -1
  217. package/dist/server/src/utils/logger/log-modules.js +8 -6
  218. package/dist/server/src/utils/parameter-validator.d.ts +10 -0
  219. package/dist/server/src/utils/parameter-validator.d.ts.map +1 -0
  220. package/dist/server/src/utils/parameter-validator.js +53 -0
  221. package/dist/server/src/utils/process-tree.d.ts +49 -0
  222. package/dist/server/src/utils/process-tree.d.ts.map +1 -0
  223. package/dist/server/src/utils/process-tree.js +285 -0
  224. package/dist/server/src/utils/request-context.d.ts +0 -18
  225. package/dist/server/src/utils/request-context.d.ts.map +1 -1
  226. package/dist/server/src/utils/request-context.js +0 -20
  227. package/dist/server/src/utils/sort-utils.d.ts +40 -0
  228. package/dist/server/src/utils/sort-utils.d.ts.map +1 -0
  229. package/dist/server/src/utils/sort-utils.js +131 -0
  230. package/dist/server/src/utils/transports/sse-transport.d.ts +16 -1
  231. package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -1
  232. package/dist/server/src/utils/transports/sse-transport.js +55 -9
  233. package/dist/server/src/utils/transports/stdio-transport.d.ts +24 -53
  234. package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -1
  235. package/dist/server/src/utils/transports/stdio-transport.js +66 -247
  236. package/dist/server/src/utils/transports/streamable-http-transport.d.ts +24 -1
  237. package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -1
  238. package/dist/server/src/utils/transports/streamable-http-transport.js +68 -8
  239. package/dist/server/src/utils/transports/transport-factory.d.ts +9 -4
  240. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
  241. package/dist/server/src/utils/transports/transport-factory.js +31 -11
  242. package/dist/server/src/utils/transports/transport.interface.d.ts +6 -0
  243. package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -1
  244. package/dist/server/src/utils/version.d.ts +11 -0
  245. package/dist/server/src/utils/version.d.ts.map +1 -0
  246. package/dist/server/src/utils/version.js +57 -0
  247. package/dist/server/tests/contract/mcp-protocol/initialize.test.js +24 -24
  248. package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +49 -45
  249. package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +35 -36
  250. package/dist/server/tests/evaluation/evaluation.test.js +10 -9
  251. package/dist/server/tests/integration/api/gateway.test.js +2 -2
  252. package/dist/server/tests/integration/gateway/fault-tolerance.test.js +65 -25
  253. package/dist/server/tests/integration/gateway/mcp-connection.test.js +53 -61
  254. package/dist/server/tests/server.test.js +27 -16
  255. package/dist/server/tests/temp/temp-run-docling.d.ts +2 -0
  256. package/dist/server/tests/temp/temp-run-docling.d.ts.map +1 -0
  257. package/dist/server/tests/temp/temp-run-docling.js +53 -0
  258. package/dist/server/tests/types/test-helpers.d.ts +1 -2
  259. package/dist/server/tests/types/test-helpers.d.ts.map +1 -1
  260. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts +2 -0
  261. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts.map +1 -0
  262. package/dist/server/tests/unit/config/config-loader-automatic-migration.test.js +199 -0
  263. package/dist/server/tests/unit/config/config-migrator.test.d.ts +2 -0
  264. package/dist/server/tests/unit/config/config-migrator.test.d.ts.map +1 -0
  265. package/dist/server/tests/unit/config/config-migrator.test.js +316 -0
  266. package/dist/server/tests/unit/config/config-saver.test.d.ts +2 -0
  267. package/dist/server/tests/unit/config/config-saver.test.d.ts.map +1 -0
  268. package/dist/server/tests/unit/config/config-saver.test.js +200 -0
  269. package/dist/server/tests/unit/config/config.schema.test.d.ts +2 -0
  270. package/dist/server/tests/unit/config/config.schema.test.d.ts.map +1 -0
  271. package/dist/server/tests/unit/config/config.schema.test.js +347 -0
  272. package/dist/server/tests/unit/server/runner.test.js +86 -62
  273. package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts +2 -0
  274. package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts.map +1 -0
  275. package/dist/server/tests/unit/services/connection/connection-manager.test.js +112 -0
  276. package/dist/server/tests/unit/services/hub-manager-service.test.js +112 -46
  277. package/dist/server/tests/unit/services/hub-manager.test.js +25 -15
  278. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts +2 -0
  279. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts.map +1 -0
  280. package/dist/server/tests/unit/services/hub-tools/instance-selector.test.js +195 -0
  281. package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts +2 -0
  282. package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts.map +1 -0
  283. package/dist/server/tests/unit/services/hub-tools/server-selector.test.js +190 -0
  284. package/dist/server/tests/unit/services/hub-tools.service.test.js +560 -320
  285. package/dist/server/tests/unit/services/instance-matcher.test.d.ts +2 -0
  286. package/dist/server/tests/unit/services/instance-matcher.test.d.ts.map +1 -0
  287. package/dist/server/tests/unit/services/instance-matcher.test.js +256 -0
  288. package/dist/server/tests/unit/services/session-manager.test.js +26 -436
  289. package/dist/server/tests/unit/utils/config.test.js +88 -186
  290. package/dist/server/tests/unit/utils/json-utils.test.js +18 -18
  291. package/dist/server/tests/unit/utils/logger-formatter.test.d.ts +2 -0
  292. package/dist/server/tests/unit/utils/logger-formatter.test.d.ts.map +1 -0
  293. package/dist/server/tests/unit/utils/logger-formatter.test.js +66 -0
  294. package/dist/server/tests/unit/utils/parameter-validator.test.d.ts +2 -0
  295. package/dist/server/tests/unit/utils/parameter-validator.test.d.ts.map +1 -0
  296. package/dist/server/tests/unit/utils/parameter-validator.test.js +63 -0
  297. package/dist/server/tests/unit/utils/process-tree.test.d.ts +2 -0
  298. package/dist/server/tests/unit/utils/process-tree.test.d.ts.map +1 -0
  299. package/dist/server/tests/unit/utils/process-tree.test.js +129 -0
  300. package/dist/server/tests/unit/utils/request-context.test.js +5 -24
  301. package/dist/server/tests/unit/utils/sort-utils.test.d.ts +2 -0
  302. package/dist/server/tests/unit/utils/sort-utils.test.d.ts.map +1 -0
  303. package/dist/server/tests/unit/utils/sort-utils.test.js +220 -0
  304. package/dist/server/tests/unit/utils/transport-factory.test.d.ts +2 -0
  305. package/dist/server/tests/unit/utils/transport-factory.test.d.ts.map +1 -0
  306. package/dist/server/tests/unit/utils/transport-factory.test.js +55 -0
  307. package/package.json +1 -1
  308. package/dist/client/assets/ResourceDetailView-Bf-1ffbk.js +0 -1
  309. package/dist/client/assets/ResourcesView-CjMklkyv.css +0 -1
  310. package/dist/client/assets/ResourcesView-g5x4xCPh.js +0 -1
  311. package/dist/client/assets/ServerDashboard-Chpne8Q0.css +0 -1
  312. package/dist/client/assets/ServerDashboard-G8Wmp4hF.js +0 -2
  313. package/dist/client/assets/ServerListView-dV2XrPjo.js +0 -32
  314. package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +0 -1
  315. package/dist/client/assets/SessionsView-Ckd38lj1.js +0 -1
  316. package/dist/client/assets/SettingsView-BJUdepEQ.js +0 -1
  317. package/dist/client/assets/ToolCallDialog-C_bTCpHC.js +0 -1
  318. package/dist/client/assets/ToolsView-0c2eputu.js +0 -1
  319. package/dist/client/assets/el-form-item-BVMLpmVC.css +0 -1
  320. package/dist/client/assets/el-form-item-ClFnj49k.js +0 -12
  321. package/dist/client/assets/el-input-CDnuSKVZ.js +0 -1
  322. package/dist/client/assets/el-input-CmuHb8HS.css +0 -1
  323. package/dist/client/assets/el-overlay-B2ZKM6Up.css +0 -1
  324. package/dist/client/assets/el-overlay-CzMkXyYy.js +0 -1
  325. package/dist/client/assets/el-select-DvjGddk_.js +0 -1
  326. package/dist/client/assets/el-tab-pane-C_DQMcwe.js +0 -1
  327. package/dist/client/assets/el-table-column-CASRIbZM.js +0 -1
  328. package/dist/client/assets/el-table-column-T_mV9jNw.css +0 -1
  329. package/dist/client/assets/el-tag-DjxZVOpb.css +0 -1
  330. package/dist/client/assets/el-tag-npbwux4f.js +0 -1
  331. package/dist/client/assets/index-CCnAxNF8.js +0 -2
  332. package/dist/client/assets/index-d1DZeSfz.js +0 -1
  333. package/dist/client/assets/vnode-CHomNjgN.js +0 -1
@@ -5,9 +5,9 @@
5
5
  <link rel="icon" href="/favicon.ico" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>MCP Server Manager</title>
8
- <script type="module" crossorigin src="/assets/index-CCnAxNF8.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/vue-vendor-6ny5zj9i.js">
10
- <link rel="stylesheet" crossorigin href="/assets/index-BsDWtoIl.css">
8
+ <script type="module" crossorigin src="/assets/index-vhkqgpmN.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/vue-vendor-BLHLXXJK.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/index-DpH6ZSbs.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="app"></div>
@@ -3,6 +3,7 @@ export interface Resource {
3
3
  name: string;
4
4
  mimeType?: string;
5
5
  description?: string;
6
- serverId?: string;
6
+ serverName?: string;
7
+ serverIndex?: number;
7
8
  }
8
9
  //# sourceMappingURL=resource.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.model.d.ts","sourceRoot":"","sources":["../../../../shared/models/resource.model.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"resource.model.d.ts","sourceRoot":"","sources":["../../../../shared/models/resource.model.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,7 +1,12 @@
1
+ import { z } from 'zod';
1
2
  import type { ServerStatus, ServerTransport, ServerType, LogLevel } from '../types/common.types';
2
3
  import type { Tool } from './tool.model';
3
4
  import type { Resource } from './resource.model';
4
- export interface ServerConfig {
5
+ /**
6
+ * Server runtime configuration (flat format, merged template + instance)
7
+ * Used by connection manager and frontend for actual server execution
8
+ */
9
+ export interface ServerRuntimeConfig {
5
10
  command?: string;
6
11
  args?: string[];
7
12
  url?: string;
@@ -9,21 +14,366 @@ export interface ServerConfig {
9
14
  headers?: Record<string, string>;
10
15
  timeout?: number;
11
16
  enabled?: boolean;
12
- allowedTools?: string[];
17
+ aggregatedTools?: string[];
13
18
  type: ServerTransport;
14
19
  tags?: Record<string, string>;
15
20
  description?: string;
21
+ proxy?: {
22
+ url: string;
23
+ };
16
24
  }
17
- export interface ServerInstanceConfig {
25
+ /**
26
+ * Instance selection strategy constants for multi-instance servers
27
+ */
28
+ export declare const InstanceSelectionStrategy: {
29
+ readonly RANDOM: "random";
30
+ readonly ROUND_ROBIN: "round-robin";
31
+ readonly TAG_MATCH_UNIQUE: "tag-match-unique";
32
+ };
33
+ export type InstanceSelectionStrategy = (typeof InstanceSelectionStrategy)[keyof typeof InstanceSelectionStrategy];
34
+ /**
35
+ * Transport type constants for MCP server connections
36
+ */
37
+ export declare const TransportType: {
38
+ readonly STDIO: "stdio";
39
+ readonly SSE: "sse";
40
+ readonly STREAMABLE_HTTP: "streamable-http";
41
+ readonly HTTP: "http";
42
+ };
43
+ export type TransportType = (typeof TransportType)[keyof typeof TransportType];
44
+ /**
45
+ * Server Environment Configuration Base Schema
46
+ * Shared by both ServerTemplate and ServerInstance (for overrides)
47
+ */
48
+ export declare const ServerEnvConfigSchema: z.ZodObject<{
49
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
50
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
51
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
52
+ proxy: z.ZodOptional<z.ZodObject<{
53
+ url: z.ZodString;
54
+ }, z.core.$strip>>;
55
+ }, z.core.$strip>;
56
+ export type ServerEnvConfig = z.infer<typeof ServerEnvConfigSchema>;
57
+ /**
58
+ * Server Instance Metadata Schema
59
+ * Shared by ServerInstance and ServerInstanceConfig
60
+ */
61
+ export declare const ServerInstanceMetadataSchema: z.ZodObject<{
62
+ id: z.ZodString;
63
+ index: z.ZodOptional<z.ZodNumber>;
64
+ displayName: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strip>;
66
+ export type ServerInstanceMetadata = z.infer<typeof ServerInstanceMetadataSchema>;
67
+ /**
68
+ * Server Instance Runtime State Schema
69
+ * Shared by ServerInstance and ServerInstanceConfig
70
+ */
71
+ export declare const ServerInstanceRuntimeSchema: z.ZodObject<{
72
+ timestamp: z.ZodOptional<z.ZodNumber>;
73
+ pid: z.ZodOptional<z.ZodNumber>;
74
+ startTime: z.ZodOptional<z.ZodNumber>;
75
+ }, z.core.$strip>;
76
+ export type ServerInstanceRuntime = z.infer<typeof ServerInstanceRuntimeSchema>;
77
+ /**
78
+ * Tag Definition Schema
79
+ * Defines metadata about a tag key for validation and UI purposes
80
+ */
81
+ export declare const TagDefinitionSchema: z.ZodObject<{
82
+ key: z.ZodString;
83
+ description: z.ZodOptional<z.ZodString>;
84
+ type: z.ZodDefault<z.ZodEnum<{
85
+ string: "string";
86
+ number: "number";
87
+ boolean: "boolean";
88
+ enum: "enum";
89
+ }>>;
90
+ values: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
+ }, z.core.$strip>;
92
+ export type TagDefinition = z.infer<typeof TagDefinitionSchema>;
93
+ /**
94
+ * Server Instance Configuration Schema
95
+ * Represents a single instance of a server with specific configuration
96
+ */
97
+ export declare const ServerInstanceSchema: z.ZodObject<{
98
+ id: z.ZodString;
99
+ index: z.ZodOptional<z.ZodNumber>;
100
+ displayName: z.ZodOptional<z.ZodString>;
101
+ timestamp: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
102
+ pid: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
103
+ startTime: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
104
+ enabled: z.ZodDefault<z.ZodBoolean>;
105
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
106
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
107
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
108
+ proxy: z.ZodOptional<z.ZodObject<{
109
+ url: z.ZodString;
110
+ }, z.core.$strip>>;
111
+ tags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
112
+ }, z.core.$strip>;
113
+ export type ServerInstance = z.infer<typeof ServerInstanceSchema>;
114
+ /**
115
+ * Server Instance Update Schema (without defaults)
116
+ * Used for partial updates to server instances - intentionally omits default values
117
+ * to prevent overwriting existing configuration with empty defaults.
118
+ */
119
+ export declare const ServerInstanceUpdateSchema: z.ZodObject<{
120
+ id: z.ZodOptional<z.ZodString>;
121
+ index: z.ZodOptional<z.ZodNumber>;
122
+ displayName: z.ZodOptional<z.ZodString>;
123
+ timestamp: z.ZodOptional<z.ZodNumber>;
124
+ pid: z.ZodOptional<z.ZodNumber>;
125
+ startTime: z.ZodOptional<z.ZodNumber>;
126
+ enabled: z.ZodOptional<z.ZodBoolean>;
127
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
128
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
129
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
130
+ proxy: z.ZodOptional<z.ZodObject<{
131
+ url: z.ZodString;
132
+ }, z.core.$strip>>;
133
+ tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
134
+ }, z.core.$strip>;
135
+ export type ServerInstanceUpdate = z.infer<typeof ServerInstanceUpdateSchema>;
136
+ /**
137
+ * Server Template Configuration Schema
138
+ * Template configuration that can be shared across multiple instances
139
+ */
140
+ export declare const ServerTemplateSchema: z.ZodObject<{
141
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
142
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
143
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
144
+ proxy: z.ZodOptional<z.ZodObject<{
145
+ url: z.ZodString;
146
+ }, z.core.$strip>>;
147
+ command: z.ZodOptional<z.ZodString>;
148
+ type: z.ZodDefault<z.ZodEnum<{
149
+ stdio: "stdio";
150
+ sse: "sse";
151
+ "streamable-http": "streamable-http";
152
+ http: "http";
153
+ }>>;
154
+ timeout: z.ZodDefault<z.ZodNumber>;
155
+ url: z.ZodOptional<z.ZodString>;
156
+ aggregatedTools: z.ZodDefault<z.ZodArray<z.ZodString>>;
157
+ description: z.ZodOptional<z.ZodString>;
158
+ instanceSelectionStrategy: z.ZodOptional<z.ZodEnum<{
159
+ random: "random";
160
+ "round-robin": "round-robin";
161
+ "tag-match-unique": "tag-match-unique";
162
+ }>>;
163
+ }, z.core.$strip>;
164
+ export type ServerTemplate = z.infer<typeof ServerTemplateSchema>;
165
+ /**
166
+ * Server Configuration Schema (v1.1 - Primary)
167
+ * A server with a template and multiple instances
168
+ */
169
+ export declare const ServerConfigSchema: z.ZodObject<{
170
+ template: z.ZodObject<{
171
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
172
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
173
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
174
+ proxy: z.ZodOptional<z.ZodObject<{
175
+ url: z.ZodString;
176
+ }, z.core.$strip>>;
177
+ command: z.ZodOptional<z.ZodString>;
178
+ type: z.ZodDefault<z.ZodEnum<{
179
+ stdio: "stdio";
180
+ sse: "sse";
181
+ "streamable-http": "streamable-http";
182
+ http: "http";
183
+ }>>;
184
+ timeout: z.ZodDefault<z.ZodNumber>;
185
+ url: z.ZodOptional<z.ZodString>;
186
+ aggregatedTools: z.ZodDefault<z.ZodArray<z.ZodString>>;
187
+ description: z.ZodOptional<z.ZodString>;
188
+ instanceSelectionStrategy: z.ZodOptional<z.ZodEnum<{
189
+ random: "random";
190
+ "round-robin": "round-robin";
191
+ "tag-match-unique": "tag-match-unique";
192
+ }>>;
193
+ }, z.core.$strip>;
194
+ instances: z.ZodDefault<z.ZodArray<z.ZodObject<{
195
+ id: z.ZodString;
196
+ index: z.ZodOptional<z.ZodNumber>;
197
+ displayName: z.ZodOptional<z.ZodString>;
198
+ timestamp: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
199
+ pid: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
200
+ startTime: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
201
+ enabled: z.ZodDefault<z.ZodBoolean>;
202
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
203
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
204
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
205
+ proxy: z.ZodOptional<z.ZodObject<{
206
+ url: z.ZodString;
207
+ }, z.core.$strip>>;
208
+ tags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
209
+ }, z.core.$strip>>>;
210
+ tagDefinitions: z.ZodDefault<z.ZodArray<z.ZodObject<{
211
+ key: z.ZodString;
212
+ description: z.ZodOptional<z.ZodString>;
213
+ type: z.ZodDefault<z.ZodEnum<{
214
+ string: "string";
215
+ number: "number";
216
+ boolean: "boolean";
217
+ enum: "enum";
218
+ }>>;
219
+ values: z.ZodOptional<z.ZodArray<z.ZodString>>;
220
+ }, z.core.$strip>>>;
221
+ }, z.core.$strip>;
222
+ export type ServerConfig = z.infer<typeof ServerConfigSchema>;
223
+ /**
224
+ * Logging Configuration Schema
225
+ */
226
+ export declare const LoggingConfigSchema: z.ZodDefault<z.ZodObject<{
227
+ level: z.ZodDefault<z.ZodCustom<LogLevel, LogLevel>>;
228
+ rotationAge: z.ZodDefault<z.ZodString>;
229
+ jsonPretty: z.ZodDefault<z.ZodBoolean>;
230
+ mcpCommDebug: z.ZodDefault<z.ZodBoolean>;
231
+ apiDebug: z.ZodDefault<z.ZodBoolean>;
232
+ }, z.core.$strip>>;
233
+ export type LoggingConfig = z.infer<typeof LoggingConfigSchema>;
234
+ /**
235
+ * Security Configuration Schema
236
+ */
237
+ export declare const SecurityConfigSchema: z.ZodDefault<z.ZodObject<{
238
+ allowedNetworks: z.ZodDefault<z.ZodArray<z.ZodString>>;
239
+ maxConcurrentConnections: z.ZodDefault<z.ZodNumber>;
240
+ connectionTimeout: z.ZodDefault<z.ZodNumber>;
241
+ idleConnectionTimeout: z.ZodDefault<z.ZodNumber>;
242
+ maxConnections: z.ZodDefault<z.ZodNumber>;
243
+ }, z.core.$strip>>;
244
+ export type SecurityConfig = z.infer<typeof SecurityConfigSchema>;
245
+ /**
246
+ * System Configuration Schema (v1.1 - Primary)
247
+ */
248
+ export declare const SystemConfigSchema: z.ZodObject<{
249
+ version: z.ZodDefault<z.ZodLiteral<"1.1.0">>;
250
+ system: z.ZodDefault<z.ZodObject<{
251
+ host: z.ZodDefault<z.ZodString>;
252
+ port: z.ZodDefault<z.ZodNumber>;
253
+ language: z.ZodDefault<z.ZodEnum<{
254
+ zh: "zh";
255
+ en: "en";
256
+ }>>;
257
+ theme: z.ZodDefault<z.ZodEnum<{
258
+ light: "light";
259
+ dark: "dark";
260
+ system: "system";
261
+ }>>;
262
+ logging: z.ZodDefault<z.ZodObject<{
263
+ level: z.ZodDefault<z.ZodCustom<LogLevel, LogLevel>>;
264
+ rotationAge: z.ZodDefault<z.ZodString>;
265
+ jsonPretty: z.ZodDefault<z.ZodBoolean>;
266
+ mcpCommDebug: z.ZodDefault<z.ZodBoolean>;
267
+ apiDebug: z.ZodDefault<z.ZodBoolean>;
268
+ }, z.core.$strip>>;
269
+ }, z.core.$strip>>;
270
+ security: z.ZodDefault<z.ZodObject<{
271
+ allowedNetworks: z.ZodDefault<z.ZodArray<z.ZodString>>;
272
+ maxConcurrentConnections: z.ZodDefault<z.ZodNumber>;
273
+ connectionTimeout: z.ZodDefault<z.ZodNumber>;
274
+ idleConnectionTimeout: z.ZodDefault<z.ZodNumber>;
275
+ maxConnections: z.ZodDefault<z.ZodNumber>;
276
+ }, z.core.$strip>>;
277
+ servers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
278
+ template: z.ZodObject<{
279
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
280
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
281
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
282
+ proxy: z.ZodOptional<z.ZodObject<{
283
+ url: z.ZodString;
284
+ }, z.core.$strip>>;
285
+ command: z.ZodOptional<z.ZodString>;
286
+ type: z.ZodDefault<z.ZodEnum<{
287
+ stdio: "stdio";
288
+ sse: "sse";
289
+ "streamable-http": "streamable-http";
290
+ http: "http";
291
+ }>>;
292
+ timeout: z.ZodDefault<z.ZodNumber>;
293
+ url: z.ZodOptional<z.ZodString>;
294
+ aggregatedTools: z.ZodDefault<z.ZodArray<z.ZodString>>;
295
+ description: z.ZodOptional<z.ZodString>;
296
+ instanceSelectionStrategy: z.ZodOptional<z.ZodEnum<{
297
+ random: "random";
298
+ "round-robin": "round-robin";
299
+ "tag-match-unique": "tag-match-unique";
300
+ }>>;
301
+ }, z.core.$strip>;
302
+ instances: z.ZodDefault<z.ZodArray<z.ZodObject<{
303
+ id: z.ZodString;
304
+ index: z.ZodOptional<z.ZodNumber>;
305
+ displayName: z.ZodOptional<z.ZodString>;
306
+ timestamp: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
307
+ pid: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
308
+ startTime: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
309
+ enabled: z.ZodDefault<z.ZodBoolean>;
310
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
311
+ env: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
312
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
313
+ proxy: z.ZodOptional<z.ZodObject<{
314
+ url: z.ZodString;
315
+ }, z.core.$strip>>;
316
+ tags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
317
+ }, z.core.$strip>>>;
318
+ tagDefinitions: z.ZodDefault<z.ZodArray<z.ZodObject<{
319
+ key: z.ZodString;
320
+ description: z.ZodOptional<z.ZodString>;
321
+ type: z.ZodDefault<z.ZodEnum<{
322
+ string: "string";
323
+ number: "number";
324
+ boolean: "boolean";
325
+ enum: "enum";
326
+ }>>;
327
+ values: z.ZodOptional<z.ZodArray<z.ZodString>>;
328
+ }, z.core.$strip>>>;
329
+ }, z.core.$strip>>>;
330
+ tagDefinitions: z.ZodDefault<z.ZodArray<z.ZodObject<{
331
+ key: z.ZodString;
332
+ description: z.ZodOptional<z.ZodString>;
333
+ type: z.ZodDefault<z.ZodEnum<{
334
+ string: "string";
335
+ number: "number";
336
+ boolean: "boolean";
337
+ enum: "enum";
338
+ }>>;
339
+ values: z.ZodOptional<z.ZodArray<z.ZodString>>;
340
+ }, z.core.$strip>>>;
341
+ }, z.core.$strip>;
342
+ export type SystemConfig = z.infer<typeof SystemConfigSchema>;
343
+ /**
344
+ * Server instance runtime configuration (for connection manager)
345
+ * Contains runtime-specific fields like timestamp, pid, etc.
346
+ */
347
+ export declare const ServerInstanceConfigSchema: z.ZodObject<{
348
+ id: z.ZodString;
349
+ index: z.ZodOptional<z.ZodNumber>;
350
+ displayName: z.ZodOptional<z.ZodString>;
351
+ timestamp: z.ZodNonOptional<z.ZodOptional<z.ZodNumber>>;
352
+ pid: z.ZodOptional<z.ZodNumber>;
353
+ startTime: z.ZodOptional<z.ZodNumber>;
354
+ }, z.core.$strip>;
355
+ export type ServerInstanceConfig = z.infer<typeof ServerInstanceConfigSchema>;
356
+ /**
357
+ * Server instance configuration interface
358
+ */
359
+ export interface ServerInstanceConfigLegacy {
18
360
  id: string;
19
361
  timestamp: number;
20
362
  hash: string;
363
+ index?: number;
364
+ displayName?: string;
21
365
  }
366
+ /**
367
+ * Log entry interface
368
+ */
22
369
  export interface LogEntry {
23
370
  timestamp: number;
24
371
  level: LogLevel;
25
372
  message: string;
26
373
  }
374
+ /**
375
+ * Server status information interface
376
+ */
27
377
  export interface StatusInfo {
28
378
  id: string;
29
379
  status: {
@@ -38,13 +388,19 @@ export interface StatusInfo {
38
388
  hash?: string;
39
389
  };
40
390
  }
391
+ /**
392
+ * Unified server model interface
393
+ */
41
394
  export interface Server {
42
395
  id: string;
43
396
  name: string;
44
397
  status: ServerStatus;
45
398
  type: ServerType;
46
- config: ServerConfig;
47
- instance: ServerInstanceConfig;
399
+ config: ServerRuntimeConfig;
400
+ instance?: ServerInstanceConfig;
401
+ instances?: (ServerInstanceConfig & {
402
+ status: ServerStatus;
403
+ })[];
48
404
  logs: LogEntry[];
49
405
  uptime?: string;
50
406
  startTime?: number;
@@ -54,5 +410,6 @@ export interface Server {
54
410
  toolsCount?: number;
55
411
  resourcesCount?: number;
56
412
  version?: string;
413
+ rawV11Config?: ServerConfig;
57
414
  }
58
415
  //# sourceMappingURL=server.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.model.d.ts","sourceRoot":"","sources":["../../../../shared/models/server.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAGD,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"server.model.d.ts","sourceRoot":"","sources":["../../../../shared/models/server.model.ts"],"names":[],"mappings":"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"}
@@ -1 +1,220 @@
1
- export {};
1
+ import { z } from 'zod';
2
+ // ====== v1.1 Configuration Schema (Server Template + Instance Model) ======
3
+ /**
4
+ * Instance selection strategy constants for multi-instance servers
5
+ */
6
+ export const InstanceSelectionStrategy = {
7
+ RANDOM: 'random',
8
+ ROUND_ROBIN: 'round-robin',
9
+ TAG_MATCH_UNIQUE: 'tag-match-unique'
10
+ };
11
+ /**
12
+ * Transport type constants for MCP server connections
13
+ */
14
+ export const TransportType = {
15
+ STDIO: 'stdio',
16
+ SSE: 'sse',
17
+ STREAMABLE_HTTP: 'streamable-http',
18
+ HTTP: 'http'
19
+ };
20
+ // ====== Common Base Schemas (Extracted to Eliminate Duplication) ======
21
+ /**
22
+ * Server Environment Configuration Base Schema
23
+ * Shared by both ServerTemplate and ServerInstance (for overrides)
24
+ */
25
+ export const ServerEnvConfigSchema = z.object({
26
+ args: z.array(z.string()).default([]),
27
+ env: z.record(z.string(), z.string()).default({}),
28
+ headers: z.record(z.string(), z.string()).default({}),
29
+ proxy: z
30
+ .object({
31
+ url: z.string()
32
+ })
33
+ .optional()
34
+ });
35
+ /**
36
+ * Server Instance Metadata Schema
37
+ * Shared by ServerInstance and ServerInstanceConfig
38
+ */
39
+ export const ServerInstanceMetadataSchema = z.object({
40
+ id: z.string(),
41
+ index: z.number().optional(),
42
+ displayName: z.string().optional()
43
+ });
44
+ /**
45
+ * Server Instance Runtime State Schema
46
+ * Shared by ServerInstance and ServerInstanceConfig
47
+ */
48
+ export const ServerInstanceRuntimeSchema = z.object({
49
+ timestamp: z.number().optional(),
50
+ pid: z.number().optional(),
51
+ startTime: z.number().optional()
52
+ });
53
+ // ====== Tag Definition Schema ======
54
+ /**
55
+ * Tag Definition Schema
56
+ * Defines metadata about a tag key for validation and UI purposes
57
+ */
58
+ export const TagDefinitionSchema = z.object({
59
+ key: z.string(),
60
+ description: z.string().optional(),
61
+ type: z.enum(['string', 'number', 'boolean', 'enum']).default('string'),
62
+ values: z.array(z.string()).optional() // For enum type
63
+ });
64
+ // ====== Server Instance Schema ======
65
+ /**
66
+ * Server Instance Configuration Schema
67
+ * Represents a single instance of a server with specific configuration
68
+ */
69
+ export const ServerInstanceSchema = ServerInstanceMetadataSchema.merge(ServerInstanceRuntimeSchema.partial()).extend({
70
+ enabled: z.boolean().default(true),
71
+ // Environment config (for overriding template values)
72
+ args: z.array(z.string()).default([]),
73
+ env: z.record(z.string(), z.string()).default({}),
74
+ headers: z.record(z.string(), z.string()).default({}),
75
+ proxy: z
76
+ .object({
77
+ url: z.string()
78
+ })
79
+ .optional(),
80
+ // Instance-specific tags
81
+ tags: z.record(z.string(), z.string()).default({})
82
+ });
83
+ /**
84
+ * Server Instance Update Schema (without defaults)
85
+ * Used for partial updates to server instances - intentionally omits default values
86
+ * to prevent overwriting existing configuration with empty defaults.
87
+ */
88
+ export const ServerInstanceUpdateSchema = z.object({
89
+ id: z.string().optional(),
90
+ index: z.number().optional(),
91
+ displayName: z.string().optional(),
92
+ timestamp: z.number().optional(),
93
+ pid: z.number().optional(),
94
+ startTime: z.number().optional(),
95
+ enabled: z.boolean().optional(),
96
+ args: z.array(z.string()).optional(),
97
+ env: z.record(z.string(), z.string()).optional(),
98
+ headers: z.record(z.string(), z.string()).optional(),
99
+ proxy: z
100
+ .object({
101
+ url: z.string()
102
+ })
103
+ .optional(),
104
+ tags: z.record(z.string(), z.string()).optional()
105
+ });
106
+ // ====== Server Template Schema ======
107
+ /**
108
+ * Server Template Configuration Schema
109
+ * Template configuration that can be shared across multiple instances
110
+ */
111
+ export const ServerTemplateSchema = ServerEnvConfigSchema.extend({
112
+ command: z.string().optional(),
113
+ type: z
114
+ .enum([
115
+ TransportType.STDIO,
116
+ TransportType.SSE,
117
+ TransportType.STREAMABLE_HTTP,
118
+ TransportType.HTTP
119
+ ])
120
+ .default(TransportType.STDIO),
121
+ timeout: z.number().default(60000),
122
+ url: z.string().optional(),
123
+ aggregatedTools: z.array(z.string()).default([]),
124
+ description: z.string().optional(),
125
+ // Instance selection strategy for multi-instance servers
126
+ instanceSelectionStrategy: z
127
+ .enum([
128
+ InstanceSelectionStrategy.RANDOM,
129
+ InstanceSelectionStrategy.ROUND_ROBIN,
130
+ InstanceSelectionStrategy.TAG_MATCH_UNIQUE
131
+ ])
132
+ .optional()
133
+ });
134
+ // ====== Server Config Schema (v1.1) ======
135
+ /**
136
+ * Server Configuration Schema (v1.1 - Primary)
137
+ * A server with a template and multiple instances
138
+ */
139
+ export const ServerConfigSchema = z.object({
140
+ template: ServerTemplateSchema,
141
+ instances: z.array(ServerInstanceSchema).default([]),
142
+ tagDefinitions: z.array(TagDefinitionSchema).default([])
143
+ });
144
+ // ====== Logging Configuration Schema ======
145
+ /**
146
+ * Logging Configuration Schema
147
+ */
148
+ export const LoggingConfigSchema = z
149
+ .object({
150
+ level: z.custom().default('info'),
151
+ rotationAge: z.string().default('7d'),
152
+ jsonPretty: z.boolean().default(true),
153
+ mcpCommDebug: z.boolean().default(false),
154
+ apiDebug: z.boolean().default(false)
155
+ })
156
+ .default({
157
+ level: 'info',
158
+ rotationAge: '7d',
159
+ jsonPretty: true,
160
+ mcpCommDebug: false,
161
+ apiDebug: false
162
+ });
163
+ // ====== Security Configuration Schema ======
164
+ /**
165
+ * Security Configuration Schema
166
+ */
167
+ export const SecurityConfigSchema = z
168
+ .object({
169
+ allowedNetworks: z
170
+ .array(z.string())
171
+ .default(['127.0.0.1', '192.168.0.0/16', '10.0.0.0/8', '172.16.0.0/12']),
172
+ maxConcurrentConnections: z.number().min(1).max(1000).default(50),
173
+ connectionTimeout: z.number().min(1000).default(30000),
174
+ idleConnectionTimeout: z.number().min(30000).default(300000),
175
+ maxConnections: z.number().min(1).max(1000).default(50)
176
+ })
177
+ .default({
178
+ allowedNetworks: ['127.0.0.1', '192.168.0.0/16', '10.0.0.0/8', '172.16.0.0/12'],
179
+ maxConcurrentConnections: 50,
180
+ connectionTimeout: 30000,
181
+ idleConnectionTimeout: 300000,
182
+ maxConnections: 50
183
+ });
184
+ // ====== System Configuration Schema ======
185
+ /**
186
+ * System Configuration Schema (v1.1 - Primary)
187
+ */
188
+ export const SystemConfigSchema = z.object({
189
+ version: z.literal('1.1.0').default('1.1.0'),
190
+ system: z
191
+ .object({
192
+ host: z.string().default('localhost'),
193
+ port: z.number().default(7788),
194
+ language: z.enum(['zh', 'en']).default('zh'),
195
+ theme: z.enum(['light', 'dark', 'system']).default('system'),
196
+ logging: LoggingConfigSchema
197
+ })
198
+ .default({
199
+ host: 'localhost',
200
+ port: 7788,
201
+ language: 'zh',
202
+ theme: 'system',
203
+ logging: {
204
+ level: 'info',
205
+ rotationAge: '7d',
206
+ jsonPretty: true,
207
+ mcpCommDebug: false,
208
+ apiDebug: false
209
+ }
210
+ }),
211
+ security: SecurityConfigSchema,
212
+ servers: z.record(z.string(), ServerConfigSchema).default({}),
213
+ tagDefinitions: z.array(TagDefinitionSchema).default([])
214
+ });
215
+ // ====== Server Instance Config Schema ======
216
+ /**
217
+ * Server instance runtime configuration (for connection manager)
218
+ * Contains runtime-specific fields like timestamp, pid, etc.
219
+ */
220
+ export const ServerInstanceConfigSchema = ServerInstanceMetadataSchema.merge(ServerInstanceRuntimeSchema.required({ timestamp: true }));