@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.
- package/CHANGELOG.md +32 -0
- package/dist/client/assets/{HomeView-7rMg9C6t.js → HomeView-Bu2joUvW.js} +1 -1
- package/dist/client/assets/ResourceDetailView-BvrhDCD1.js +1 -0
- package/dist/client/assets/ResourceDetailView-DUJZbegl.css +1 -0
- package/dist/client/assets/ResourcesView-Cc8RHtia.css +1 -0
- package/dist/client/assets/ResourcesView-LjqioF_s.js +1 -0
- package/dist/client/assets/ServerDashboard-BfLeFDGw.css +1 -0
- package/dist/client/assets/ServerDashboard-FhHJFvUi.js +1 -0
- package/dist/client/assets/ServerDetail-BKV-M4qT.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-BXgtDyt3.js +36 -0
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-D-ooYNdN.js +1 -0
- package/dist/client/assets/SettingsView-CMFG91Z4.js +1 -0
- package/dist/client/assets/SettingsView-GkBOKL0V.css +1 -0
- package/dist/client/assets/ToolCallDialog-Bf4Xe4gH.js +1 -0
- package/dist/client/assets/ToolsView-DFpha1z0.js +1 -0
- package/dist/client/assets/{_baseClone-5q1b0P3O.js → _baseClone-Bp9Rjwd7.js} +1 -1
- package/dist/client/assets/el-form-item-B4LbJ6OO.css +1 -0
- package/dist/client/assets/el-form-item-DdSUWYsl.js +12 -0
- package/dist/client/assets/el-input-99gMrutP.js +1 -0
- package/dist/client/assets/el-input-BH4BZKnG.css +1 -0
- package/dist/client/assets/{el-loading-H85n3BUC.js → el-loading-CIQ5pD5u.js} +1 -1
- package/dist/client/assets/el-overlay-BVM6msGX.js +1 -0
- package/dist/client/assets/{el-select-C0U_l4IZ.css → el-overlay-CBvdpA69.css} +1 -1
- package/dist/client/assets/{ResourceDetailView-BdOaL_-o.css → el-radio-group-B0bauIRR.css} +1 -1
- package/dist/client/assets/el-radio-group-DhXWy7ry.js +1 -0
- package/dist/client/assets/el-skeleton-item-BLY1jEuR.css +1 -0
- package/dist/client/assets/el-skeleton-item-DJz-Us12.js +1 -0
- package/dist/client/assets/el-switch-BBrS-_6y.css +1 -0
- package/dist/client/assets/el-switch-Bu8AQ5uM.js +1 -0
- package/dist/client/assets/el-tab-pane-BnGMaV56.js +1 -0
- package/dist/client/assets/el-table-column-BMWOaLS_.js +1 -0
- package/dist/client/assets/el-table-column-BdvRS9Y2.css +1 -0
- package/dist/client/assets/index-C2V-ZGji.js +1 -0
- package/dist/client/assets/{index-BsDWtoIl.css → index-DpH6ZSbs.css} +1 -1
- package/dist/client/assets/index-vhkqgpmN.js +2 -0
- package/dist/client/assets/{omit-DPsOVNIJ.js → omit-CqPQN3XP.js} +1 -1
- package/dist/client/assets/{raf-DY5mgbuB.js → raf-C2wXzaVU.js} +1 -1
- package/dist/client/assets/{vue-vendor-6ny5zj9i.js → vue-vendor-BLHLXXJK.js} +1 -1
- 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/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 +19 -50
- package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -1
- package/dist/server/src/api/mcp/session-context-extractor.js +5 -14
- 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/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 +15 -19
- package/dist/server/src/services/gateway/global-transport.d.ts +10 -0
- package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -0
- package/dist/server/src/services/gateway/global-transport.js +42 -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 +10 -81
- 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/request-handlers/tools-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/tools-handler.js +4 -3
- 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/search/search-core.service.d.ts +5 -5
- package/dist/server/src/services/search/search-core.service.js +11 -11
- package/dist/server/src/services/session/session-manager.d.ts +12 -256
- package/dist/server/src/services/session/session-manager.d.ts.map +1 -1
- package/dist/server/src/services/session/session-manager.js +23 -585
- package/dist/server/src/services/session-tracker.service.d.ts +2 -10
- package/dist/server/src/services/session-tracker.service.d.ts.map +1 -1
- package/dist/server/src/services/session-tracker.service.js +2 -53
- 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/request-context.d.ts +0 -18
- package/dist/server/src/utils/request-context.d.ts.map +1 -1
- package/dist/server/src/utils/request-context.js +0 -20
- 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/evaluation/evaluation.test.js +10 -9
- package/dist/server/tests/integration/api/gateway.test.js +2 -2
- 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/request-context.test.js +5 -24
- 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 +1 -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/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/vnode-CHomNjgN.js +0 -1
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
* // Get the config manager instance
|
|
17
17
|
* const configManager = getConfigManager();
|
|
18
18
|
*
|
|
19
|
-
* // Get all servers
|
|
19
|
+
* // Get all servers (v1.1 format)
|
|
20
20
|
* const servers = configManager.getServers();
|
|
21
21
|
*
|
|
22
|
-
* // Add a new server
|
|
22
|
+
* // Add a new server with template and default instance
|
|
23
23
|
* await configManager.addServer('my-server', {
|
|
24
24
|
* type: 'stdio',
|
|
25
25
|
* command: 'npx my-mcp-server',
|
|
@@ -27,15 +27,13 @@
|
|
|
27
27
|
* });
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
import { SystemConfigSchema,
|
|
31
|
-
import type {
|
|
32
|
-
export { ServerConfig, SystemConfig,
|
|
30
|
+
import { SystemConfigSchema, ServerInstanceSchema, ServerConfigSchema } from './config.schema.js';
|
|
31
|
+
import type { SystemConfig, ServerTemplate, ServerInstance, ServerConfig } from './config.schema.js';
|
|
32
|
+
export { ServerConfig, SystemConfig, ServerInstance, ServerTemplate, SystemConfigSchema, ServerConfigSchema, ServerInstanceSchema };
|
|
33
33
|
export declare class ConfigManager {
|
|
34
34
|
private configPath;
|
|
35
35
|
private config;
|
|
36
|
-
private serverInstances;
|
|
37
36
|
constructor(configPath?: string);
|
|
38
|
-
private initServerInstances;
|
|
39
37
|
/**
|
|
40
38
|
* Retrieves the current system configuration.
|
|
41
39
|
*
|
|
@@ -43,7 +41,7 @@ export declare class ConfigManager {
|
|
|
43
41
|
*/
|
|
44
42
|
getConfig(): SystemConfig;
|
|
45
43
|
/**
|
|
46
|
-
* Retrieves all configured servers with their configurations.
|
|
44
|
+
* Retrieves all configured servers with their configurations (v1.1 format).
|
|
47
45
|
*
|
|
48
46
|
* @param sortByName - Whether to sort servers by name
|
|
49
47
|
* @returns Array of server objects with name and config
|
|
@@ -53,53 +51,45 @@ export declare class ConfigManager {
|
|
|
53
51
|
config: ServerConfig;
|
|
54
52
|
}>;
|
|
55
53
|
/**
|
|
56
|
-
* Retrieves a server configuration by name.
|
|
54
|
+
* Retrieves a server configuration by name (v1.1 format).
|
|
57
55
|
*
|
|
58
56
|
* @param name - The name of the server to retrieve
|
|
59
|
-
* @returns The server configuration or undefined if not found
|
|
57
|
+
* @returns The server configuration (v1.1) or undefined if not found
|
|
60
58
|
*/
|
|
61
59
|
getServerByName(name: string): ServerConfig | undefined;
|
|
62
|
-
/**
|
|
63
|
-
* Retrieves all server instances grouped by server name.
|
|
64
|
-
*
|
|
65
|
-
* @returns Server instances grouped by server name
|
|
66
|
-
*/
|
|
67
|
-
getServerInstances(): Record<string, ServerInstanceConfig[]>;
|
|
68
60
|
/**
|
|
69
61
|
* Retrieves all server instances for a specific server by name.
|
|
70
62
|
*
|
|
71
63
|
* @param name - The name of the server to retrieve instances for
|
|
72
64
|
* @returns Array of server instances, or empty array if none exist
|
|
73
65
|
*/
|
|
74
|
-
|
|
66
|
+
getServerInstancesByName(name: string): ServerInstance[];
|
|
75
67
|
/**
|
|
76
|
-
* Retrieves server
|
|
68
|
+
* Retrieves a specific server instance by index.
|
|
77
69
|
*
|
|
78
|
-
* @param
|
|
79
|
-
* @
|
|
70
|
+
* @param name - The name of the server
|
|
71
|
+
* @param index - The index of the instance
|
|
72
|
+
* @returns The server instance or undefined if not found
|
|
80
73
|
*/
|
|
81
|
-
|
|
82
|
-
name: string;
|
|
83
|
-
config: ServerConfig;
|
|
84
|
-
instance: ServerInstanceConfig;
|
|
85
|
-
} | undefined;
|
|
74
|
+
getServerInstanceByIndex(name: string, index: number): ServerInstance | undefined;
|
|
86
75
|
/**
|
|
87
76
|
* Adds multiple server configurations to the system in a single operation.
|
|
88
77
|
*
|
|
89
|
-
* @param servers - Array of server objects containing name and partial configuration
|
|
78
|
+
* @param servers - Array of server objects containing name and partial template configuration
|
|
90
79
|
*/
|
|
91
80
|
addServers(servers: Array<{
|
|
92
81
|
name: string;
|
|
93
|
-
config: Partial<
|
|
82
|
+
config: Partial<ServerTemplate>;
|
|
94
83
|
}>): Promise<void>;
|
|
95
84
|
/**
|
|
96
|
-
* Adds a new server configuration to the system.
|
|
85
|
+
* Adds a new server configuration to the system (v1.1 format).
|
|
86
|
+
* Creates a template and a default instance.
|
|
97
87
|
*
|
|
98
88
|
* @param name - The unique name for the server
|
|
99
|
-
* @param config - The server configuration
|
|
100
|
-
* @returns The
|
|
89
|
+
* @param config - The server template configuration
|
|
90
|
+
* @returns The complete server configuration (v1.1)
|
|
101
91
|
*/
|
|
102
|
-
addServer(name: string, config: Partial<
|
|
92
|
+
addServer(name: string, config: Partial<ServerTemplate>): Promise<ServerConfig>;
|
|
103
93
|
/**
|
|
104
94
|
* Adds a new server instance for the specified server.
|
|
105
95
|
*
|
|
@@ -107,36 +97,54 @@ export declare class ConfigManager {
|
|
|
107
97
|
* @param instance - The server instance configuration
|
|
108
98
|
* @returns The validated and complete server instance configuration
|
|
109
99
|
*/
|
|
110
|
-
addServerInstance(name: string, instance: Partial<
|
|
100
|
+
addServerInstance(name: string, instance: Partial<ServerInstance>): Promise<ServerInstance>;
|
|
101
|
+
/**
|
|
102
|
+
* Updates an existing server template configuration.
|
|
103
|
+
*
|
|
104
|
+
* @param name - The name of the server to update
|
|
105
|
+
* @param updates - The partial template updates to apply
|
|
106
|
+
* @returns The updated server configuration or null if not found
|
|
107
|
+
*/
|
|
108
|
+
updateServer(name: string, updates: Partial<ServerTemplate>): Promise<ServerConfig | null>;
|
|
111
109
|
/**
|
|
112
|
-
* Updates an existing server configuration
|
|
110
|
+
* Updates an existing server configuration.
|
|
113
111
|
*
|
|
114
112
|
* @param name - The name of the server to update
|
|
115
|
-
* @param updates - The partial
|
|
113
|
+
* @param updates - The partial server template updates to apply
|
|
114
|
+
* @returns The updated server configuration or null if not found
|
|
116
115
|
*/
|
|
117
|
-
|
|
116
|
+
updateServerConfig(name: string, updates: Partial<ServerTemplate>): Promise<ServerConfig | null>;
|
|
118
117
|
/**
|
|
119
|
-
* Updates an existing server instance configuration
|
|
118
|
+
* Updates an existing server instance configuration.
|
|
120
119
|
*
|
|
121
120
|
* @param name - The name of the server containing the instance to update
|
|
122
|
-
* @param index - The index of the instance to update
|
|
123
|
-
* @param updates - The partial instance
|
|
121
|
+
* @param index - The index of the instance to update
|
|
122
|
+
* @param updates - The partial instance updates to apply
|
|
123
|
+
* @returns True if the instance was updated
|
|
124
124
|
*/
|
|
125
|
-
updateServerInstance(name: string, index: number, updates: Partial<
|
|
125
|
+
updateServerInstance(name: string, index: number, updates: Partial<ServerInstance>): Promise<boolean>;
|
|
126
126
|
/**
|
|
127
127
|
* Removes a server configuration and all its instances from the system.
|
|
128
128
|
*
|
|
129
129
|
* @param name - The name of the server to remove
|
|
130
|
-
* @returns True if the server was removed
|
|
130
|
+
* @returns True if the server was removed
|
|
131
131
|
*/
|
|
132
|
-
removeServer(name: string): Promise<
|
|
132
|
+
removeServer(name: string): Promise<boolean>;
|
|
133
133
|
/**
|
|
134
134
|
* Removes a specific server instance from the system.
|
|
135
135
|
*
|
|
136
136
|
* @param name - The name of the server containing the instance to remove
|
|
137
|
-
* @param index - The index of the instance to remove
|
|
137
|
+
* @param index - The index of the instance to remove
|
|
138
|
+
* @returns True if the instance was removed
|
|
139
|
+
*/
|
|
140
|
+
removeServerInstance(name: string, index: number): Promise<boolean>;
|
|
141
|
+
/**
|
|
142
|
+
* Reassigns server instance indexes to be consecutive (0, 1, 2, ...).
|
|
143
|
+
*
|
|
144
|
+
* @param name - The name of the server to reassign indexes for
|
|
145
|
+
* @returns True if the server exists and indexes were reassigned
|
|
138
146
|
*/
|
|
139
|
-
|
|
147
|
+
reassignInstanceIndexes(name: string): Promise<boolean>;
|
|
140
148
|
/**
|
|
141
149
|
* Updates the entire system configuration with the provided partial configuration.
|
|
142
150
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../../../src/config/config-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../../../../src/config/config-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACb,MAAM,oBAAoB,CAAC;AAiB5B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACrB,CAAC;AAEF,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAgB;gBAElB,UAAU,CAAC,EAAE,MAAM;IAS/B;;;;OAIG;IACI,SAAS,IAAI,YAAY;IAIhC;;;;;OAKG;IACI,UAAU,CAAC,UAAU,GAAE,OAAe,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,YAAY,CAAA;KAAE,CAAC;IAW7F;;;;;OAKG;IACI,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI9D;;;;;OAKG;IACI,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE;IAI/D;;;;;;OAMG;IACI,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAKxF;;;;OAIG;IACU,UAAU,CACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,CAAC,GAChE,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;OAOG;IACU,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAM5F;;;;;;OAMG;IACU,iBAAiB,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,GAChC,OAAO,CAAC,cAAc,CAAC;IAM1B;;;;;;OAMG;IACU,YAAY,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQ/B;;;;;;OAMG;IACU,kBAAkB,CAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQ/B;;;;;;;OAOG;IACU,oBAAoB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,OAAO,CAAC;IAQnB;;;;;OAKG;IACU,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQzD;;;;;;OAMG;IACU,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQhF;;;;;OAKG;IACU,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpE;;;;OAIG;IACU,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1E,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzC;AAKD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAchD;AAGD,eAAO,MAAM,aAAa,eAAqB,CAAC"}
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
* // Get the config manager instance
|
|
17
17
|
* const configManager = getConfigManager();
|
|
18
18
|
*
|
|
19
|
-
* // Get all servers
|
|
19
|
+
* // Get all servers (v1.1 format)
|
|
20
20
|
* const servers = configManager.getServers();
|
|
21
21
|
*
|
|
22
|
-
* // Add a new server
|
|
22
|
+
* // Add a new server with template and default instance
|
|
23
23
|
* await configManager.addServer('my-server', {
|
|
24
24
|
* type: 'stdio',
|
|
25
25
|
* command: 'npx my-mcp-server',
|
|
@@ -30,38 +30,24 @@
|
|
|
30
30
|
import path from 'path';
|
|
31
31
|
import os from 'os';
|
|
32
32
|
import { logger, LOG_MODULES } from '../utils/logger.js';
|
|
33
|
-
import { SystemConfigSchema,
|
|
33
|
+
import { SystemConfigSchema, ServerInstanceSchema, ServerConfigSchema } from './config.schema.js';
|
|
34
34
|
import { loadConfig } from './config-loader.js';
|
|
35
35
|
import { saveConfig } from './config-saver.js';
|
|
36
|
-
import { convertHttpToStreamableHttp } from './type-converter.js';
|
|
37
36
|
import { logConfigChanges } from './config-change-logger.js';
|
|
38
|
-
import {
|
|
37
|
+
import { convertHttpToStreamableHttp } from './type-converter.js';
|
|
38
|
+
import { addServers, addServer, addServerInstance, updateServerTemplate, updateServerInstance, removeServer, removeServerInstance, reassignServerInstanceIndexes } from './server-config-manager.js';
|
|
39
39
|
// Re-export types for external use
|
|
40
|
-
export { SystemConfigSchema, ServerConfigSchema,
|
|
40
|
+
export { SystemConfigSchema, ServerConfigSchema, ServerInstanceSchema };
|
|
41
41
|
export class ConfigManager {
|
|
42
42
|
configPath;
|
|
43
43
|
config;
|
|
44
|
-
serverInstances = {};
|
|
45
44
|
constructor(configPath) {
|
|
46
45
|
this.configPath =
|
|
47
46
|
configPath ||
|
|
48
47
|
process.env.MCP_HUB_CONFIG_PATH ||
|
|
49
48
|
path.join(os.homedir(), '.mcp-hub-lite', 'config', '.mcp-hub.json');
|
|
50
49
|
logger.info(`Using config file: ${this.configPath}`, LOG_MODULES.CONFIG_MANAGER);
|
|
51
|
-
this.config = loadConfig(this.configPath);
|
|
52
|
-
this.initServerInstances();
|
|
53
|
-
}
|
|
54
|
-
initServerInstances() {
|
|
55
|
-
// Init server instances
|
|
56
|
-
if (this.config && this.config.servers && typeof this.config.servers === 'object') {
|
|
57
|
-
Object.keys(this.config.servers).forEach((name) => {
|
|
58
|
-
if (!this.serverInstances[name])
|
|
59
|
-
this.serverInstances[name] = [];
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
else if (!this.config) {
|
|
63
|
-
this.config = SystemConfigSchema.parse({});
|
|
64
|
-
}
|
|
50
|
+
this.config = loadConfig(this.configPath, true);
|
|
65
51
|
}
|
|
66
52
|
/**
|
|
67
53
|
* Retrieves the current system configuration.
|
|
@@ -72,7 +58,7 @@ export class ConfigManager {
|
|
|
72
58
|
return { ...this.config };
|
|
73
59
|
}
|
|
74
60
|
/**
|
|
75
|
-
* Retrieves all configured servers with their configurations.
|
|
61
|
+
* Retrieves all configured servers with their configurations (v1.1 format).
|
|
76
62
|
*
|
|
77
63
|
* @param sortByName - Whether to sort servers by name
|
|
78
64
|
* @returns Array of server objects with name and config
|
|
@@ -88,64 +74,53 @@ export class ConfigManager {
|
|
|
88
74
|
return servers;
|
|
89
75
|
}
|
|
90
76
|
/**
|
|
91
|
-
* Retrieves a server configuration by name.
|
|
77
|
+
* Retrieves a server configuration by name (v1.1 format).
|
|
92
78
|
*
|
|
93
79
|
* @param name - The name of the server to retrieve
|
|
94
|
-
* @returns The server configuration or undefined if not found
|
|
80
|
+
* @returns The server configuration (v1.1) or undefined if not found
|
|
95
81
|
*/
|
|
96
82
|
getServerByName(name) {
|
|
97
83
|
return this.config.servers?.[name];
|
|
98
84
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Retrieves all server instances grouped by server name.
|
|
101
|
-
*
|
|
102
|
-
* @returns Server instances grouped by server name
|
|
103
|
-
*/
|
|
104
|
-
getServerInstances() {
|
|
105
|
-
return { ...this.serverInstances };
|
|
106
|
-
}
|
|
107
85
|
/**
|
|
108
86
|
* Retrieves all server instances for a specific server by name.
|
|
109
87
|
*
|
|
110
88
|
* @param name - The name of the server to retrieve instances for
|
|
111
89
|
* @returns Array of server instances, or empty array if none exist
|
|
112
90
|
*/
|
|
113
|
-
|
|
114
|
-
return this.
|
|
91
|
+
getServerInstancesByName(name) {
|
|
92
|
+
return this.config.servers?.[name]?.instances || [];
|
|
115
93
|
}
|
|
116
94
|
/**
|
|
117
|
-
* Retrieves server
|
|
95
|
+
* Retrieves a specific server instance by index.
|
|
118
96
|
*
|
|
119
|
-
* @param
|
|
120
|
-
* @
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
return { name: serverName, config: this.config.servers[serverName], instance };
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return undefined;
|
|
97
|
+
* @param name - The name of the server
|
|
98
|
+
* @param index - The index of the instance
|
|
99
|
+
* @returns The server instance or undefined if not found
|
|
100
|
+
*/
|
|
101
|
+
getServerInstanceByIndex(name, index) {
|
|
102
|
+
const instances = this.getServerInstancesByName(name);
|
|
103
|
+
return instances[index];
|
|
130
104
|
}
|
|
131
105
|
/**
|
|
132
106
|
* Adds multiple server configurations to the system in a single operation.
|
|
133
107
|
*
|
|
134
|
-
* @param servers - Array of server objects containing name and partial configuration
|
|
108
|
+
* @param servers - Array of server objects containing name and partial template configuration
|
|
135
109
|
*/
|
|
136
110
|
async addServers(servers) {
|
|
137
|
-
this.config.servers = addServers(servers, this.config.servers
|
|
111
|
+
this.config.servers = addServers(servers, this.config.servers);
|
|
138
112
|
this.persistConfig();
|
|
139
113
|
}
|
|
140
114
|
/**
|
|
141
|
-
* Adds a new server configuration to the system.
|
|
115
|
+
* Adds a new server configuration to the system (v1.1 format).
|
|
116
|
+
* Creates a template and a default instance.
|
|
142
117
|
*
|
|
143
118
|
* @param name - The unique name for the server
|
|
144
|
-
* @param config - The server configuration
|
|
145
|
-
* @returns The
|
|
119
|
+
* @param config - The server template configuration
|
|
120
|
+
* @returns The complete server configuration (v1.1)
|
|
146
121
|
*/
|
|
147
122
|
async addServer(name, config) {
|
|
148
|
-
const validated = addServer(name, config, this.config.servers
|
|
123
|
+
const validated = addServer(name, config, this.config.servers);
|
|
149
124
|
this.persistConfig();
|
|
150
125
|
return validated;
|
|
151
126
|
}
|
|
@@ -157,48 +132,92 @@ export class ConfigManager {
|
|
|
157
132
|
* @returns The validated and complete server instance configuration
|
|
158
133
|
*/
|
|
159
134
|
async addServerInstance(name, instance) {
|
|
160
|
-
|
|
135
|
+
const newInstance = addServerInstance(name, instance, this.config.servers);
|
|
136
|
+
this.persistConfig();
|
|
137
|
+
return newInstance;
|
|
161
138
|
}
|
|
162
139
|
/**
|
|
163
|
-
* Updates an existing server configuration
|
|
140
|
+
* Updates an existing server template configuration.
|
|
164
141
|
*
|
|
165
142
|
* @param name - The name of the server to update
|
|
166
|
-
* @param updates - The partial
|
|
143
|
+
* @param updates - The partial template updates to apply
|
|
144
|
+
* @returns The updated server configuration or null if not found
|
|
167
145
|
*/
|
|
168
146
|
async updateServer(name, updates) {
|
|
169
|
-
if (
|
|
147
|
+
if (updateServerTemplate(name, updates, this.config.servers)) {
|
|
148
|
+
this.persistConfig();
|
|
149
|
+
return this.config.servers[name] || null;
|
|
150
|
+
}
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Updates an existing server configuration.
|
|
155
|
+
*
|
|
156
|
+
* @param name - The name of the server to update
|
|
157
|
+
* @param updates - The partial server template updates to apply
|
|
158
|
+
* @returns The updated server configuration or null if not found
|
|
159
|
+
*/
|
|
160
|
+
async updateServerConfig(name, updates) {
|
|
161
|
+
if (updateServerTemplate(name, updates, this.config.servers)) {
|
|
170
162
|
this.persistConfig();
|
|
163
|
+
return this.config.servers[name] || null;
|
|
171
164
|
}
|
|
165
|
+
return null;
|
|
172
166
|
}
|
|
173
167
|
/**
|
|
174
|
-
* Updates an existing server instance configuration
|
|
168
|
+
* Updates an existing server instance configuration.
|
|
175
169
|
*
|
|
176
170
|
* @param name - The name of the server containing the instance to update
|
|
177
|
-
* @param index - The index of the instance to update
|
|
178
|
-
* @param updates - The partial instance
|
|
171
|
+
* @param index - The index of the instance to update
|
|
172
|
+
* @param updates - The partial instance updates to apply
|
|
173
|
+
* @returns True if the instance was updated
|
|
179
174
|
*/
|
|
180
175
|
async updateServerInstance(name, index, updates) {
|
|
181
|
-
updateServerInstance(name, index, updates, this.
|
|
176
|
+
const result = updateServerInstance(name, index, updates, this.config.servers);
|
|
177
|
+
if (result) {
|
|
178
|
+
this.persistConfig();
|
|
179
|
+
}
|
|
180
|
+
return result;
|
|
182
181
|
}
|
|
183
182
|
/**
|
|
184
183
|
* Removes a server configuration and all its instances from the system.
|
|
185
184
|
*
|
|
186
185
|
* @param name - The name of the server to remove
|
|
187
|
-
* @returns True if the server was removed
|
|
186
|
+
* @returns True if the server was removed
|
|
188
187
|
*/
|
|
189
188
|
async removeServer(name) {
|
|
190
|
-
if (removeServer(name, this.config.servers
|
|
189
|
+
if (removeServer(name, this.config.servers)) {
|
|
191
190
|
this.persistConfig();
|
|
191
|
+
return true;
|
|
192
192
|
}
|
|
193
|
+
return false;
|
|
193
194
|
}
|
|
194
195
|
/**
|
|
195
196
|
* Removes a specific server instance from the system.
|
|
196
197
|
*
|
|
197
198
|
* @param name - The name of the server containing the instance to remove
|
|
198
|
-
* @param index - The index of the instance to remove
|
|
199
|
+
* @param index - The index of the instance to remove
|
|
200
|
+
* @returns True if the instance was removed
|
|
199
201
|
*/
|
|
200
202
|
async removeServerInstance(name, index) {
|
|
201
|
-
removeServerInstance(name, index, this.
|
|
203
|
+
if (removeServerInstance(name, index, this.config.servers)) {
|
|
204
|
+
this.persistConfig();
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Reassigns server instance indexes to be consecutive (0, 1, 2, ...).
|
|
211
|
+
*
|
|
212
|
+
* @param name - The name of the server to reassign indexes for
|
|
213
|
+
* @returns True if the server exists and indexes were reassigned
|
|
214
|
+
*/
|
|
215
|
+
async reassignInstanceIndexes(name) {
|
|
216
|
+
if (reassignServerInstanceIndexes(name, this.config.servers)) {
|
|
217
|
+
this.persistConfig();
|
|
218
|
+
return true;
|
|
219
|
+
}
|
|
220
|
+
return false;
|
|
202
221
|
}
|
|
203
222
|
/**
|
|
204
223
|
* Updates the entire system configuration with the provided partial configuration.
|
|
@@ -219,8 +238,7 @@ export class ConfigManager {
|
|
|
219
238
|
* Synchronizes the in-memory configuration with the on-disk configuration file.
|
|
220
239
|
*/
|
|
221
240
|
async syncConfig() {
|
|
222
|
-
this.config = loadConfig(this.configPath);
|
|
223
|
-
this.initServerInstances();
|
|
241
|
+
this.config = loadConfig(this.configPath, true);
|
|
224
242
|
}
|
|
225
243
|
}
|
|
226
244
|
// Lazy initialization of configManager to avoid creating instance during module import
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ServerInstance, SystemConfig } from './config.schema.js';
|
|
2
|
+
import type { ServerRuntimeConfig } from '../../shared/models/server.model.js';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Use ServerRuntimeConfig from @shared-models/server.model instead
|
|
5
|
+
* Resolved server configuration with template + instance merged
|
|
6
|
+
*/
|
|
7
|
+
export type ResolvedServerConfig = ServerRuntimeConfig;
|
|
8
|
+
/**
|
|
9
|
+
* Configuration Migration Result
|
|
10
|
+
*/
|
|
11
|
+
export interface MigrationResult {
|
|
12
|
+
success: boolean;
|
|
13
|
+
backupPath?: string;
|
|
14
|
+
migratedConfig?: SystemConfig;
|
|
15
|
+
error?: string;
|
|
16
|
+
warnings: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Configuration Migrator Options
|
|
20
|
+
*/
|
|
21
|
+
export interface MigrationOptions {
|
|
22
|
+
dryRun?: boolean;
|
|
23
|
+
createBackup?: boolean;
|
|
24
|
+
validateAfterMigration?: boolean;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Main migration function that migrates a configuration from v1.0 to v1.1
|
|
28
|
+
*
|
|
29
|
+
* @param configPath Path to the configuration file
|
|
30
|
+
* @param options Migration options
|
|
31
|
+
* @returns Migration result with backup path and migrated config
|
|
32
|
+
*/
|
|
33
|
+
export declare function migrateConfig(configPath: string, options?: MigrationOptions): MigrationResult;
|
|
34
|
+
/**
|
|
35
|
+
* Performs a dry run of the migration without modifying files
|
|
36
|
+
*
|
|
37
|
+
* @param configPath Path to the configuration file
|
|
38
|
+
* @returns Migration result with what would happen
|
|
39
|
+
*/
|
|
40
|
+
export declare function dryRunMigration(configPath: string): MigrationResult;
|
|
41
|
+
/**
|
|
42
|
+
* Rolls back a migration using a backup file
|
|
43
|
+
*
|
|
44
|
+
* @param configPath Path to the current configuration file
|
|
45
|
+
* @param backupPath Path to the backup file
|
|
46
|
+
* @returns Success status and any error message
|
|
47
|
+
*/
|
|
48
|
+
export declare function rollbackMigration(configPath: string, backupPath: string): {
|
|
49
|
+
success: boolean;
|
|
50
|
+
error?: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Checks the migration status of a configuration file
|
|
54
|
+
*
|
|
55
|
+
* @param configPath Path to the configuration file
|
|
56
|
+
* @returns Status information
|
|
57
|
+
*/
|
|
58
|
+
export declare function checkMigrationStatus(configPath: string): {
|
|
59
|
+
exists: boolean;
|
|
60
|
+
version: 'v1' | 'v1.1' | 'unknown';
|
|
61
|
+
canMigrate: boolean;
|
|
62
|
+
message: string;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Resolves a server instance configuration by merging template and instance overrides
|
|
66
|
+
*
|
|
67
|
+
* @param serverConfig The server configuration with template and instances
|
|
68
|
+
* @param instanceId Optional instance ID (uses first enabled instance if not provided)
|
|
69
|
+
* @returns The resolved server configuration
|
|
70
|
+
*/
|
|
71
|
+
export declare function resolveInstanceConfig(serverConfig: SystemConfig['servers'][string], instanceId?: string): ServerRuntimeConfig | null;
|
|
72
|
+
/**
|
|
73
|
+
* Gets all enabled instances for a server
|
|
74
|
+
*
|
|
75
|
+
* @param serverConfig The server configuration
|
|
76
|
+
* @returns Array of enabled instances with resolved configs
|
|
77
|
+
*/
|
|
78
|
+
export declare function getEnabledInstances(serverConfig: SystemConfig['servers'][string]): Array<{
|
|
79
|
+
instance: ServerInstance;
|
|
80
|
+
resolved: ServerRuntimeConfig;
|
|
81
|
+
}>;
|
|
82
|
+
//# sourceMappingURL=config-migrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-migrator.d.ts","sourceRoot":"","sources":["../../../../src/config/config-migrator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAkB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAyMD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAwDjG;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAMnE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAyBA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAsCA;AAID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC7C,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB,GAAG,IAAI,CA+B5B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAC5C,KAAK,CAAC;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAapE"}
|