@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
|
@@ -29,9 +29,6 @@ describe('ConfigManager', () => {
|
|
|
29
29
|
configManager = new ConfigManager(tempConfigPath);
|
|
30
30
|
});
|
|
31
31
|
afterEach(() => {
|
|
32
|
-
// Force garbage collection to ensure config manager instance is destroyed
|
|
33
|
-
// Since tests need to frequently create and destroy instances, don't set to null here
|
|
34
|
-
// Instead, let each test case create a new instance
|
|
35
32
|
// Restore original environment variables
|
|
36
33
|
process.env = { ...originalEnv };
|
|
37
34
|
// Clean up temporary directory with retry mechanism to prevent permission issues
|
|
@@ -65,14 +62,14 @@ describe('ConfigManager', () => {
|
|
|
65
62
|
const config = configManager.getConfig();
|
|
66
63
|
// Verify default configuration
|
|
67
64
|
expect(config).toBeDefined();
|
|
68
|
-
expect(config.version).toBe('1.
|
|
65
|
+
expect(config.version).toBe('1.1.0');
|
|
69
66
|
expect(config.system.host).toBe('localhost');
|
|
70
67
|
expect(config.system.port).toBe(7788);
|
|
71
68
|
expect(config.servers).toEqual({});
|
|
72
69
|
});
|
|
73
70
|
it('should load existing config file', () => {
|
|
74
71
|
const testConfig = {
|
|
75
|
-
version: '1.
|
|
72
|
+
version: '1.1.0',
|
|
76
73
|
system: {
|
|
77
74
|
host: 'test-host',
|
|
78
75
|
port: 8080,
|
|
@@ -80,10 +77,10 @@ describe('ConfigManager', () => {
|
|
|
80
77
|
theme: 'light',
|
|
81
78
|
logging: {
|
|
82
79
|
level: 'debug',
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
rotationAge: '30d',
|
|
81
|
+
jsonPretty: true,
|
|
82
|
+
mcpCommDebug: false,
|
|
83
|
+
apiDebug: false
|
|
87
84
|
}
|
|
88
85
|
},
|
|
89
86
|
security: {
|
|
@@ -92,23 +89,28 @@ describe('ConfigManager', () => {
|
|
|
92
89
|
connectionTimeout: 15000,
|
|
93
90
|
idleConnectionTimeout: 60000,
|
|
94
91
|
sessionTimeout: 30 * 60 * 1000,
|
|
92
|
+
sessionFlushInterval: 900000,
|
|
95
93
|
maxConnections: 20
|
|
96
94
|
},
|
|
97
95
|
servers: {
|
|
98
96
|
'test-server': {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
97
|
+
template: {
|
|
98
|
+
command: 'test-command',
|
|
99
|
+
args: ['arg1', 'arg2'],
|
|
100
|
+
type: 'stdio',
|
|
101
|
+
timeout: 30000,
|
|
102
|
+
aggregatedTools: [],
|
|
103
|
+
tags: {}
|
|
104
|
+
},
|
|
105
|
+
instances: [
|
|
106
|
+
{
|
|
107
|
+
id: 'test-server-1',
|
|
108
|
+
enabled: true,
|
|
109
|
+
args: [],
|
|
110
|
+
tags: {}
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
tagDefinitions: []
|
|
112
114
|
}
|
|
113
115
|
}
|
|
114
116
|
};
|
|
@@ -120,7 +122,7 @@ describe('ConfigManager', () => {
|
|
|
120
122
|
expect(config.system.host).toBe('test-host');
|
|
121
123
|
expect(config.system.port).toBe(8080);
|
|
122
124
|
expect(config.servers['test-server']).toBeDefined();
|
|
123
|
-
expect(config.servers['test-server'].command).toBe('test-command');
|
|
125
|
+
expect(config.servers['test-server'].template.command).toBe('test-command');
|
|
124
126
|
});
|
|
125
127
|
it('should handle invalid config file gracefully', () => {
|
|
126
128
|
// Write invalid JSON
|
|
@@ -128,20 +130,15 @@ describe('ConfigManager', () => {
|
|
|
128
130
|
configManager = new ConfigManager(tempConfigPath);
|
|
129
131
|
const config = configManager.getConfig();
|
|
130
132
|
// Should fall back to default configuration
|
|
131
|
-
expect(config.version).toBe('1.
|
|
133
|
+
expect(config.version).toBe('1.1.0');
|
|
132
134
|
expect(config.system.host).toBe('localhost');
|
|
133
135
|
});
|
|
134
136
|
});
|
|
135
137
|
describe('Configuration Saving', () => {
|
|
136
|
-
it('should save config to file', () => {
|
|
137
|
-
console.log('[TEST] Starting "should save config to file" test');
|
|
138
|
-
console.log('[TEST] tempConfigPath:', tempConfigPath);
|
|
138
|
+
it('should save config to file', async () => {
|
|
139
139
|
configManager = new ConfigManager(tempConfigPath);
|
|
140
|
-
// Log initial configuration
|
|
141
|
-
const initialConfig = configManager.getConfig();
|
|
142
|
-
console.log('[TEST] Initial config:', JSON.stringify(initialConfig));
|
|
143
140
|
// Modify configuration
|
|
144
|
-
configManager.updateConfig({
|
|
141
|
+
await configManager.updateConfig({
|
|
145
142
|
system: {
|
|
146
143
|
host: 'new-host',
|
|
147
144
|
port: 9090,
|
|
@@ -152,24 +149,18 @@ describe('ConfigManager', () => {
|
|
|
152
149
|
rotationAge: '7d',
|
|
153
150
|
jsonPretty: true,
|
|
154
151
|
mcpCommDebug: false,
|
|
155
|
-
|
|
152
|
+
apiDebug: false
|
|
156
153
|
}
|
|
157
154
|
}
|
|
158
155
|
});
|
|
159
|
-
// Log in-memory configuration
|
|
160
|
-
const memoryConfig = configManager.getConfig();
|
|
161
|
-
console.log('[TEST] Memory config after update:', JSON.stringify(memoryConfig));
|
|
162
156
|
// Verify file was created and contains correct content
|
|
163
157
|
expect(fs.existsSync(tempConfigPath)).toBe(true);
|
|
164
158
|
const savedContent = fs.readFileSync(tempConfigPath, 'utf-8');
|
|
165
|
-
console.log('[TEST] File content:', savedContent);
|
|
166
159
|
const savedConfig = JSON.parse(savedContent);
|
|
167
|
-
console.log('[TEST] Parsed config from file:', JSON.stringify(savedConfig));
|
|
168
160
|
expect(savedConfig.system.host).toBe('new-host');
|
|
169
161
|
expect(savedConfig.system.port).toBe(9090);
|
|
170
|
-
console.log('[TEST] Test passed');
|
|
171
162
|
});
|
|
172
|
-
it('should create config directory if it does not exist', () => {
|
|
163
|
+
it('should create config directory if it does not exist', async () => {
|
|
173
164
|
const testRunId = `non-existent-dir-${Date.now()}-${Math.random().toString(36).substr(2, 5)}`;
|
|
174
165
|
const nonExistentPath = path.join(os.tmpdir(), testRunId, '.mcp-hub.json');
|
|
175
166
|
// Ensure directory doesn't exist
|
|
@@ -191,7 +182,7 @@ describe('ConfigManager', () => {
|
|
|
191
182
|
}
|
|
192
183
|
configManager = new ConfigManager(nonExistentPath);
|
|
193
184
|
// Modify configuration to trigger save
|
|
194
|
-
configManager.updateConfig({
|
|
185
|
+
await configManager.updateConfig({
|
|
195
186
|
system: {
|
|
196
187
|
host: 'test-host',
|
|
197
188
|
port: 7788,
|
|
@@ -202,7 +193,7 @@ describe('ConfigManager', () => {
|
|
|
202
193
|
rotationAge: '7d',
|
|
203
194
|
jsonPretty: true,
|
|
204
195
|
mcpCommDebug: false,
|
|
205
|
-
|
|
196
|
+
apiDebug: false
|
|
206
197
|
}
|
|
207
198
|
}
|
|
208
199
|
});
|
|
@@ -244,7 +235,7 @@ describe('ConfigManager', () => {
|
|
|
244
235
|
rotationAge: '7d',
|
|
245
236
|
jsonPretty: true,
|
|
246
237
|
mcpCommDebug: false,
|
|
247
|
-
|
|
238
|
+
apiDebug: false
|
|
248
239
|
}
|
|
249
240
|
}
|
|
250
241
|
};
|
|
@@ -259,72 +250,67 @@ describe('ConfigManager', () => {
|
|
|
259
250
|
configManager = new ConfigManager(tempConfigPath);
|
|
260
251
|
});
|
|
261
252
|
it('should add a new server', async () => {
|
|
262
|
-
const
|
|
253
|
+
const serverTemplate = {
|
|
263
254
|
command: 'test-command',
|
|
264
255
|
args: ['arg1'],
|
|
265
|
-
enabled: true,
|
|
266
256
|
type: 'stdio'
|
|
267
257
|
};
|
|
268
|
-
await configManager.addServer('test-server',
|
|
258
|
+
await configManager.addServer('test-server', serverTemplate);
|
|
269
259
|
const servers = configManager.getServers();
|
|
270
260
|
expect(servers).toHaveLength(1);
|
|
271
261
|
expect(servers[0].name).toBe('test-server');
|
|
272
|
-
expect(servers[0].config.command).toBe('test-command');
|
|
262
|
+
expect(servers[0].config.template.command).toBe('test-command');
|
|
263
|
+
expect(servers[0].config.instances).toHaveLength(1);
|
|
273
264
|
});
|
|
274
265
|
it('should validate server config when adding', async () => {
|
|
275
266
|
const invalidServerConfig = {
|
|
276
267
|
command: 'test-command',
|
|
277
|
-
type: 'invalid-type'
|
|
268
|
+
type: 'invalid-type'
|
|
278
269
|
};
|
|
279
270
|
await expect(configManager.addServer('test-server', invalidServerConfig)).rejects.toThrow();
|
|
280
271
|
});
|
|
281
|
-
it('should get server by name', () => {
|
|
272
|
+
it('should get server by name', async () => {
|
|
282
273
|
const serverConfig = {
|
|
283
274
|
command: 'test-command',
|
|
284
|
-
enabled: true,
|
|
285
275
|
type: 'stdio'
|
|
286
276
|
};
|
|
287
|
-
configManager.addServer('test-server', serverConfig);
|
|
277
|
+
await configManager.addServer('test-server', serverConfig);
|
|
288
278
|
const server = configManager.getServerByName('test-server');
|
|
289
279
|
expect(server).toBeDefined();
|
|
290
|
-
expect(server?.command).toBe('test-command');
|
|
280
|
+
expect(server?.template.command).toBe('test-command');
|
|
291
281
|
const nonExistentServer = configManager.getServerByName('non-existent');
|
|
292
282
|
expect(nonExistentServer).toBeUndefined();
|
|
293
283
|
});
|
|
294
284
|
it('should update existing server', async () => {
|
|
295
285
|
const initialConfig = {
|
|
296
286
|
command: 'initial-command',
|
|
297
|
-
enabled: true,
|
|
298
287
|
type: 'stdio'
|
|
299
288
|
};
|
|
300
289
|
await configManager.addServer('test-server', initialConfig);
|
|
301
290
|
const updates = {
|
|
302
|
-
command: 'updated-command'
|
|
303
|
-
enabled: false
|
|
291
|
+
command: 'updated-command'
|
|
304
292
|
};
|
|
305
293
|
await configManager.updateServer('test-server', updates);
|
|
306
294
|
const updatedServer = configManager.getServerByName('test-server');
|
|
307
|
-
expect(updatedServer?.command).toBe('updated-command');
|
|
308
|
-
expect(updatedServer?.enabled).toBe(false);
|
|
295
|
+
expect(updatedServer?.template.command).toBe('updated-command');
|
|
309
296
|
});
|
|
310
297
|
it('should not update non-existent server', async () => {
|
|
311
|
-
await configManager.updateServer('non-existent', {
|
|
312
|
-
|
|
313
|
-
expect(server).toBeUndefined();
|
|
298
|
+
const result = await configManager.updateServer('non-existent', { command: 'test' });
|
|
299
|
+
expect(result).toBeNull();
|
|
314
300
|
});
|
|
315
301
|
it('should remove server', async () => {
|
|
316
302
|
await configManager.addServer('test-server', {
|
|
317
303
|
command: 'test-command',
|
|
318
|
-
enabled: true,
|
|
319
304
|
type: 'stdio'
|
|
320
305
|
});
|
|
321
|
-
await configManager.removeServer('test-server');
|
|
306
|
+
const result = await configManager.removeServer('test-server');
|
|
307
|
+
expect(result).toBe(true);
|
|
322
308
|
const server = configManager.getServerByName('test-server');
|
|
323
309
|
expect(server).toBeUndefined();
|
|
324
310
|
});
|
|
325
311
|
it('should not remove non-existent server', async () => {
|
|
326
|
-
await configManager.removeServer('non-existent');
|
|
327
|
-
|
|
312
|
+
const result = await configManager.removeServer('non-existent');
|
|
313
|
+
expect(result).toBe(false);
|
|
328
314
|
});
|
|
329
315
|
});
|
|
330
316
|
describe('Server Instance Management', () => {
|
|
@@ -335,125 +321,71 @@ describe('ConfigManager', () => {
|
|
|
335
321
|
// Add server first
|
|
336
322
|
await configManager.addServer('test-server', {
|
|
337
323
|
command: 'test-command',
|
|
338
|
-
enabled: true,
|
|
339
324
|
type: 'stdio'
|
|
340
325
|
});
|
|
341
326
|
const instanceConfig = {
|
|
342
|
-
|
|
327
|
+
enabled: false
|
|
343
328
|
};
|
|
344
329
|
const instance = await configManager.addServerInstance('test-server', instanceConfig);
|
|
345
|
-
expect(instance.id).
|
|
346
|
-
expect(instance.
|
|
347
|
-
expect(instance.timestamp).toBeDefined();
|
|
348
|
-
expect(instance.hash).toBeDefined();
|
|
330
|
+
expect(instance.id).toMatch(/^test-server-[0-9a-f]{8}(-[0-9]+)?$/);
|
|
331
|
+
expect(instance.enabled).toBe(false);
|
|
349
332
|
});
|
|
350
333
|
it('should add server instance with provided ID', async () => {
|
|
351
334
|
await configManager.addServer('test-server', {
|
|
352
335
|
command: 'test-command',
|
|
353
|
-
enabled: true,
|
|
354
336
|
type: 'stdio'
|
|
355
337
|
});
|
|
356
338
|
const instanceConfig = {
|
|
357
339
|
id: 'custom-id',
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
340
|
+
enabled: true,
|
|
341
|
+
args: ['--verbose'],
|
|
342
|
+
tags: { env: 'test' }
|
|
361
343
|
};
|
|
362
344
|
const instance = await configManager.addServerInstance('test-server', instanceConfig);
|
|
363
345
|
expect(instance.id).toBe('custom-id');
|
|
364
|
-
expect(instance.
|
|
365
|
-
expect(instance.
|
|
366
|
-
expect(instance.
|
|
367
|
-
});
|
|
368
|
-
it('should validate server instance config', async () => {
|
|
369
|
-
await configManager.addServer('test-server', {
|
|
370
|
-
command: 'test-command',
|
|
371
|
-
enabled: true,
|
|
372
|
-
type: 'stdio'
|
|
373
|
-
});
|
|
374
|
-
const invalidInstance = {
|
|
375
|
-
id: 'test-id',
|
|
376
|
-
timestamp: 'invalid-timestamp' // Should be a number
|
|
377
|
-
};
|
|
378
|
-
await expect(configManager.addServerInstance('test-server', invalidInstance)).rejects.toThrow();
|
|
346
|
+
expect(instance.enabled).toBe(true);
|
|
347
|
+
expect(instance.args).toEqual(['--verbose']);
|
|
348
|
+
expect(instance.tags).toEqual({ env: 'test' });
|
|
379
349
|
});
|
|
380
|
-
it('should get server instances by name', () => {
|
|
381
|
-
const instances = configManager.
|
|
350
|
+
it('should get server instances by name', async () => {
|
|
351
|
+
const instances = configManager.getServerInstancesByName('non-existent');
|
|
382
352
|
expect(instances).toHaveLength(0);
|
|
383
353
|
// Add server and instance
|
|
384
|
-
configManager.addServer('test-server', {
|
|
385
|
-
command: 'test-command',
|
|
386
|
-
enabled: true,
|
|
387
|
-
type: 'stdio'
|
|
388
|
-
});
|
|
389
|
-
configManager.addServerInstance('test-server', { pid: 12345 });
|
|
390
|
-
const testInstances = configManager.getServerInstanceByName('test-server');
|
|
391
|
-
expect(testInstances).toHaveLength(1);
|
|
392
|
-
});
|
|
393
|
-
it('should get all server instances', () => {
|
|
394
|
-
const allInstances = configManager.getServerInstances();
|
|
395
|
-
expect(Object.keys(allInstances)).toHaveLength(0);
|
|
396
|
-
// Add server and instance
|
|
397
|
-
configManager.addServer('server1', {
|
|
398
|
-
command: 'cmd1',
|
|
399
|
-
enabled: true,
|
|
400
|
-
type: 'stdio'
|
|
401
|
-
});
|
|
402
|
-
configManager.addServer('server2', {
|
|
403
|
-
command: 'cmd2',
|
|
404
|
-
enabled: true,
|
|
405
|
-
type: 'stdio'
|
|
406
|
-
});
|
|
407
|
-
configManager.addServerInstance('server1', { pid: 12345 });
|
|
408
|
-
configManager.addServerInstance('server2', { pid: 67890 });
|
|
409
|
-
const allInstancesAfter = configManager.getServerInstances();
|
|
410
|
-
expect(Object.keys(allInstancesAfter)).toHaveLength(2);
|
|
411
|
-
expect(allInstancesAfter.server1).toHaveLength(1);
|
|
412
|
-
expect(allInstancesAfter.server2).toHaveLength(1);
|
|
413
|
-
});
|
|
414
|
-
it('should get server by instance ID', async () => {
|
|
415
354
|
await configManager.addServer('test-server', {
|
|
416
355
|
command: 'test-command',
|
|
417
|
-
enabled: true,
|
|
418
356
|
type: 'stdio'
|
|
419
357
|
});
|
|
420
|
-
await configManager.addServerInstance('test-server', {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
hash: 'test-hash',
|
|
424
|
-
pid: 12345
|
|
425
|
-
});
|
|
426
|
-
const result = configManager.getServerById('test-instance-id');
|
|
427
|
-
expect(result).toBeDefined();
|
|
428
|
-
expect(result?.name).toBe('test-server');
|
|
429
|
-
expect(result?.instance.id).toBe('test-instance-id');
|
|
430
|
-
expect(result?.config.command).toBe('test-command');
|
|
431
|
-
const nonExistent = configManager.getServerById('non-existent');
|
|
432
|
-
expect(nonExistent).toBeUndefined();
|
|
358
|
+
await configManager.addServerInstance('test-server', { enabled: true });
|
|
359
|
+
const testInstances = configManager.getServerInstancesByName('test-server');
|
|
360
|
+
expect(testInstances).toHaveLength(2); // Default instance + new one
|
|
433
361
|
});
|
|
434
362
|
it('should update server instance', async () => {
|
|
435
363
|
await configManager.addServer('test-server', {
|
|
436
364
|
command: 'test-command',
|
|
437
|
-
enabled: true,
|
|
438
365
|
type: 'stdio'
|
|
439
366
|
});
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
const
|
|
443
|
-
|
|
367
|
+
const instances = configManager.getServerInstancesByName('test-server');
|
|
368
|
+
const index = instances[0].index ?? 0;
|
|
369
|
+
const result = await configManager.updateServerInstance('test-server', index, {
|
|
370
|
+
enabled: false
|
|
371
|
+
});
|
|
372
|
+
expect(result).toBe(true);
|
|
373
|
+
const updatedInstances = configManager.getServerInstancesByName('test-server');
|
|
374
|
+
expect(updatedInstances[0].enabled).toBe(false);
|
|
444
375
|
});
|
|
445
376
|
it('should remove server instance', async () => {
|
|
446
377
|
await configManager.addServer('test-server', {
|
|
447
378
|
command: 'test-command',
|
|
448
|
-
enabled: true,
|
|
449
379
|
type: 'stdio'
|
|
450
380
|
});
|
|
451
|
-
await configManager.addServerInstance('test-server', {
|
|
452
|
-
await configManager.addServerInstance('test-server', {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
expect(
|
|
381
|
+
await configManager.addServerInstance('test-server', { id: 'instance-1', enabled: true });
|
|
382
|
+
await configManager.addServerInstance('test-server', { id: 'instance-2', enabled: true });
|
|
383
|
+
let instances = configManager.getServerInstancesByName('test-server');
|
|
384
|
+
expect(instances).toHaveLength(3); // Default + 2 added
|
|
385
|
+
const result = await configManager.removeServerInstance('test-server', 0);
|
|
386
|
+
expect(result).toBe(true);
|
|
387
|
+
instances = configManager.getServerInstancesByName('test-server');
|
|
388
|
+
expect(instances).toHaveLength(2);
|
|
457
389
|
});
|
|
458
390
|
});
|
|
459
391
|
describe('Configuration Updates and Change Logging', () => {
|
|
@@ -472,7 +404,7 @@ describe('ConfigManager', () => {
|
|
|
472
404
|
rotationAge: '7d',
|
|
473
405
|
jsonPretty: true,
|
|
474
406
|
mcpCommDebug: false,
|
|
475
|
-
|
|
407
|
+
apiDebug: false
|
|
476
408
|
}
|
|
477
409
|
},
|
|
478
410
|
security: {
|
|
@@ -491,30 +423,6 @@ describe('ConfigManager', () => {
|
|
|
491
423
|
expect(config.system.port).toBe(9090);
|
|
492
424
|
expect(config.security.maxConcurrentConnections).toBe(100);
|
|
493
425
|
});
|
|
494
|
-
it('should log configuration changes', async () => {
|
|
495
|
-
// Mock logger
|
|
496
|
-
const loggerInfoSpy = vi.spyOn(console, 'info').mockImplementation(() => { });
|
|
497
|
-
await configManager.updateConfig({
|
|
498
|
-
system: {
|
|
499
|
-
host: 'new-host',
|
|
500
|
-
port: 7788,
|
|
501
|
-
language: 'zh',
|
|
502
|
-
theme: 'system',
|
|
503
|
-
logging: {
|
|
504
|
-
level: 'info',
|
|
505
|
-
rotationAge: '7d',
|
|
506
|
-
jsonPretty: true,
|
|
507
|
-
mcpCommDebug: false,
|
|
508
|
-
sessionDebug: false
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
});
|
|
512
|
-
// Verify logger is called (note: actual logging happens in logger module)
|
|
513
|
-
// Since logger is an external dependency, we primarily verify the configuration update itself
|
|
514
|
-
const config = configManager.getConfig();
|
|
515
|
-
expect(config.system.host).toBe('new-host');
|
|
516
|
-
loggerInfoSpy.mockRestore();
|
|
517
|
-
});
|
|
518
426
|
it('should handle partial config updates', async () => {
|
|
519
427
|
// Initial configuration
|
|
520
428
|
const initialConfig = configManager.getConfig();
|
|
@@ -549,13 +457,13 @@ describe('ConfigManager', () => {
|
|
|
549
457
|
rotationAge: '7d',
|
|
550
458
|
jsonPretty: true,
|
|
551
459
|
mcpCommDebug: false,
|
|
552
|
-
|
|
460
|
+
apiDebug: false
|
|
553
461
|
}
|
|
554
462
|
}
|
|
555
463
|
});
|
|
556
464
|
// Directly modify file content
|
|
557
465
|
const fileConfig = {
|
|
558
|
-
version: '1.
|
|
466
|
+
version: '1.1.0',
|
|
559
467
|
system: {
|
|
560
468
|
host: 'file-host',
|
|
561
469
|
port: 7788,
|
|
@@ -566,7 +474,7 @@ describe('ConfigManager', () => {
|
|
|
566
474
|
rotationAge: '7d',
|
|
567
475
|
jsonPretty: true,
|
|
568
476
|
mcpCommDebug: false,
|
|
569
|
-
|
|
477
|
+
apiDebug: false
|
|
570
478
|
}
|
|
571
479
|
},
|
|
572
480
|
security: {
|
|
@@ -575,17 +483,11 @@ describe('ConfigManager', () => {
|
|
|
575
483
|
connectionTimeout: 30000,
|
|
576
484
|
idleConnectionTimeout: 300000,
|
|
577
485
|
sessionTimeout: 30 * 60 * 1000,
|
|
486
|
+
sessionFlushInterval: 900000,
|
|
578
487
|
maxConnections: 50
|
|
579
488
|
},
|
|
580
489
|
servers: {},
|
|
581
|
-
|
|
582
|
-
tracing: {
|
|
583
|
-
enabled: false,
|
|
584
|
-
exporter: 'console',
|
|
585
|
-
endpoint: 'http://localhost:4318/v1/traces',
|
|
586
|
-
sampleRate: 1.0
|
|
587
|
-
}
|
|
588
|
-
}
|
|
490
|
+
tagDefinitions: []
|
|
589
491
|
};
|
|
590
492
|
fs.writeFileSync(tempConfigPath, JSON.stringify(fileConfig, null, 2));
|
|
591
493
|
// Synchronize configuration
|
|
@@ -601,11 +503,11 @@ describe('ConfigManager', () => {
|
|
|
601
503
|
fs.mkdirSync(tempDir, { recursive: true });
|
|
602
504
|
const testTempConfigPath = path.join(tempDir, '.mcp-hub.json');
|
|
603
505
|
// Write initial configuration
|
|
604
|
-
fs.writeFileSync(testTempConfigPath, JSON.stringify({ version: '1.
|
|
506
|
+
fs.writeFileSync(testTempConfigPath, JSON.stringify({ version: '1.1.0' }));
|
|
605
507
|
configManager = new ConfigManager(testTempConfigPath);
|
|
606
508
|
const config = configManager.getConfig();
|
|
607
509
|
expect(config).toBeDefined();
|
|
608
|
-
expect(config.version).toBe('1.
|
|
510
|
+
expect(config.version).toBe('1.1.0');
|
|
609
511
|
// Clean up, add retry mechanism
|
|
610
512
|
let retries = 3;
|
|
611
513
|
while (retries > 0) {
|
|
@@ -627,7 +529,7 @@ describe('ConfigManager', () => {
|
|
|
627
529
|
configManager = new ConfigManager(tempConfigPath);
|
|
628
530
|
const config = configManager.getConfig();
|
|
629
531
|
// Should fill in default values
|
|
630
|
-
expect(config.version).toBe('1.
|
|
532
|
+
expect(config.version).toBe('1.1.0');
|
|
631
533
|
expect(config.system.host).toBe('localhost');
|
|
632
534
|
});
|
|
633
535
|
});
|