@loop_ouroboros/mcp-hub-lite 1.0.2 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/client/assets/{HomeView-7rMg9C6t.js → HomeView-BBwvy1oj.js} +1 -1
- package/dist/client/assets/ResourceDetailView-CZ2aB73w.js +1 -0
- package/dist/client/assets/ResourceDetailView-DUJZbegl.css +1 -0
- package/dist/client/assets/ResourcesView-CN1NlhWs.js +1 -0
- package/dist/client/assets/ResourcesView-Cc8RHtia.css +1 -0
- package/dist/client/assets/ServerDashboard-BfLeFDGw.css +1 -0
- package/dist/client/assets/ServerDashboard-k652Vw4Z.js +1 -0
- package/dist/client/assets/ServerDetail-BLQ-a4cO.js +2 -0
- package/dist/client/assets/ServerDetail-CtnNKJGx.css +1 -0
- package/dist/client/assets/{ServerListView-Bws09jNR.css → ServerListView-B-bPljsO.css} +1 -1
- package/dist/client/assets/ServerListView-BHrsFD5i.js +36 -0
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHhwEuGe.js +1 -0
- package/dist/client/assets/SettingsView-CUOFNXrz.js +1 -0
- package/dist/client/assets/SettingsView-GkBOKL0V.css +1 -0
- package/dist/client/assets/ToolCallDialog-BfPjLxfV.js +1 -0
- package/dist/client/assets/ToolsView-BxgXvPC3.css +1 -0
- package/dist/client/assets/ToolsView-CyuhYAE2.js +1 -0
- package/dist/client/assets/{_baseClone-5q1b0P3O.js → _baseClone-DO5qfalW.js} +1 -1
- package/dist/client/assets/el-form-item-B4LbJ6OO.css +1 -0
- package/dist/client/assets/el-form-item-CcGsD2K_.js +12 -0
- package/dist/client/assets/el-input-BH4BZKnG.css +1 -0
- package/dist/client/assets/el-input-tYgeiaCT.js +1 -0
- package/dist/client/assets/{el-loading-H85n3BUC.js → el-loading-Dwl9E_Vr.js} +1 -1
- package/dist/client/assets/{el-select-C0U_l4IZ.css → el-overlay-CBvdpA69.css} +1 -1
- package/dist/client/assets/el-overlay-kqX_BABo.js +1 -0
- package/dist/client/assets/{ResourceDetailView-BdOaL_-o.css → el-radio-group-B0bauIRR.css} +1 -1
- package/dist/client/assets/el-radio-group-D8aWBVOT.js +1 -0
- package/dist/client/assets/el-skeleton-item-BLY1jEuR.css +1 -0
- package/dist/client/assets/el-skeleton-item-BRwIFspE.js +1 -0
- package/dist/client/assets/el-switch-BBrS-_6y.css +1 -0
- package/dist/client/assets/el-switch-BF8c-xeU.js +1 -0
- package/dist/client/assets/el-tab-pane-C4Ep94cd.js +1 -0
- package/dist/client/assets/el-table-column-BdvRS9Y2.css +1 -0
- package/dist/client/assets/el-table-column-Cog6uCh-.js +1 -0
- package/dist/client/assets/index-ByNBhPAR.js +1 -0
- package/dist/client/assets/index-CTB6oe-9.js +2 -0
- package/dist/client/assets/{index-BsDWtoIl.css → index-DpH6ZSbs.css} +1 -1
- package/dist/client/assets/omit-CUnDT6sS.js +1 -0
- package/dist/client/assets/{raf-DY5mgbuB.js → raf-CmzeRPMd.js} +1 -1
- package/dist/client/assets/{vue-vendor-6ny5zj9i.js → vue-vendor-CbgVSHIh.js} +3 -3
- package/dist/client/index.html +3 -3
- package/dist/server/shared/models/resource.model.d.ts +2 -1
- package/dist/server/shared/models/resource.model.d.ts.map +1 -1
- package/dist/server/shared/models/server.model.d.ts +362 -5
- package/dist/server/shared/models/server.model.d.ts.map +1 -1
- package/dist/server/shared/models/server.model.js +220 -1
- package/dist/server/shared/models/session.model.d.ts +1 -57
- package/dist/server/shared/models/session.model.d.ts.map +1 -1
- package/dist/server/shared/models/session.model.js +1 -55
- package/dist/server/shared/models/tool.model.d.ts +4 -2
- package/dist/server/shared/models/tool.model.d.ts.map +1 -1
- package/dist/server/shared/types/session-context.types.d.ts +0 -2
- package/dist/server/shared/types/session-context.types.d.ts.map +1 -1
- package/dist/server/shared/types/websocket.types.d.ts +17 -10
- package/dist/server/shared/types/websocket.types.d.ts.map +1 -1
- package/dist/server/src/api/mcp/debug-response-wrapper.js +2 -2
- package/dist/server/src/api/mcp/gateway.d.ts +1 -3
- package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
- package/dist/server/src/api/mcp/gateway.js +32 -49
- package/dist/server/src/api/web/hub-tools.d.ts +2 -2
- package/dist/server/src/api/web/hub-tools.d.ts.map +1 -1
- package/dist/server/src/api/web/hub-tools.js +3 -54
- package/dist/server/src/api/web/mcp-status.d.ts +1 -1
- package/dist/server/src/api/web/mcp-status.d.ts.map +1 -1
- package/dist/server/src/api/web/mcp-status.js +71 -30
- package/dist/server/src/api/web/resources.d.ts.map +1 -1
- package/dist/server/src/api/web/resources.js +28 -22
- package/dist/server/src/api/web/search.d.ts +2 -16
- package/dist/server/src/api/web/search.d.ts.map +1 -1
- package/dist/server/src/api/web/search.js +24 -45
- package/dist/server/src/api/web/servers.d.ts +3 -3
- package/dist/server/src/api/web/servers.d.ts.map +1 -1
- package/dist/server/src/api/web/servers.js +70 -25
- package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -1
- package/dist/server/src/api/ws/ws-handler.js +4 -2
- package/dist/server/src/app.d.ts.map +1 -1
- package/dist/server/src/app.js +0 -2
- package/dist/server/src/cli/commands/list.js +2 -2
- package/dist/server/src/cli/commands/server.d.ts +57 -0
- package/dist/server/src/cli/commands/server.d.ts.map +1 -0
- package/dist/server/src/cli/commands/server.js +169 -0
- package/dist/server/src/cli/commands/status.d.ts.map +1 -1
- package/dist/server/src/cli/commands/status.js +41 -30
- package/dist/server/src/cli/index.d.ts.map +1 -1
- package/dist/server/src/cli/index.js +2 -1
- package/dist/server/src/cli/server.d.ts +11 -2
- package/dist/server/src/cli/server.d.ts.map +1 -1
- package/dist/server/src/config/config-change-logger.d.ts +22 -0
- package/dist/server/src/config/config-change-logger.d.ts.map +1 -1
- package/dist/server/src/config/config-change-logger.js +135 -11
- package/dist/server/src/config/config-loader.d.ts +6 -5
- package/dist/server/src/config/config-loader.d.ts.map +1 -1
- package/dist/server/src/config/config-loader.js +54 -16
- package/dist/server/src/config/config-manager.d.ts +51 -43
- package/dist/server/src/config/config-manager.d.ts.map +1 -1
- package/dist/server/src/config/config-manager.js +84 -66
- package/dist/server/src/config/config-migrator.d.ts +82 -0
- package/dist/server/src/config/config-migrator.d.ts.map +1 -0
- package/dist/server/src/config/config-migrator.js +348 -0
- package/dist/server/src/config/config-saver.d.ts +2 -0
- package/dist/server/src/config/config-saver.d.ts.map +1 -1
- package/dist/server/src/config/config-saver.js +8 -2
- package/dist/server/src/config/config.schema.d.ts +10 -104
- package/dist/server/src/config/config.schema.d.ts.map +1 -1
- package/dist/server/src/config/config.schema.js +15 -99
- package/dist/server/src/config/path-validator.d.ts +27 -0
- package/dist/server/src/config/path-validator.d.ts.map +1 -0
- package/dist/server/src/config/path-validator.js +53 -0
- package/dist/server/src/config/server-config-manager.d.ts +37 -31
- package/dist/server/src/config/server-config-manager.d.ts.map +1 -1
- package/dist/server/src/config/server-config-manager.js +222 -66
- package/dist/server/src/config/type-converter.d.ts.map +1 -1
- package/dist/server/src/config/type-converter.js +3 -2
- package/dist/server/src/models/event.model.d.ts +17 -10
- package/dist/server/src/models/event.model.d.ts.map +1 -1
- package/dist/server/src/models/server.model.d.ts +17 -3
- package/dist/server/src/models/server.model.d.ts.map +1 -1
- package/dist/server/src/models/server.model.js +2 -1
- package/dist/server/src/models/system-tools.constants.d.ts +10 -27
- package/dist/server/src/models/system-tools.constants.d.ts.map +1 -1
- package/dist/server/src/models/system-tools.constants.js +4 -8
- package/dist/server/src/pid/manager.d.ts.map +1 -1
- package/dist/server/src/pid/manager.js +2 -1
- package/dist/server/src/server/dev-server.js +34 -20
- package/dist/server/src/server/runner.d.ts.map +1 -1
- package/dist/server/src/server/runner.js +41 -26
- package/dist/server/src/services/connection/connection-manager.d.ts +85 -103
- package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
- package/dist/server/src/services/connection/connection-manager.js +286 -241
- package/dist/server/src/services/connection/tool-cache.d.ts +27 -25
- package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -1
- package/dist/server/src/services/connection/tool-cache.js +50 -55
- package/dist/server/src/services/gateway/gateway.service.d.ts +2 -0
- package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
- package/dist/server/src/services/gateway/gateway.service.js +53 -23
- package/dist/server/src/services/gateway/global-transport.d.ts +19 -0
- package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -0
- package/dist/server/src/services/gateway/global-transport.js +66 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +67 -65
- package/dist/server/src/services/gateway/request-handlers/index.d.ts +1 -1
- package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/index.js +1 -1
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +1 -4
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +20 -80
- package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts +35 -0
- package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/initialize.constants.js +44 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/resources-handler.js +5 -4
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +32 -77
- package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -1
- package/dist/server/src/services/gateway/tool-list-generator.js +37 -16
- package/dist/server/src/services/gateway/types.d.ts +2 -1
- package/dist/server/src/services/gateway/types.d.ts.map +1 -1
- package/dist/server/src/services/hub-manager.service.d.ts +32 -238
- package/dist/server/src/services/hub-manager.service.d.ts.map +1 -1
- package/dist/server/src/services/hub-manager.service.js +89 -267
- package/dist/server/src/services/hub-tools/index.d.ts +1 -3
- package/dist/server/src/services/hub-tools/index.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/index.js +1 -2
- package/dist/server/src/services/hub-tools/instance-matcher.d.ts +62 -0
- package/dist/server/src/services/hub-tools/instance-matcher.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/instance-matcher.js +132 -0
- package/dist/server/src/services/hub-tools/instance-selector.d.ts +29 -0
- package/dist/server/src/services/hub-tools/instance-selector.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/instance-selector.js +103 -0
- package/dist/server/src/services/hub-tools/resource-generator.d.ts +24 -1
- package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/resource-generator.js +259 -39
- package/dist/server/src/services/hub-tools/server-selector.d.ts +26 -13
- package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/server-selector.js +44 -37
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +1 -4
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/system-tool-definitions.js +17 -80
- package/dist/server/src/services/hub-tools/tool-search.d.ts +7 -7
- package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/tool-search.js +10 -4
- package/dist/server/src/services/hub-tools/types.d.ts +2 -2
- package/dist/server/src/services/hub-tools/types.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools.service.d.ts +43 -72
- package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools.service.js +185 -110
- package/dist/server/src/services/system-tool-handler.d.ts.map +1 -1
- package/dist/server/src/services/system-tool-handler.js +7 -17
- package/dist/server/src/utils/composite-key.d.ts +29 -0
- package/dist/server/src/utils/composite-key.d.ts.map +1 -0
- package/dist/server/src/utils/composite-key.js +39 -0
- package/dist/server/src/utils/error-handler.d.ts.map +1 -1
- package/dist/server/src/utils/error-handler.js +3 -2
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/src/utils/index.js +2 -0
- package/dist/server/src/utils/instance-id.d.ts +22 -0
- package/dist/server/src/utils/instance-id.d.ts.map +1 -0
- package/dist/server/src/utils/instance-id.js +59 -0
- package/dist/server/src/utils/json-utils.d.ts +4 -4
- package/dist/server/src/utils/json-utils.d.ts.map +1 -1
- package/dist/server/src/utils/json-utils.js +4 -4
- package/dist/server/src/utils/logger/dev-logger.d.ts +2 -1
- package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-formatter.js +82 -5
- package/dist/server/src/utils/logger/log-modules.d.ts +15 -9
- package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-modules.js +8 -6
- package/dist/server/src/utils/parameter-validator.d.ts +10 -0
- package/dist/server/src/utils/parameter-validator.d.ts.map +1 -0
- package/dist/server/src/utils/parameter-validator.js +53 -0
- package/dist/server/src/utils/process-tree.d.ts +49 -0
- package/dist/server/src/utils/process-tree.d.ts.map +1 -0
- package/dist/server/src/utils/process-tree.js +285 -0
- package/dist/server/src/utils/sort-utils.d.ts +40 -0
- package/dist/server/src/utils/sort-utils.d.ts.map +1 -0
- package/dist/server/src/utils/sort-utils.js +131 -0
- package/dist/server/src/utils/transports/sse-transport.d.ts +16 -1
- package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -1
- package/dist/server/src/utils/transports/sse-transport.js +55 -9
- package/dist/server/src/utils/transports/stdio-transport.d.ts +24 -53
- package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -1
- package/dist/server/src/utils/transports/stdio-transport.js +66 -247
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts +24 -1
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -1
- package/dist/server/src/utils/transports/streamable-http-transport.js +68 -8
- package/dist/server/src/utils/transports/transport-factory.d.ts +9 -4
- package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
- package/dist/server/src/utils/transports/transport-factory.js +31 -11
- package/dist/server/src/utils/transports/transport.interface.d.ts +6 -0
- package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -1
- package/dist/server/src/utils/version.d.ts +11 -0
- package/dist/server/src/utils/version.d.ts.map +1 -0
- package/dist/server/src/utils/version.js +57 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.js +24 -24
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +49 -45
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +35 -36
- package/dist/server/tests/integration/gateway/fault-tolerance.test.js +65 -25
- package/dist/server/tests/integration/gateway/mcp-connection.test.js +53 -61
- package/dist/server/tests/server.test.js +27 -16
- package/dist/server/tests/temp/temp-run-docling.d.ts +2 -0
- package/dist/server/tests/temp/temp-run-docling.d.ts.map +1 -0
- package/dist/server/tests/temp/temp-run-docling.js +53 -0
- package/dist/server/tests/types/test-helpers.d.ts +1 -2
- package/dist/server/tests/types/test-helpers.d.ts.map +1 -1
- package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config-loader-automatic-migration.test.js +199 -0
- package/dist/server/tests/unit/config/config-migrator.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config-migrator.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config-migrator.test.js +316 -0
- package/dist/server/tests/unit/config/config-saver.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config-saver.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config-saver.test.js +200 -0
- package/dist/server/tests/unit/config/config.schema.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config.schema.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config.schema.test.js +347 -0
- package/dist/server/tests/unit/server/runner.test.js +86 -62
- package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts +2 -0
- package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/connection/connection-manager.test.js +112 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.js +112 -46
- package/dist/server/tests/unit/services/hub-manager.test.js +25 -15
- package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-tools/instance-selector.test.js +195 -0
- package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-tools/server-selector.test.js +190 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.js +560 -320
- package/dist/server/tests/unit/services/instance-matcher.test.d.ts +2 -0
- package/dist/server/tests/unit/services/instance-matcher.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/instance-matcher.test.js +256 -0
- package/dist/server/tests/unit/services/session-manager.test.js +26 -436
- package/dist/server/tests/unit/utils/config.test.js +88 -186
- package/dist/server/tests/unit/utils/json-utils.test.js +18 -18
- package/dist/server/tests/unit/utils/logger-formatter.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/logger-formatter.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/logger-formatter.test.js +66 -0
- package/dist/server/tests/unit/utils/parameter-validator.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/parameter-validator.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/parameter-validator.test.js +63 -0
- package/dist/server/tests/unit/utils/process-tree.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/process-tree.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/process-tree.test.js +129 -0
- package/dist/server/tests/unit/utils/sort-utils.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/sort-utils.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/sort-utils.test.js +220 -0
- package/dist/server/tests/unit/utils/transport-factory.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/transport-factory.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/transport-factory.test.js +55 -0
- package/package.json +3 -1
- package/dist/client/assets/ResourceDetailView-Bf-1ffbk.js +0 -1
- package/dist/client/assets/ResourcesView-CjMklkyv.css +0 -1
- package/dist/client/assets/ResourcesView-g5x4xCPh.js +0 -1
- package/dist/client/assets/ServerDashboard-Chpne8Q0.css +0 -1
- package/dist/client/assets/ServerDashboard-G8Wmp4hF.js +0 -2
- package/dist/client/assets/ServerListView-dV2XrPjo.js +0 -32
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +0 -1
- package/dist/client/assets/SessionsView-Ckd38lj1.js +0 -1
- package/dist/client/assets/SettingsView-BJUdepEQ.js +0 -1
- package/dist/client/assets/ToolCallDialog-C_bTCpHC.js +0 -1
- package/dist/client/assets/ToolsView-0c2eputu.js +0 -1
- package/dist/client/assets/ToolsView-E3Ps9c7i.css +0 -1
- package/dist/client/assets/el-form-item-BVMLpmVC.css +0 -1
- package/dist/client/assets/el-form-item-ClFnj49k.js +0 -12
- package/dist/client/assets/el-input-CDnuSKVZ.js +0 -1
- package/dist/client/assets/el-input-CmuHb8HS.css +0 -1
- package/dist/client/assets/el-overlay-B2ZKM6Up.css +0 -1
- package/dist/client/assets/el-overlay-CzMkXyYy.js +0 -1
- package/dist/client/assets/el-select-DvjGddk_.js +0 -1
- package/dist/client/assets/el-tab-pane-C_DQMcwe.js +0 -1
- package/dist/client/assets/el-table-column-CASRIbZM.js +0 -1
- package/dist/client/assets/el-table-column-T_mV9jNw.css +0 -1
- package/dist/client/assets/el-tag-DjxZVOpb.css +0 -1
- package/dist/client/assets/el-tag-npbwux4f.js +0 -1
- package/dist/client/assets/index-CCnAxNF8.js +0 -2
- package/dist/client/assets/index-d1DZeSfz.js +0 -1
- package/dist/client/assets/omit-DPsOVNIJ.js +0 -1
- package/dist/client/assets/vnode-CHomNjgN.js +0 -1
|
@@ -7,6 +7,19 @@ import { mcpConnectionManager } from '../../../src/services/mcp-connection-manag
|
|
|
7
7
|
import { gateway } from '../../../src/services/gateway.service.js';
|
|
8
8
|
import { PidManager } from '../../../src/pid/manager.js';
|
|
9
9
|
import { checkPort } from '../../../src/utils/port-checker.js';
|
|
10
|
+
// Mock resolveInstanceConfig to return a valid resolved config
|
|
11
|
+
vi.mock('@config/config-migrator.js', () => ({
|
|
12
|
+
resolveInstanceConfig: vi.fn(() => ({
|
|
13
|
+
command: 'test-command',
|
|
14
|
+
args: [],
|
|
15
|
+
type: 'stdio',
|
|
16
|
+
timeout: 30000,
|
|
17
|
+
aggregatedTools: [],
|
|
18
|
+
tags: {},
|
|
19
|
+
enabled: true
|
|
20
|
+
})),
|
|
21
|
+
getEnabledInstances: vi.fn()
|
|
22
|
+
}));
|
|
10
23
|
// Mock all dependencies
|
|
11
24
|
vi.mock('@src/app.js', () => ({
|
|
12
25
|
buildApp: vi.fn()
|
|
@@ -15,7 +28,7 @@ vi.mock('@config/config-manager.js', () => ({
|
|
|
15
28
|
configManager: {
|
|
16
29
|
getConfig: vi.fn(),
|
|
17
30
|
getServers: vi.fn(),
|
|
18
|
-
|
|
31
|
+
getServerInstancesByName: vi.fn(),
|
|
19
32
|
addServerInstance: vi.fn()
|
|
20
33
|
}
|
|
21
34
|
}));
|
|
@@ -72,7 +85,7 @@ describe('Server Runner', () => {
|
|
|
72
85
|
};
|
|
73
86
|
vi.mocked(buildApp).mockResolvedValue(mockApp);
|
|
74
87
|
const mockConfig = {
|
|
75
|
-
version: '1.
|
|
88
|
+
version: '1.1.0',
|
|
76
89
|
system: {
|
|
77
90
|
host: 'localhost',
|
|
78
91
|
port: 3000,
|
|
@@ -83,7 +96,7 @@ describe('Server Runner', () => {
|
|
|
83
96
|
rotationAge: '7d',
|
|
84
97
|
jsonPretty: true,
|
|
85
98
|
mcpCommDebug: false,
|
|
86
|
-
|
|
99
|
+
apiDebug: false
|
|
87
100
|
}
|
|
88
101
|
},
|
|
89
102
|
security: {
|
|
@@ -91,11 +104,10 @@ describe('Server Runner', () => {
|
|
|
91
104
|
maxConcurrentConnections: 50,
|
|
92
105
|
connectionTimeout: 30000,
|
|
93
106
|
idleConnectionTimeout: 300000,
|
|
94
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
95
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
96
107
|
maxConnections: 50
|
|
97
108
|
},
|
|
98
|
-
servers: {}
|
|
109
|
+
servers: {},
|
|
110
|
+
tagDefinitions: []
|
|
99
111
|
};
|
|
100
112
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
101
113
|
vi.mocked(configManager.getServers).mockReturnValue([]);
|
|
@@ -111,7 +123,7 @@ describe('Server Runner', () => {
|
|
|
111
123
|
it('should start server in stdio mode successfully', async () => {
|
|
112
124
|
// Setup mocks
|
|
113
125
|
const mockConfig = {
|
|
114
|
-
version: '1.
|
|
126
|
+
version: '1.1.0',
|
|
115
127
|
system: {
|
|
116
128
|
host: 'localhost',
|
|
117
129
|
port: 3000,
|
|
@@ -122,7 +134,7 @@ describe('Server Runner', () => {
|
|
|
122
134
|
rotationAge: '7d',
|
|
123
135
|
jsonPretty: true,
|
|
124
136
|
mcpCommDebug: false,
|
|
125
|
-
|
|
137
|
+
apiDebug: false
|
|
126
138
|
}
|
|
127
139
|
},
|
|
128
140
|
security: {
|
|
@@ -130,11 +142,10 @@ describe('Server Runner', () => {
|
|
|
130
142
|
maxConcurrentConnections: 50,
|
|
131
143
|
connectionTimeout: 30000,
|
|
132
144
|
idleConnectionTimeout: 300000,
|
|
133
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
134
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
135
145
|
maxConnections: 50
|
|
136
146
|
},
|
|
137
|
-
servers: {}
|
|
147
|
+
servers: {},
|
|
148
|
+
tagDefinitions: []
|
|
138
149
|
};
|
|
139
150
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
140
151
|
vi.mocked(configManager.getServers).mockReturnValue([]);
|
|
@@ -152,7 +163,7 @@ describe('Server Runner', () => {
|
|
|
152
163
|
const mockApp = { listen: vi.fn(), close: vi.fn() };
|
|
153
164
|
vi.mocked(buildApp).mockResolvedValue(mockApp);
|
|
154
165
|
const mockConfig = {
|
|
155
|
-
version: '1.
|
|
166
|
+
version: '1.1.0',
|
|
156
167
|
system: {
|
|
157
168
|
host: 'localhost',
|
|
158
169
|
port: 3000,
|
|
@@ -163,7 +174,7 @@ describe('Server Runner', () => {
|
|
|
163
174
|
rotationAge: '7d',
|
|
164
175
|
jsonPretty: true,
|
|
165
176
|
mcpCommDebug: false,
|
|
166
|
-
|
|
177
|
+
apiDebug: false
|
|
167
178
|
}
|
|
168
179
|
},
|
|
169
180
|
security: {
|
|
@@ -171,11 +182,10 @@ describe('Server Runner', () => {
|
|
|
171
182
|
maxConcurrentConnections: 50,
|
|
172
183
|
connectionTimeout: 30000,
|
|
173
184
|
idleConnectionTimeout: 300000,
|
|
174
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
175
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
176
185
|
maxConnections: 50
|
|
177
186
|
},
|
|
178
|
-
servers: {}
|
|
187
|
+
servers: {},
|
|
188
|
+
tagDefinitions: []
|
|
179
189
|
};
|
|
180
190
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
181
191
|
vi.mocked(configManager.getServers).mockReturnValue([]);
|
|
@@ -191,7 +201,8 @@ describe('Server Runner', () => {
|
|
|
191
201
|
// Execute and expect error
|
|
192
202
|
await expect(runServer({ stdio: false, port: 3000, host: 'localhost' })).rejects.toThrow('process.exit called');
|
|
193
203
|
// Verify
|
|
194
|
-
expect(logger.error).toHaveBeenCalledWith('MCP Hub Lite is already running on port 3000 (PID: 1234)');
|
|
204
|
+
expect(logger.error).toHaveBeenCalledWith('MCP Hub Lite is already running on port 3000 (PID: 1234)', expect.any(Object));
|
|
205
|
+
expect(logger.error).toHaveBeenCalledWith("Use 'npm run stop' or 'mcp-hub-lite stop' to stop the running instance.", expect.any(Object));
|
|
195
206
|
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
196
207
|
// Restore
|
|
197
208
|
exitSpy.mockRestore();
|
|
@@ -201,7 +212,7 @@ describe('Server Runner', () => {
|
|
|
201
212
|
const mockApp = { listen: vi.fn(), close: vi.fn() };
|
|
202
213
|
vi.mocked(buildApp).mockResolvedValue(mockApp);
|
|
203
214
|
const mockConfig = {
|
|
204
|
-
version: '1.
|
|
215
|
+
version: '1.1.0',
|
|
205
216
|
system: {
|
|
206
217
|
host: 'localhost',
|
|
207
218
|
port: 3000,
|
|
@@ -212,7 +223,7 @@ describe('Server Runner', () => {
|
|
|
212
223
|
rotationAge: '7d',
|
|
213
224
|
jsonPretty: true,
|
|
214
225
|
mcpCommDebug: false,
|
|
215
|
-
|
|
226
|
+
apiDebug: false
|
|
216
227
|
}
|
|
217
228
|
},
|
|
218
229
|
security: {
|
|
@@ -220,11 +231,10 @@ describe('Server Runner', () => {
|
|
|
220
231
|
maxConcurrentConnections: 50,
|
|
221
232
|
connectionTimeout: 30000,
|
|
222
233
|
idleConnectionTimeout: 300000,
|
|
223
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
224
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
225
234
|
maxConnections: 50
|
|
226
235
|
},
|
|
227
|
-
servers: {}
|
|
236
|
+
servers: {},
|
|
237
|
+
tagDefinitions: []
|
|
228
238
|
};
|
|
229
239
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
230
240
|
vi.mocked(configManager.getServers).mockReturnValue([]);
|
|
@@ -242,9 +252,10 @@ describe('Server Runner', () => {
|
|
|
242
252
|
// Execute and expect error
|
|
243
253
|
await expect(runServer({ stdio: false, port: 3000, host: 'localhost' })).rejects.toThrow('process.exit called');
|
|
244
254
|
// Verify
|
|
245
|
-
expect(logger.error).toHaveBeenCalledWith('Port 3000 is already in use by another application:');
|
|
246
|
-
expect(logger.error).toHaveBeenCalledWith(' Process: other-app (PID: 5678)');
|
|
247
|
-
expect(logger.error).toHaveBeenCalledWith(' Command: node other-app.js');
|
|
255
|
+
expect(logger.error).toHaveBeenCalledWith('Port 3000 is already in use by another application:', expect.any(Object));
|
|
256
|
+
expect(logger.error).toHaveBeenCalledWith(' Process: other-app (PID: 5678)', expect.any(Object));
|
|
257
|
+
expect(logger.error).toHaveBeenCalledWith(' Command: node other-app.js', expect.any(Object));
|
|
258
|
+
expect(logger.error).toHaveBeenCalledWith('Please stop the conflicting application or use a different port.', expect.any(Object));
|
|
248
259
|
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
249
260
|
// Restore
|
|
250
261
|
exitSpy.mockRestore();
|
|
@@ -257,7 +268,7 @@ describe('Server Runner', () => {
|
|
|
257
268
|
};
|
|
258
269
|
vi.mocked(buildApp).mockResolvedValue(mockApp);
|
|
259
270
|
const mockConfig = {
|
|
260
|
-
version: '1.
|
|
271
|
+
version: '1.1.0',
|
|
261
272
|
system: {
|
|
262
273
|
host: 'localhost',
|
|
263
274
|
port: 3000,
|
|
@@ -268,7 +279,7 @@ describe('Server Runner', () => {
|
|
|
268
279
|
rotationAge: '7d',
|
|
269
280
|
jsonPretty: true,
|
|
270
281
|
mcpCommDebug: false,
|
|
271
|
-
|
|
282
|
+
apiDebug: false
|
|
272
283
|
}
|
|
273
284
|
},
|
|
274
285
|
security: {
|
|
@@ -276,11 +287,10 @@ describe('Server Runner', () => {
|
|
|
276
287
|
maxConcurrentConnections: 50,
|
|
277
288
|
connectionTimeout: 30000,
|
|
278
289
|
idleConnectionTimeout: 300000,
|
|
279
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
280
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
281
290
|
maxConnections: 50
|
|
282
291
|
},
|
|
283
|
-
servers: {}
|
|
292
|
+
servers: {},
|
|
293
|
+
tagDefinitions: []
|
|
284
294
|
};
|
|
285
295
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
286
296
|
vi.mocked(checkPort).mockResolvedValue({ inUse: false });
|
|
@@ -288,36 +298,53 @@ describe('Server Runner', () => {
|
|
|
288
298
|
{
|
|
289
299
|
name: 'enabled-server',
|
|
290
300
|
config: {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
301
|
+
template: {
|
|
302
|
+
command: 'test-command',
|
|
303
|
+
type: 'stdio',
|
|
304
|
+
args: [],
|
|
305
|
+
env: {},
|
|
306
|
+
headers: {},
|
|
307
|
+
aggregatedTools: [],
|
|
308
|
+
timeout: 30000
|
|
309
|
+
},
|
|
310
|
+
instances: [
|
|
311
|
+
{ id: 'instance-1', enabled: true, args: [], env: {}, headers: {}, tags: {} }
|
|
312
|
+
],
|
|
313
|
+
tagDefinitions: []
|
|
297
314
|
}
|
|
298
315
|
},
|
|
299
316
|
{
|
|
300
317
|
name: 'disabled-server',
|
|
301
318
|
config: {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
319
|
+
template: {
|
|
320
|
+
command: 'test-command',
|
|
321
|
+
type: 'stdio',
|
|
322
|
+
args: [],
|
|
323
|
+
env: {},
|
|
324
|
+
headers: {},
|
|
325
|
+
aggregatedTools: [],
|
|
326
|
+
timeout: 30000
|
|
327
|
+
},
|
|
328
|
+
instances: [
|
|
329
|
+
{ id: 'instance-2', enabled: false, args: [], env: {}, headers: {}, tags: {} }
|
|
330
|
+
],
|
|
331
|
+
tagDefinitions: []
|
|
308
332
|
}
|
|
309
333
|
}
|
|
310
334
|
];
|
|
311
335
|
vi.mocked(configManager.getServers).mockReturnValue(mockServers);
|
|
312
|
-
vi.mocked(configManager.
|
|
336
|
+
vi.mocked(configManager.getServerInstancesByName).mockImplementation((name) => {
|
|
313
337
|
if (name === 'enabled-server')
|
|
314
338
|
return [];
|
|
315
|
-
return [{ id: 'instance-1',
|
|
339
|
+
return [{ id: 'instance-1', enabled: false, args: [], env: {}, headers: {}, tags: {} }];
|
|
316
340
|
});
|
|
317
341
|
vi.mocked(configManager.addServerInstance).mockResolvedValue({
|
|
318
342
|
id: 'new-instance',
|
|
319
|
-
|
|
320
|
-
|
|
343
|
+
enabled: true,
|
|
344
|
+
args: [],
|
|
345
|
+
env: {},
|
|
346
|
+
headers: {},
|
|
347
|
+
tags: {}
|
|
321
348
|
});
|
|
322
349
|
// Execute
|
|
323
350
|
await runServer({ stdio: false, port: 3000, host: 'localhost' });
|
|
@@ -325,7 +352,7 @@ describe('Server Runner', () => {
|
|
|
325
352
|
// Only enabled server should be connected (1 call expected)
|
|
326
353
|
expect(mcpConnectionManager.connect).toHaveBeenCalledTimes(1);
|
|
327
354
|
// Call for enabled server with new instance
|
|
328
|
-
expect(mcpConnectionManager.connect).toHaveBeenCalledWith(expect.objectContaining({
|
|
355
|
+
expect(mcpConnectionManager.connect).toHaveBeenCalledWith('enabled-server', 0, expect.objectContaining({
|
|
329
356
|
enabled: true,
|
|
330
357
|
command: 'test-command',
|
|
331
358
|
id: 'new-instance'
|
|
@@ -339,7 +366,7 @@ describe('Server Runner', () => {
|
|
|
339
366
|
};
|
|
340
367
|
vi.mocked(buildApp).mockResolvedValue(mockApp);
|
|
341
368
|
const mockConfig = {
|
|
342
|
-
version: '1.
|
|
369
|
+
version: '1.1.0',
|
|
343
370
|
system: {
|
|
344
371
|
host: 'localhost',
|
|
345
372
|
port: 3000,
|
|
@@ -350,7 +377,7 @@ describe('Server Runner', () => {
|
|
|
350
377
|
rotationAge: '7d',
|
|
351
378
|
jsonPretty: true,
|
|
352
379
|
mcpCommDebug: false,
|
|
353
|
-
|
|
380
|
+
apiDebug: false
|
|
354
381
|
}
|
|
355
382
|
},
|
|
356
383
|
security: {
|
|
@@ -358,11 +385,10 @@ describe('Server Runner', () => {
|
|
|
358
385
|
maxConcurrentConnections: 50,
|
|
359
386
|
connectionTimeout: 30000,
|
|
360
387
|
idleConnectionTimeout: 300000,
|
|
361
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
362
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
363
388
|
maxConnections: 50
|
|
364
389
|
},
|
|
365
|
-
servers: {}
|
|
390
|
+
servers: {},
|
|
391
|
+
tagDefinitions: []
|
|
366
392
|
};
|
|
367
393
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
368
394
|
vi.mocked(configManager.getServers).mockReturnValue([]);
|
|
@@ -394,7 +420,7 @@ describe('Server Runner', () => {
|
|
|
394
420
|
};
|
|
395
421
|
vi.mocked(buildApp).mockResolvedValue(mockApp);
|
|
396
422
|
const mockConfig = {
|
|
397
|
-
version: '1.
|
|
423
|
+
version: '1.1.0',
|
|
398
424
|
system: {
|
|
399
425
|
host: 'localhost',
|
|
400
426
|
port: 3000,
|
|
@@ -405,7 +431,7 @@ describe('Server Runner', () => {
|
|
|
405
431
|
rotationAge: '7d',
|
|
406
432
|
jsonPretty: true,
|
|
407
433
|
mcpCommDebug: false,
|
|
408
|
-
|
|
434
|
+
apiDebug: false
|
|
409
435
|
}
|
|
410
436
|
},
|
|
411
437
|
security: {
|
|
@@ -413,11 +439,10 @@ describe('Server Runner', () => {
|
|
|
413
439
|
maxConcurrentConnections: 50,
|
|
414
440
|
connectionTimeout: 30000,
|
|
415
441
|
idleConnectionTimeout: 300000,
|
|
416
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
417
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
418
442
|
maxConnections: 50
|
|
419
443
|
},
|
|
420
|
-
servers: {}
|
|
444
|
+
servers: {},
|
|
445
|
+
tagDefinitions: []
|
|
421
446
|
};
|
|
422
447
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
423
448
|
vi.mocked(configManager.getServers).mockReturnValue([]);
|
|
@@ -445,7 +470,7 @@ describe('Server Runner', () => {
|
|
|
445
470
|
// Setup mocks to throw error
|
|
446
471
|
vi.mocked(buildApp).mockRejectedValue(new Error('Startup failed'));
|
|
447
472
|
const mockConfig = {
|
|
448
|
-
version: '1.
|
|
473
|
+
version: '1.1.0',
|
|
449
474
|
system: {
|
|
450
475
|
host: 'localhost',
|
|
451
476
|
port: 3000,
|
|
@@ -456,7 +481,7 @@ describe('Server Runner', () => {
|
|
|
456
481
|
rotationAge: '7d',
|
|
457
482
|
jsonPretty: true,
|
|
458
483
|
mcpCommDebug: false,
|
|
459
|
-
|
|
484
|
+
apiDebug: false
|
|
460
485
|
}
|
|
461
486
|
},
|
|
462
487
|
security: {
|
|
@@ -464,11 +489,10 @@ describe('Server Runner', () => {
|
|
|
464
489
|
maxConcurrentConnections: 50,
|
|
465
490
|
connectionTimeout: 30000,
|
|
466
491
|
idleConnectionTimeout: 300000,
|
|
467
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
468
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
469
492
|
maxConnections: 50
|
|
470
493
|
},
|
|
471
|
-
servers: {}
|
|
494
|
+
servers: {},
|
|
495
|
+
tagDefinitions: []
|
|
472
496
|
};
|
|
473
497
|
vi.mocked(configManager.getConfig).mockReturnValue(mockConfig);
|
|
474
498
|
// Spy on process.exit
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-manager.test.d.ts","sourceRoot":"","sources":["../../../../../../tests/unit/services/connection/connection-manager.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
+
import { McpConnectionManager } from '../../../../src/services/connection/connection-manager.js';
|
|
3
|
+
// Mock dependencies
|
|
4
|
+
vi.mock('@utils/logger.js', () => ({
|
|
5
|
+
logger: {
|
|
6
|
+
info: vi.fn(),
|
|
7
|
+
error: vi.fn(),
|
|
8
|
+
warn: vi.fn(),
|
|
9
|
+
debug: vi.fn()
|
|
10
|
+
},
|
|
11
|
+
LOG_MODULES: {
|
|
12
|
+
CONNECTION_MANAGER: 'connection-manager'
|
|
13
|
+
},
|
|
14
|
+
formatMcpMessageForLogging: vi.fn(),
|
|
15
|
+
logNotificationMessage: vi.fn()
|
|
16
|
+
}));
|
|
17
|
+
vi.mock('@utils/json-utils.js', () => ({
|
|
18
|
+
getMcpCommDebugSetting: vi.fn().mockReturnValue(false)
|
|
19
|
+
}));
|
|
20
|
+
vi.mock('@services/log-storage.service.js', () => ({
|
|
21
|
+
logStorage: {
|
|
22
|
+
append: vi.fn()
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
vi.mock('@services/event-bus.service.js', () => ({
|
|
26
|
+
eventBus: {
|
|
27
|
+
subscribe: vi.fn(),
|
|
28
|
+
publish: vi.fn()
|
|
29
|
+
},
|
|
30
|
+
EventTypes: {
|
|
31
|
+
SERVER_DELETED: 'server-deleted',
|
|
32
|
+
SERVER_CONNECTED: 'server-connected',
|
|
33
|
+
SERVER_DISCONNECTED: 'server-disconnected',
|
|
34
|
+
SERVER_STATUS_CHANGE: 'server-status-change',
|
|
35
|
+
TOOLS_UPDATED: 'tools-updated',
|
|
36
|
+
RESOURCES_UPDATED: 'resources-updated'
|
|
37
|
+
}
|
|
38
|
+
}));
|
|
39
|
+
vi.mock('@services/hub-manager.service.js', () => ({
|
|
40
|
+
hubManager: {
|
|
41
|
+
getServerById: vi.fn(),
|
|
42
|
+
getServerInstancesByName: vi.fn()
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
vi.mock('@utils/transports/transport-factory.js', () => ({
|
|
46
|
+
TransportFactory: {
|
|
47
|
+
createTransport: vi.fn()
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
50
|
+
vi.mock('@modelcontextprotocol/sdk/client/index.js', () => ({
|
|
51
|
+
Client: vi.fn().mockImplementation(() => ({
|
|
52
|
+
connect: vi.fn(),
|
|
53
|
+
getServerVersion: vi.fn().mockReturnValue({ version: '1.0.0' }),
|
|
54
|
+
listTools: vi.fn().mockResolvedValue({ tools: [] }),
|
|
55
|
+
close: vi.fn()
|
|
56
|
+
}))
|
|
57
|
+
}));
|
|
58
|
+
describe('McpConnectionManager - Stdio Retry Mechanism', () => {
|
|
59
|
+
let manager;
|
|
60
|
+
beforeEach(() => {
|
|
61
|
+
vi.clearAllMocks();
|
|
62
|
+
manager = new McpConnectionManager();
|
|
63
|
+
});
|
|
64
|
+
describe('isProcessRunning helper', () => {
|
|
65
|
+
it('should have a private isProcessRunning method', () => {
|
|
66
|
+
// Verify that isProcessRunning is a method (private)
|
|
67
|
+
expect(typeof manager
|
|
68
|
+
.isProcessRunning).toBe('function');
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('connection retry configuration', () => {
|
|
72
|
+
it('should define retry constants', () => {
|
|
73
|
+
// The constants are private to the connect method, but we can verify
|
|
74
|
+
// that the class structure is correct
|
|
75
|
+
expect(manager).toBeInstanceOf(McpConnectionManager);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('status management', () => {
|
|
79
|
+
it('should provide getStatus method', () => {
|
|
80
|
+
expect(typeof manager.getStatus).toBe('function');
|
|
81
|
+
});
|
|
82
|
+
it('should return undefined for non-existent server', () => {
|
|
83
|
+
const status = manager.getStatus('non-existent-server');
|
|
84
|
+
expect(status).toBeUndefined();
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('disconnect methods', () => {
|
|
88
|
+
it('should provide disconnect method', () => {
|
|
89
|
+
expect(typeof manager.disconnect).toBe('function');
|
|
90
|
+
});
|
|
91
|
+
it('should provide disconnectAll method', () => {
|
|
92
|
+
expect(typeof manager.disconnectAll).toBe('function');
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
describe('tool and resource methods', () => {
|
|
96
|
+
it('should provide refreshTools method', () => {
|
|
97
|
+
expect(typeof manager.refreshTools).toBe('function');
|
|
98
|
+
});
|
|
99
|
+
it('should provide refreshResources method', () => {
|
|
100
|
+
expect(typeof manager.refreshResources).toBe('function');
|
|
101
|
+
});
|
|
102
|
+
it('should provide getTools method', () => {
|
|
103
|
+
expect(typeof manager.getTools).toBe('function');
|
|
104
|
+
});
|
|
105
|
+
it('should provide getResources method', () => {
|
|
106
|
+
expect(typeof manager.getResources).toBe('function');
|
|
107
|
+
});
|
|
108
|
+
it('should provide getAllTools method', () => {
|
|
109
|
+
expect(typeof manager.getAllTools).toBe('function');
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
});
|