@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
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
import { SessionState } from '../../../shared/models/session.model.js';
|
|
2
1
|
import type { Session } from './types.js';
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
3
|
+
* Lightweight MCP Session Manager with in-memory session management only.
|
|
5
4
|
*
|
|
6
|
-
* This service manages MCP sessions with
|
|
7
|
-
*
|
|
5
|
+
* This service manages MCP sessions with basic in-memory storage and automatic
|
|
6
|
+
* cleanup of stale sessions. It provides session isolation through unique
|
|
8
7
|
* server and transport instances per session while maintaining shared resources
|
|
9
8
|
* for efficiency.
|
|
10
9
|
*
|
|
11
|
-
* Key features
|
|
12
|
-
* -
|
|
13
|
-
* - Dirty tracking with 5-second batch flushing to minimize I/O operations
|
|
10
|
+
* Key features:
|
|
11
|
+
* - In-memory session storage only (no persistence)
|
|
14
12
|
* - Automatic cleanup of stale sessions based on configurable timeout (default 30 minutes)
|
|
15
|
-
* -
|
|
16
|
-
* - Client metadata integration from client tracker service
|
|
17
|
-
* - Environment variable controlled debugging (SESSION_DEBUG)
|
|
18
|
-
*
|
|
19
|
-
* Session storage structure:
|
|
20
|
-
* ```
|
|
21
|
-
* ~/.mcp-hub-lite/
|
|
22
|
-
* └── sessions/
|
|
23
|
-
* ├── index.json # Session index file
|
|
24
|
-
* └── {sessionId}.json # Individual session state files
|
|
25
|
-
* ```
|
|
13
|
+
* - Session ID generation for internal use
|
|
26
14
|
*
|
|
27
15
|
* @example
|
|
28
16
|
* ```typescript
|
|
@@ -31,200 +19,19 @@ import type { Session } from './types.js';
|
|
|
31
19
|
* // Use session.server and session.transport for MCP communication
|
|
32
20
|
* ```
|
|
33
21
|
*
|
|
34
|
-
* @since
|
|
22
|
+
* @since 2.0.0
|
|
35
23
|
*/
|
|
36
24
|
export declare class McpSessionManager {
|
|
37
25
|
private sessions;
|
|
38
|
-
private sessionStates;
|
|
39
|
-
private dirtySessions;
|
|
40
|
-
private sessionsPath;
|
|
41
|
-
private flushTimeout;
|
|
42
|
-
private isInitialized;
|
|
43
26
|
private get SESSION_TIMEOUT();
|
|
44
27
|
private get CLEANUP_INTERVAL();
|
|
45
28
|
constructor();
|
|
46
|
-
/**
|
|
47
|
-
* Registers process shutdown handlers for graceful session cleanup.
|
|
48
|
-
*
|
|
49
|
-
* This method sets up event listeners for SIGTERM and SIGINT signals to ensure
|
|
50
|
-
* that all dirty sessions are flushed to disk before the process terminates.
|
|
51
|
-
* This prevents data loss during unexpected shutdowns or service restarts.
|
|
52
|
-
*
|
|
53
|
-
* The shutdown handler performs a final flush of all dirty sessions and
|
|
54
|
-
* clears any pending flush timeouts to ensure clean termination.
|
|
55
|
-
*
|
|
56
|
-
* @returns {void}
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* ```typescript
|
|
60
|
-
* // Called automatically in constructor
|
|
61
|
-
* sessionManager.registerShutdownHandler();
|
|
62
|
-
* ```
|
|
63
|
-
*/
|
|
64
|
-
private registerShutdownHandler;
|
|
65
|
-
/**
|
|
66
|
-
* Marks a session as dirty, indicating it needs to be persisted to disk.
|
|
67
|
-
*
|
|
68
|
-
* This method adds the session ID to the dirty sessions set and initiates
|
|
69
|
-
* a delayed batch flush operation with a 5-second timeout. This optimization
|
|
70
|
-
* prevents excessive I/O operations by batching multiple session updates
|
|
71
|
-
* that occur in quick succession.
|
|
72
|
-
*
|
|
73
|
-
* When the SESSION_DEBUG environment variable is set, detailed logging
|
|
74
|
-
* is enabled for debugging session persistence behavior.
|
|
75
|
-
*
|
|
76
|
-
* @param {string} sessionId - Unique identifier of the session to mark as dirty
|
|
77
|
-
* @returns {void}
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```typescript
|
|
81
|
-
* sessionManager.markAsDirty('my-session-id');
|
|
82
|
-
* // Session will be flushed to disk within 5 seconds
|
|
83
|
-
* ```
|
|
84
|
-
*/
|
|
85
|
-
private markAsDirty;
|
|
86
|
-
/**
|
|
87
|
-
* Loads the complete session store from disk, including all individual session files.
|
|
88
|
-
*
|
|
89
|
-
* This method reads the sessions index file and loads each individual session state
|
|
90
|
-
* file, validating each session state against the SessionStateSchema. Invalid
|
|
91
|
-
* session states are skipped with warning logs, ensuring robust recovery from
|
|
92
|
-
* corrupted data.
|
|
93
|
-
*
|
|
94
|
-
* The method creates the sessions directory and index file if they don't exist,
|
|
95
|
-
* providing a clean initialization path for first-time usage.
|
|
96
|
-
*
|
|
97
|
-
* @returns {Promise<SessionStore>} Complete session store with all valid sessions
|
|
98
|
-
* @throws {Error} If critical I/O operations fail (non-recoverable errors)
|
|
99
|
-
*
|
|
100
|
-
* @example
|
|
101
|
-
* ```typescript
|
|
102
|
-
* const store = await sessionManager.loadSessionStore();
|
|
103
|
-
* console.log(`Loaded ${Object.keys(store.sessions).length} sessions`);
|
|
104
|
-
* ```
|
|
105
|
-
*/
|
|
106
|
-
private loadSessionStore;
|
|
107
|
-
/**
|
|
108
|
-
* Saves the complete session store to disk, writing individual session files and index.
|
|
109
|
-
*
|
|
110
|
-
* This method persists all session states by writing individual JSON files for each
|
|
111
|
-
* session and updating the sessions index file. The operation is atomic at the
|
|
112
|
-
* file level, ensuring data integrity even if the process is interrupted.
|
|
113
|
-
*
|
|
114
|
-
* @param {SessionStore} store - Complete session store to persist
|
|
115
|
-
* @returns {Promise<void>} Resolves when all files are successfully written
|
|
116
|
-
* @throws {Error} If any file write operations fail
|
|
117
|
-
*
|
|
118
|
-
* @example
|
|
119
|
-
* ```typescript
|
|
120
|
-
* await sessionManager.saveSessionStore(mySessionStore);
|
|
121
|
-
* console.log('Session store saved successfully');
|
|
122
|
-
* ```
|
|
123
|
-
*/
|
|
124
|
-
private saveSessionStore;
|
|
125
|
-
/**
|
|
126
|
-
* Restores all sessions from disk during service startup.
|
|
127
|
-
*
|
|
128
|
-
* This method is called automatically during initialization to recover session states
|
|
129
|
-
* from persistent storage. It loads the session store, validates each session state,
|
|
130
|
-
* and populates the in-memory session state cache. Invalid sessions are skipped
|
|
131
|
-
* with warning logs to ensure robust startup even with corrupted data.
|
|
132
|
-
*
|
|
133
|
-
* The method ensures idempotent execution by checking the initialization flag,
|
|
134
|
-
* preventing multiple restoration attempts.
|
|
135
|
-
*
|
|
136
|
-
* @returns {Promise<void>} Resolves when all valid sessions are restored
|
|
137
|
-
*
|
|
138
|
-
* @example
|
|
139
|
-
* ```typescript
|
|
140
|
-
* await sessionManager.restoreSessions();
|
|
141
|
-
* console.log('Sessions restored from disk');
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
restoreSessions(): Promise<void>;
|
|
145
|
-
/**
|
|
146
|
-
* Flushes all dirty sessions to disk in a single batch operation.
|
|
147
|
-
*
|
|
148
|
-
* This method collects all sessions marked as dirty, loads the current session store,
|
|
149
|
-
* updates it with the dirty sessions, and saves the complete store back to disk.
|
|
150
|
-
* This batch approach minimizes I/O operations and ensures data consistency.
|
|
151
|
-
*
|
|
152
|
-
* The method includes comprehensive error handling to prevent partial writes and
|
|
153
|
-
* maintains detailed logging for debugging and monitoring purposes.
|
|
154
|
-
*
|
|
155
|
-
* @returns {Promise<void>} Resolves when all dirty sessions are successfully flushed
|
|
156
|
-
*
|
|
157
|
-
* @example
|
|
158
|
-
* ```typescript
|
|
159
|
-
* await sessionManager.flushDirtySessions();
|
|
160
|
-
* console.log('All dirty sessions flushed to disk');
|
|
161
|
-
* ```
|
|
162
|
-
*/
|
|
163
|
-
private flushDirtySessions;
|
|
164
|
-
/**
|
|
165
|
-
* Updates session metadata by retrieving client information from the client tracker service.
|
|
166
|
-
*
|
|
167
|
-
* This method fetches current client information including name, version, working directory,
|
|
168
|
-
* and project context from the client tracker service and returns a partial session state
|
|
169
|
-
* update object containing only the relevant metadata fields.
|
|
170
|
-
*
|
|
171
|
-
* @param {string} sessionId - Unique identifier of the session to update
|
|
172
|
-
* @returns {Partial<SessionState>} Partial session state with updated client metadata
|
|
173
|
-
*
|
|
174
|
-
* @example
|
|
175
|
-
* ```typescript
|
|
176
|
-
* const metadata = sessionManager.updateSessionMetadataFromClient('my-session-id');
|
|
177
|
-
* console.log('Updated client metadata:', metadata);
|
|
178
|
-
* ```
|
|
179
|
-
*/
|
|
180
|
-
private updateSessionMetadataFromClient;
|
|
181
|
-
/**
|
|
182
|
-
* Creates or updates a session state with current metadata and timestamps.
|
|
183
|
-
*
|
|
184
|
-
* This method merges existing session state (if any) with current client metadata
|
|
185
|
-
* from the client tracker service, updates access timestamps, and ensures proper
|
|
186
|
-
* session state structure. The updated state is stored in memory and marked as dirty
|
|
187
|
-
* for persistence.
|
|
188
|
-
*
|
|
189
|
-
* @param {string} sessionId - Unique identifier of the session to create or update
|
|
190
|
-
* @returns {SessionState} Complete updated session state object
|
|
191
|
-
*
|
|
192
|
-
* @example
|
|
193
|
-
* ```typescript
|
|
194
|
-
* const state = sessionManager.upsertSessionState('my-session-id');
|
|
195
|
-
* console.log('Session state updated:', state);
|
|
196
|
-
* ```
|
|
197
|
-
*/
|
|
198
|
-
private upsertSessionState;
|
|
199
|
-
/**
|
|
200
|
-
* Updates session metadata explicitly with provided key-value pairs.
|
|
201
|
-
*
|
|
202
|
-
* This method merges the provided metadata object with existing session metadata,
|
|
203
|
-
* updates the last accessed timestamp, and marks the session as dirty for persistence.
|
|
204
|
-
* It's useful for storing custom session-specific information that needs to be persisted.
|
|
205
|
-
*
|
|
206
|
-
* @param {string} sessionId - Unique identifier of the session to update
|
|
207
|
-
* @param {Record<string, unknown>} metadata - Key-value pairs to merge into session metadata
|
|
208
|
-
* @returns {Promise<void>} Resolves when metadata is updated and marked for persistence
|
|
209
|
-
*
|
|
210
|
-
* @example
|
|
211
|
-
* ```typescript
|
|
212
|
-
* await sessionManager.updateSessionMetadata('my-session-id', {
|
|
213
|
-
* userPreferences: { theme: 'dark' },
|
|
214
|
-
* lastProject: 'my-project'
|
|
215
|
-
* });
|
|
216
|
-
* ```
|
|
217
|
-
*/
|
|
218
|
-
updateSessionMetadata(sessionId: string, metadata: Record<string, unknown>): Promise<void>;
|
|
219
29
|
/**
|
|
220
30
|
* Retrieves an existing session or creates a new one if it doesn't exist.
|
|
221
31
|
*
|
|
222
32
|
* This method provides access to active sessions, creating new ones on demand with
|
|
223
33
|
* proper initialization based on the requireInitialize parameter. It updates session
|
|
224
|
-
* access timestamps
|
|
225
|
-
*
|
|
226
|
-
* The method includes optimization to prevent excessive timestamp updates for rapid
|
|
227
|
-
* successive requests by only updating when at least 100ms have passed since the last access.
|
|
34
|
+
* access timestamps.
|
|
228
35
|
*
|
|
229
36
|
* @param {string} sessionId - Unique identifier of the session to retrieve or create
|
|
230
37
|
* @param {boolean} [requireInitialize=true] - Whether to require MCP protocol initialization
|
|
@@ -234,47 +41,9 @@ export declare class McpSessionManager {
|
|
|
234
41
|
* ```typescript
|
|
235
42
|
* // Get or create session with default initialization
|
|
236
43
|
* const session = await sessionManager.getSession('my-session-id');
|
|
237
|
-
*
|
|
238
|
-
* // Get or create session without requiring initialization (for restored sessions)
|
|
239
|
-
* const restoredSession = await sessionManager.getSession('restored-session-id', false);
|
|
240
44
|
* ```
|
|
241
45
|
*/
|
|
242
46
|
getSession(sessionId: string, requireInitialize?: boolean): Promise<Session>;
|
|
243
|
-
/**
|
|
244
|
-
* Retrieves all persisted session states for API exposure.
|
|
245
|
-
*
|
|
246
|
-
* This method returns an array of all current session states, providing a complete
|
|
247
|
-
* snapshot of all active sessions and their metadata. It's primarily used by the
|
|
248
|
-
* web API to expose session information to clients.
|
|
249
|
-
*
|
|
250
|
-
* @returns {SessionState[]} Array of all current session states
|
|
251
|
-
*
|
|
252
|
-
* @example
|
|
253
|
-
* ```typescript
|
|
254
|
-
* const allStates = sessionManager.getAllSessionStates();
|
|
255
|
-
* console.log(`Total active sessions: ${allStates.length}`);
|
|
256
|
-
* ```
|
|
257
|
-
*/
|
|
258
|
-
getAllSessionStates(): SessionState[];
|
|
259
|
-
/**
|
|
260
|
-
* Retrieves a specific session state by session ID for API exposure.
|
|
261
|
-
*
|
|
262
|
-
* This method returns the current state of a specific session or undefined if
|
|
263
|
-
* the session doesn't exist. It's primarily used by the web API to provide
|
|
264
|
-
* detailed information about individual sessions.
|
|
265
|
-
*
|
|
266
|
-
* @param {string} sessionId - Unique identifier of the session to retrieve
|
|
267
|
-
* @returns {SessionState | undefined} Session state object or undefined if not found
|
|
268
|
-
*
|
|
269
|
-
* @example
|
|
270
|
-
* ```typescript
|
|
271
|
-
* const state = sessionManager.getSessionState('my-session-id');
|
|
272
|
-
* if (state) {
|
|
273
|
-
* console.log('Session client:', state.clientName);
|
|
274
|
-
* }
|
|
275
|
-
* ```
|
|
276
|
-
*/
|
|
277
|
-
getSessionState(sessionId: string): SessionState | undefined;
|
|
278
47
|
/**
|
|
279
48
|
* Checks if a session object exists in the active sessions map.
|
|
280
49
|
*
|
|
@@ -283,11 +52,9 @@ export declare class McpSessionManager {
|
|
|
283
52
|
*/
|
|
284
53
|
hasSession(sessionId: string): boolean;
|
|
285
54
|
/**
|
|
286
|
-
* Deletes a session
|
|
55
|
+
* Deletes a session from memory.
|
|
287
56
|
*
|
|
288
|
-
* This method gracefully closes the session's MCP server
|
|
289
|
-
* and ensures it's removed from persistent storage by marking it as dirty and
|
|
290
|
-
* performing an immediate flush. It returns true if the session existed and was deleted.
|
|
57
|
+
* This method gracefully closes the session's MCP server and removes it from memory.
|
|
291
58
|
*
|
|
292
59
|
* @param {string} sessionId - Unique identifier of the session to delete
|
|
293
60
|
* @returns {Promise<boolean>} True if session existed and was deleted, false otherwise
|
|
@@ -305,15 +72,7 @@ export declare class McpSessionManager {
|
|
|
305
72
|
* Creates a new MCP session with proper initialization and transport setup.
|
|
306
73
|
*
|
|
307
74
|
* This method sets up a complete MCP session including server, transport, and
|
|
308
|
-
* communication logging.
|
|
309
|
-
* with special logic for skipping initialization when appropriate.
|
|
310
|
-
*
|
|
311
|
-
* Key features:
|
|
312
|
-
* - Creates StreamableHTTPServerTransport with custom session ID generation
|
|
313
|
-
* - Sets up comprehensive message logging for debugging
|
|
314
|
-
* - Handles restored sessions by manually initializing transport state
|
|
315
|
-
* - Integrates with client tracker service for metadata
|
|
316
|
-
* - Creates/updates session state and marks as dirty for persistence
|
|
75
|
+
* communication logging.
|
|
317
76
|
*
|
|
318
77
|
* @param {string} sessionId - Unique identifier for the new session
|
|
319
78
|
* @param {boolean} [requireInitialize=true] - Whether to require MCP protocol initialization
|
|
@@ -330,14 +89,11 @@ export declare class McpSessionManager {
|
|
|
330
89
|
/**
|
|
331
90
|
* Cleans up stale sessions based on the configured session timeout.
|
|
332
91
|
*
|
|
333
|
-
* This method is called periodically
|
|
92
|
+
* This method is called periodically to identify and close
|
|
334
93
|
* sessions that haven't been accessed within the configured timeout period
|
|
335
94
|
* (default 30 minutes). It gracefully closes MCP servers and removes sessions
|
|
336
95
|
* from memory to prevent resource leaks.
|
|
337
96
|
*
|
|
338
|
-
* The method logs detailed information about cleaned sessions and maintains
|
|
339
|
-
* active session count for monitoring purposes.
|
|
340
|
-
*
|
|
341
97
|
* @returns {void}
|
|
342
98
|
*
|
|
343
99
|
* @example
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../../../src/services/session/session-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../../../../src/services/session/session-manager.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAA4B,OAAO,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAmC;IAEnD,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,gBAAgB,GAE3B;;IAOD;;;;;;;;;;;;;;;;OAgBG;IACU,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAE,OAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAkE/F;;;;;OAKG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI7C;;;;;;;;;;;;;;;OAeG;IACU,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc/D;;;;;;;;;;;;;;;;OAgBG;YACW,aAAa;IA0G3B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,OAAO;CA4BhB;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|