@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
|
@@ -47,8 +47,6 @@ declare class SessionTrackerService {
|
|
|
47
47
|
* @param context.clientName - Optional name of the client application
|
|
48
48
|
* @param context.clientVersion - Optional version of the client application
|
|
49
49
|
* @param context.protocolVersion - Optional MCP protocol version
|
|
50
|
-
* @param context.project - Optional project identifier
|
|
51
|
-
* @param context.cwd - Optional current working directory
|
|
52
50
|
* @param context.userAgent - Optional user agent string
|
|
53
51
|
* @param context.ip - Optional session IP address
|
|
54
52
|
*
|
|
@@ -56,8 +54,7 @@ declare class SessionTrackerService {
|
|
|
56
54
|
* sessionTrackerService.updateSession({
|
|
57
55
|
* sessionId: 'session-123',
|
|
58
56
|
* clientName: 'VS Code',
|
|
59
|
-
* clientVersion: '1.85.0'
|
|
60
|
-
* cwd: '/home/user/project'
|
|
57
|
+
* clientVersion: '1.85.0'
|
|
61
58
|
* });
|
|
62
59
|
*/
|
|
63
60
|
updateSession(context: SessionContext): void;
|
|
@@ -65,12 +62,7 @@ declare class SessionTrackerService {
|
|
|
65
62
|
* Updates the workspace roots for a specific session.
|
|
66
63
|
*
|
|
67
64
|
* This method is typically called when a session provides its workspace root
|
|
68
|
-
* directories
|
|
69
|
-
* If the session doesn't have a current working directory (cwd) set, it will
|
|
70
|
-
* attempt to infer one from the first root URI in the list.
|
|
71
|
-
*
|
|
72
|
-
* For file:// URIs, it converts them to local file paths using Node.js's
|
|
73
|
-
* fileURLToPath utility. For other URI schemes, it uses the URI directly.
|
|
65
|
+
* directories.
|
|
74
66
|
*
|
|
75
67
|
* @param sessionId - The unique session identifier for the session
|
|
76
68
|
* @param roots - Array of session root objects containing URI information
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-tracker.service.d.ts","sourceRoot":"","sources":["../../../../src/services/session-tracker.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-tracker.service.d.ts","sourceRoot":"","sources":["../../../../src/services/session-tracker.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,wCAAwC,CAAC;AAMhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,cAAM,qBAAqB;IACzB,OAAO,CAAC,QAAQ,CAAuC;IAEvD,OAAO,KAAK,UAAU,GAErB;IAED;;;;;OAKG;;IAMH;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,aAAa,CAAC,OAAO,EAAE,cAAc;IA0B5C;;;;;;;;;;;;;;OAcG;IACI,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;IAQjE;;;;;;;;;;;;OAYG;IACI,WAAW,IAAI,WAAW,EAAE;IAInC;;;;;;;;;;;;;;OAcG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI7D;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,OAAO;CAkBhB;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC;AAEjE,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { logger, LOG_MODULES } from '../utils/logger.js';
|
|
2
2
|
import { eventBus } from './event-bus.service.js';
|
|
3
|
-
import { fileURLToPath } from 'node:url';
|
|
4
3
|
import { configManager } from '../config/config-manager.js';
|
|
5
4
|
import { formatDuration } from '../utils/format-utils.js';
|
|
6
5
|
/**
|
|
@@ -57,8 +56,6 @@ class SessionTrackerService {
|
|
|
57
56
|
* @param context.clientName - Optional name of the client application
|
|
58
57
|
* @param context.clientVersion - Optional version of the client application
|
|
59
58
|
* @param context.protocolVersion - Optional MCP protocol version
|
|
60
|
-
* @param context.project - Optional project identifier
|
|
61
|
-
* @param context.cwd - Optional current working directory
|
|
62
59
|
* @param context.userAgent - Optional user agent string
|
|
63
60
|
* @param context.ip - Optional session IP address
|
|
64
61
|
*
|
|
@@ -66,8 +63,7 @@ class SessionTrackerService {
|
|
|
66
63
|
* sessionTrackerService.updateSession({
|
|
67
64
|
* sessionId: 'session-123',
|
|
68
65
|
* clientName: 'VS Code',
|
|
69
|
-
* clientVersion: '1.85.0'
|
|
70
|
-
* cwd: '/home/user/project'
|
|
66
|
+
* clientVersion: '1.85.0'
|
|
71
67
|
* });
|
|
72
68
|
*/
|
|
73
69
|
updateSession(context) {
|
|
@@ -79,8 +75,6 @@ class SessionTrackerService {
|
|
|
79
75
|
clientVersion: context.clientVersion || existing?.clientVersion,
|
|
80
76
|
protocolVersion: context.protocolVersion || existing?.protocolVersion,
|
|
81
77
|
capabilities: context.capabilities || existing?.capabilities,
|
|
82
|
-
project: context.project || existing?.project,
|
|
83
|
-
cwd: context.cwd || existing?.cwd, // Preserve CWD if not provided in new request (e.g. inferred from roots)
|
|
84
78
|
userAgent: context.userAgent || existing?.userAgent,
|
|
85
79
|
ip: context.ip || existing?.ip,
|
|
86
80
|
lastSeen: Date.now(),
|
|
@@ -99,12 +93,7 @@ class SessionTrackerService {
|
|
|
99
93
|
* Updates the workspace roots for a specific session.
|
|
100
94
|
*
|
|
101
95
|
* This method is typically called when a session provides its workspace root
|
|
102
|
-
* directories
|
|
103
|
-
* If the session doesn't have a current working directory (cwd) set, it will
|
|
104
|
-
* attempt to infer one from the first root URI in the list.
|
|
105
|
-
*
|
|
106
|
-
* For file:// URIs, it converts them to local file paths using Node.js's
|
|
107
|
-
* fileURLToPath utility. For other URI schemes, it uses the URI directly.
|
|
96
|
+
* directories.
|
|
108
97
|
*
|
|
109
98
|
* @param sessionId - The unique session identifier for the session
|
|
110
99
|
* @param roots - Array of session root objects containing URI information
|
|
@@ -120,46 +109,6 @@ class SessionTrackerService {
|
|
|
120
109
|
if (session) {
|
|
121
110
|
session.roots = roots;
|
|
122
111
|
session.lastSeen = Date.now();
|
|
123
|
-
// If CWD is missing, try to infer from roots
|
|
124
|
-
if (!session.cwd && roots.length > 0) {
|
|
125
|
-
// Convert file:// uri to path if possible, or just use URI
|
|
126
|
-
const root = roots[0];
|
|
127
|
-
if (root.uri.startsWith('file://')) {
|
|
128
|
-
try {
|
|
129
|
-
session.cwd = fileURLToPath(root.uri);
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
session.cwd = root.uri;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
session.cwd = root.uri;
|
|
137
|
-
}
|
|
138
|
-
logger.debug(`Inferred CWD for session ${sessionId} from roots: ${session.cwd}`, LOG_MODULES.SESSION_TRACKER);
|
|
139
|
-
}
|
|
140
|
-
// If project is missing, try to infer from roots (use name or last path segment)
|
|
141
|
-
if (!session.project && roots.length > 0) {
|
|
142
|
-
const root = roots[0];
|
|
143
|
-
if (root.name) {
|
|
144
|
-
session.project = root.name;
|
|
145
|
-
}
|
|
146
|
-
else if (root.uri.startsWith('file://')) {
|
|
147
|
-
try {
|
|
148
|
-
const localPath = fileURLToPath(root.uri);
|
|
149
|
-
const pathSegments = localPath.split(/[/\\]/);
|
|
150
|
-
const lastSegment = pathSegments.filter(Boolean).pop();
|
|
151
|
-
if (lastSegment) {
|
|
152
|
-
session.project = lastSegment;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
catch {
|
|
156
|
-
// If path parsing fails, don't set project
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (session.project) {
|
|
160
|
-
logger.debug(`Inferred project for session ${sessionId} from roots: ${session.project}`, LOG_MODULES.SESSION_TRACKER);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
112
|
}
|
|
164
113
|
}
|
|
165
114
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/services/system-tool-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"system-tool-handler.d.ts","sourceRoot":"","sources":["../../../../src/services/system-tool-handler.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;OAEG;WACU,oBAAoB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC;CA8DpB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { hubToolsService } from './hub-tools.service.js';
|
|
2
2
|
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
3
3
|
import { logger, LOG_MODULES } from '../utils/logger.js';
|
|
4
|
-
import { LIST_SERVERS_TOOL,
|
|
4
|
+
import { LIST_SERVERS_TOOL, LIST_TOOLS_IN_SERVER_TOOL, GET_TOOL_TOOL, CALL_TOOL_TOOL, UPDATE_SERVER_DESCRIPTION_TOOL, MCP_HUB_LITE_SERVER } from '../models/system-tools.constants.js';
|
|
5
5
|
import { stringifyForLogging } from '../utils/json-utils.js';
|
|
6
6
|
/**
|
|
7
7
|
* Unified system tool call handler
|
|
@@ -18,19 +18,9 @@ export class SystemToolHandler {
|
|
|
18
18
|
case LIST_SERVERS_TOOL:
|
|
19
19
|
result = await hubToolsService.listServers();
|
|
20
20
|
break;
|
|
21
|
-
case
|
|
22
|
-
const
|
|
23
|
-
result = await hubToolsService.
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
case LIST_ALL_TOOLS_IN_SERVER_TOOL: {
|
|
27
|
-
const listAllToolsArgs = toolArgs;
|
|
28
|
-
result = await hubToolsService.listAllToolsInServer(listAllToolsArgs);
|
|
29
|
-
break;
|
|
30
|
-
}
|
|
31
|
-
case FIND_TOOLS_IN_SERVER_TOOL: {
|
|
32
|
-
const findToolsInServerArgs = toolArgs;
|
|
33
|
-
result = await hubToolsService.findToolsInServer(findToolsInServerArgs);
|
|
21
|
+
case LIST_TOOLS_IN_SERVER_TOOL: {
|
|
22
|
+
const listToolsArgs = toolArgs;
|
|
23
|
+
result = await hubToolsService.listToolsInServer(listToolsArgs);
|
|
34
24
|
break;
|
|
35
25
|
}
|
|
36
26
|
case GET_TOOL_TOOL: {
|
|
@@ -50,9 +40,9 @@ export class SystemToolHandler {
|
|
|
50
40
|
});
|
|
51
41
|
break;
|
|
52
42
|
}
|
|
53
|
-
case
|
|
54
|
-
const
|
|
55
|
-
result = await hubToolsService.
|
|
43
|
+
case UPDATE_SERVER_DESCRIPTION_TOOL: {
|
|
44
|
+
const updateDescArgs = toolArgs;
|
|
45
|
+
result = await hubToolsService.updateServerDescription(updateDescArgs);
|
|
56
46
|
break;
|
|
57
47
|
}
|
|
58
48
|
default:
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composite key utilities for server instance identification
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for generating and parsing composite keys
|
|
5
|
+
* that uniquely identify a server instance across multiple instances
|
|
6
|
+
* of the same server name.
|
|
7
|
+
*
|
|
8
|
+
* Format: `${serverName}-${serverIndex}`
|
|
9
|
+
* Example: 'my-server-0', 'my-server-1', 'test-server-0'
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Generates a composite key from serverName and serverIndex
|
|
13
|
+
* @param serverName - The server name
|
|
14
|
+
* @param serverIndex - The instance index
|
|
15
|
+
* @returns Composite key string
|
|
16
|
+
* @example getCompositeKey('my-server', 0) => 'my-server-0'
|
|
17
|
+
*/
|
|
18
|
+
export declare function getCompositeKey(serverName: string, serverIndex: number): string;
|
|
19
|
+
/**
|
|
20
|
+
* Parses a composite key back into serverName and serverIndex
|
|
21
|
+
* @param key - The composite key to parse
|
|
22
|
+
* @returns Object with serverName and serverIndex, or null if invalid
|
|
23
|
+
* @example parseCompositeKey('my-server-0') => { serverName: 'my-server', serverIndex: 0 }
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseCompositeKey(key: string): {
|
|
26
|
+
serverName: string;
|
|
27
|
+
serverIndex: number;
|
|
28
|
+
} | null;
|
|
29
|
+
//# sourceMappingURL=composite-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite-key.d.ts","sourceRoot":"","sources":["../../../../src/utils/composite-key.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYjG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composite key utilities for server instance identification
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for generating and parsing composite keys
|
|
5
|
+
* that uniquely identify a server instance across multiple instances
|
|
6
|
+
* of the same server name.
|
|
7
|
+
*
|
|
8
|
+
* Format: `${serverName}-${serverIndex}`
|
|
9
|
+
* Example: 'my-server-0', 'my-server-1', 'test-server-0'
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Generates a composite key from serverName and serverIndex
|
|
13
|
+
* @param serverName - The server name
|
|
14
|
+
* @param serverIndex - The instance index
|
|
15
|
+
* @returns Composite key string
|
|
16
|
+
* @example getCompositeKey('my-server', 0) => 'my-server-0'
|
|
17
|
+
*/
|
|
18
|
+
export function getCompositeKey(serverName, serverIndex) {
|
|
19
|
+
return `${serverName}-${serverIndex}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Parses a composite key back into serverName and serverIndex
|
|
23
|
+
* @param key - The composite key to parse
|
|
24
|
+
* @returns Object with serverName and serverIndex, or null if invalid
|
|
25
|
+
* @example parseCompositeKey('my-server-0') => { serverName: 'my-server', serverIndex: 0 }
|
|
26
|
+
*/
|
|
27
|
+
export function parseCompositeKey(key) {
|
|
28
|
+
const lastDashIndex = key.lastIndexOf('-');
|
|
29
|
+
if (lastDashIndex === -1) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const serverName = key.slice(0, lastDashIndex);
|
|
33
|
+
const serverIndexPart = key.slice(lastDashIndex + 1);
|
|
34
|
+
const serverIndex = parseInt(serverIndexPart, 10);
|
|
35
|
+
if (isNaN(serverIndex)) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
return { serverName, serverIndex };
|
|
39
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../../src/utils/error-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../../src/utils/error-handler.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK;IAgBrE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK;IA6BzF;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK;CAWlE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
import { logger
|
|
2
|
+
import { logger } from './logger.js';
|
|
3
|
+
import { LOG_MODULES } from './logger/log-modules.js';
|
|
3
4
|
/**
|
|
4
5
|
* Unified error handler
|
|
5
6
|
*/
|
|
@@ -45,7 +46,7 @@ export class ErrorHandler {
|
|
|
45
46
|
* Handles general errors
|
|
46
47
|
*/
|
|
47
48
|
static handleGeneralError(error, message) {
|
|
48
|
-
logger.error(message, error);
|
|
49
|
+
logger.error(message, error, LOG_MODULES.ERROR_HANDLER);
|
|
49
50
|
if (error instanceof McpError) {
|
|
50
51
|
throw error;
|
|
51
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instance ID generation utilities using content-based hashing.
|
|
3
|
+
*/
|
|
4
|
+
import type { ServerInstance } from '../config/config.schema.js';
|
|
5
|
+
/**
|
|
6
|
+
* Generates a stable 8-character hash from an object.
|
|
7
|
+
* Uses SHA-256 and returns the first 8 hex characters.
|
|
8
|
+
*
|
|
9
|
+
* @param obj - The object to hash
|
|
10
|
+
* @returns An 8-character hex string
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateInstanceHash(obj: Record<string, unknown>): string;
|
|
13
|
+
/**
|
|
14
|
+
* Generates a deterministic instance ID based on server name and instance configuration.
|
|
15
|
+
* The ID format is: ${serverName}-${hash}
|
|
16
|
+
*
|
|
17
|
+
* @param serverName - Name of the server
|
|
18
|
+
* @param instanceConfig - Partial instance configuration
|
|
19
|
+
* @returns A deterministic instance ID
|
|
20
|
+
*/
|
|
21
|
+
export declare function generateInstanceId(serverName: string, instanceConfig: Partial<ServerInstance>): string;
|
|
22
|
+
//# sourceMappingURL=instance-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-id.d.ts","sourceRoot":"","sources":["../../../../src/utils/instance-id.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAyBzE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,MAAM,CAiBR"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Instance ID generation utilities using content-based hashing.
|
|
3
|
+
*/
|
|
4
|
+
import { createHash } from 'node:crypto';
|
|
5
|
+
/**
|
|
6
|
+
* Generates a stable 8-character hash from an object.
|
|
7
|
+
* Uses SHA-256 and returns the first 8 hex characters.
|
|
8
|
+
*
|
|
9
|
+
* @param obj - The object to hash
|
|
10
|
+
* @returns An 8-character hex string
|
|
11
|
+
*/
|
|
12
|
+
export function generateInstanceHash(obj) {
|
|
13
|
+
function stableStringify(value) {
|
|
14
|
+
if (value === null || typeof value !== 'object') {
|
|
15
|
+
return JSON.stringify(value);
|
|
16
|
+
}
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
return '[' + value.map(stableStringify).join(',') + ']';
|
|
19
|
+
}
|
|
20
|
+
const sortedObj = {};
|
|
21
|
+
for (const key of Object.keys(value).sort()) {
|
|
22
|
+
sortedObj[key] = value[key];
|
|
23
|
+
}
|
|
24
|
+
return ('{' +
|
|
25
|
+
Object.keys(sortedObj)
|
|
26
|
+
.map((key) => JSON.stringify(key) + ':' + stableStringify(sortedObj[key]))
|
|
27
|
+
.join(',') +
|
|
28
|
+
'}');
|
|
29
|
+
}
|
|
30
|
+
const stableString = stableStringify(obj);
|
|
31
|
+
const hash = createHash('sha256');
|
|
32
|
+
hash.update(stableString);
|
|
33
|
+
return hash.digest('hex').slice(0, 8);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Generates a deterministic instance ID based on server name and instance configuration.
|
|
37
|
+
* The ID format is: ${serverName}-${hash}
|
|
38
|
+
*
|
|
39
|
+
* @param serverName - Name of the server
|
|
40
|
+
* @param instanceConfig - Partial instance configuration
|
|
41
|
+
* @returns A deterministic instance ID
|
|
42
|
+
*/
|
|
43
|
+
export function generateInstanceId(serverName, instanceConfig) {
|
|
44
|
+
const hashableContent = {};
|
|
45
|
+
if (instanceConfig.args && instanceConfig.args.length > 0) {
|
|
46
|
+
hashableContent.args = instanceConfig.args;
|
|
47
|
+
}
|
|
48
|
+
if (instanceConfig.env) {
|
|
49
|
+
hashableContent.env = instanceConfig.env;
|
|
50
|
+
}
|
|
51
|
+
if (instanceConfig.headers) {
|
|
52
|
+
hashableContent.headers = instanceConfig.headers;
|
|
53
|
+
}
|
|
54
|
+
if (instanceConfig.tags && Object.keys(instanceConfig.tags).length > 0) {
|
|
55
|
+
hashableContent.tags = instanceConfig.tags;
|
|
56
|
+
}
|
|
57
|
+
const hash = generateInstanceHash(hashableContent);
|
|
58
|
+
return `${serverName}-${hash}`;
|
|
59
|
+
}
|
|
@@ -23,7 +23,7 @@ type ConfigGetter = () => {
|
|
|
23
23
|
logging: {
|
|
24
24
|
jsonPretty: boolean;
|
|
25
25
|
mcpCommDebug: boolean;
|
|
26
|
-
|
|
26
|
+
apiDebug: boolean;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
};
|
|
@@ -60,11 +60,11 @@ export declare function getJsonPrettySetting(): boolean;
|
|
|
60
60
|
*/
|
|
61
61
|
export declare function getMcpCommDebugSetting(): boolean;
|
|
62
62
|
/**
|
|
63
|
-
* Get
|
|
63
|
+
* Get API debug setting from config getter.
|
|
64
64
|
*
|
|
65
|
-
* @returns boolean indicating whether to enable
|
|
65
|
+
* @returns boolean indicating whether to enable API debug logging
|
|
66
66
|
*/
|
|
67
|
-
export declare function
|
|
67
|
+
export declare function getApiDebugSetting(): boolean;
|
|
68
68
|
/**
|
|
69
69
|
* Stringify object for logging with dynamic pretty formatting based on LOG_JSON_PRETTY environment variable
|
|
70
70
|
* @param obj Object to stringify
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/json-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAiED;;GAEG;AACH,KAAK,YAAY,GAAG,MAAM;IACxB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,UAAU,EAAE,OAAO,CAAC;YACpB,YAAY,EAAE,OAAO,CAAC;YACtB,
|
|
1
|
+
{"version":3,"file":"json-utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/json-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAiED;;GAEG;AACH,KAAK,YAAY,GAAG,MAAM;IACxB,MAAM,EAAE;QACN,OAAO,EAAE;YACP,UAAU,EAAE,OAAO,CAAC;YACpB,YAAY,EAAE,OAAO,CAAC;YACtB,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC;KACH,CAAC;CACH,CAAC;AAQF;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU/E;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAG1E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAiB9C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAUhD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAU5C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAOxD;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,GAClD,MAAM,CAOR"}
|
|
@@ -165,15 +165,15 @@ export function getMcpCommDebugSetting() {
|
|
|
165
165
|
return getDefaultForDevMode(false);
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
168
|
-
* Get
|
|
168
|
+
* Get API debug setting from config getter.
|
|
169
169
|
*
|
|
170
|
-
* @returns boolean indicating whether to enable
|
|
170
|
+
* @returns boolean indicating whether to enable API debug logging
|
|
171
171
|
*/
|
|
172
|
-
export function
|
|
172
|
+
export function getApiDebugSetting() {
|
|
173
173
|
if (_configGetter) {
|
|
174
174
|
try {
|
|
175
175
|
const config = _configGetter();
|
|
176
|
-
return config.system.logging.
|
|
176
|
+
return config.system.logging.apiDebug;
|
|
177
177
|
}
|
|
178
178
|
catch {
|
|
179
179
|
// Fall through to default if config getter fails
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* This file contains development log initialization and management.
|
|
4
4
|
*/
|
|
5
5
|
import fs from 'fs';
|
|
6
|
-
import { LogRotator
|
|
6
|
+
import { LogRotator } from '../log-rotator.js';
|
|
7
|
+
import type { RotatorConfig } from '../log-rotator.js';
|
|
7
8
|
/**
|
|
8
9
|
* Development logger configuration and setup.
|
|
9
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-logger.d.ts","sourceRoot":"","sources":["../../../../../src/utils/logger/dev-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-logger.d.ts","sourceRoot":"","sources":["../../../../../src/utils/logger/dev-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,aAAa,CAA2B;IAEhD;;OAEG;IACH,IAAI,MAAM,IAAI,EAAE,CAAC,WAAW,GAAG,IAAI,CAElC;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,UAAU,GAAG,IAAI,CAE/B;IAED;;;;;;;;;;OAUG;IACH,YAAY,CAAC,aAAa,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAoB/F;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-formatter.d.ts","sourceRoot":"","sources":["../../../../../src/utils/logger/log-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAsED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,UAAU,SAAI,GAAG,UAAU,GAAG,IAAI,CAQ/D;AA2HD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAK/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CASlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAatD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM7C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,UAAU,GACnB,MAAM,CAsCR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CA6B/F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"log-formatter.d.ts","sourceRoot":"","sources":["../../../../../src/utils/logger/log-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAsED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,UAAU,SAAI,GAAG,UAAU,GAAG,IAAI,CAQ/D;AA2HD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAK/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CASlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAatD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM7C;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,UAAU,GACnB,MAAM,CAsCR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CA6B/F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAyHlD"}
|
|
@@ -324,25 +324,102 @@ export function createLogMessage(level, message, context) {
|
|
|
324
324
|
* @returns Formatted error string
|
|
325
325
|
*/
|
|
326
326
|
export function formatError(error) {
|
|
327
|
+
// Special case: handle arrays that might contain errors
|
|
328
|
+
if (Array.isArray(error)) {
|
|
329
|
+
if (error.length === 0) {
|
|
330
|
+
return '';
|
|
331
|
+
}
|
|
332
|
+
// If it's a single-element array, unwrap it and format the element
|
|
333
|
+
if (error.length === 1) {
|
|
334
|
+
const element = error[0];
|
|
335
|
+
// Skip empty objects that are likely log context
|
|
336
|
+
if (typeof element === 'object' &&
|
|
337
|
+
element !== null &&
|
|
338
|
+
!Array.isArray(element) &&
|
|
339
|
+
('module' in element || 'traceId' in element || 'spanId' in element)) {
|
|
340
|
+
return '';
|
|
341
|
+
}
|
|
342
|
+
// Otherwise format the single element
|
|
343
|
+
return formatError(element);
|
|
344
|
+
}
|
|
345
|
+
// For multi-element arrays, format each element
|
|
346
|
+
const formattedElements = error
|
|
347
|
+
.map((elem) => {
|
|
348
|
+
const formatted = formatError(elem);
|
|
349
|
+
return formatted || '[skipped]';
|
|
350
|
+
})
|
|
351
|
+
.filter((f) => f !== '[skipped]');
|
|
352
|
+
if (formattedElements.length === 0) {
|
|
353
|
+
return '';
|
|
354
|
+
}
|
|
355
|
+
if (formattedElements.length === 1) {
|
|
356
|
+
return formattedElements[0];
|
|
357
|
+
}
|
|
358
|
+
return `[ ${formattedElements.join(', ')} ]`;
|
|
359
|
+
}
|
|
327
360
|
if (error instanceof Error) {
|
|
328
|
-
let result =
|
|
361
|
+
let result = '';
|
|
362
|
+
// Include error name if available
|
|
363
|
+
if (error.name) {
|
|
364
|
+
result += error.name;
|
|
365
|
+
}
|
|
366
|
+
// Include error message if available
|
|
367
|
+
if (error.message) {
|
|
368
|
+
result += result ? `: ${error.message}` : error.message;
|
|
369
|
+
}
|
|
370
|
+
// If no name and message, try string representation
|
|
371
|
+
if (!result) {
|
|
372
|
+
result = String(error);
|
|
373
|
+
}
|
|
374
|
+
// Include stack trace if available
|
|
329
375
|
if (error.stack) {
|
|
330
376
|
const stackLines = error.stack.split('\n').slice(1, 6);
|
|
331
377
|
if (stackLines.length > 0) {
|
|
332
378
|
result += '\n' + stackLines.join('\n');
|
|
333
379
|
}
|
|
334
380
|
}
|
|
381
|
+
// Check for non-enumerable properties using Object.getOwnPropertyNames
|
|
382
|
+
const ownProps = Object.getOwnPropertyNames(error);
|
|
383
|
+
const extraProps = [];
|
|
384
|
+
for (const prop of ownProps) {
|
|
385
|
+
if (prop !== 'name' && prop !== 'message' && prop !== 'stack') {
|
|
386
|
+
try {
|
|
387
|
+
const value = error[prop];
|
|
388
|
+
extraProps.push(`${prop}: ${stringifyForLogging(value)}`);
|
|
389
|
+
}
|
|
390
|
+
catch {
|
|
391
|
+
extraProps.push(`${prop}: [could not serialize]`);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
if (extraProps.length > 0) {
|
|
396
|
+
result += '\n Additional properties: ' + extraProps.join(', ');
|
|
397
|
+
}
|
|
335
398
|
return result;
|
|
336
399
|
}
|
|
337
400
|
if (typeof error === 'object' && error !== null) {
|
|
338
401
|
if ('module' in error || 'traceId' in error || 'spanId' in error) {
|
|
339
402
|
return '';
|
|
340
403
|
}
|
|
341
|
-
|
|
342
|
-
|
|
404
|
+
// Check for empty object (both enumerable and non-enumerable properties)
|
|
405
|
+
const enumKeys = Object.keys(error);
|
|
406
|
+
const allProps = Object.getOwnPropertyNames(error);
|
|
407
|
+
if (enumKeys.length === 0 && allProps.length === 0) {
|
|
408
|
+
return '[empty object]';
|
|
343
409
|
}
|
|
344
|
-
|
|
345
|
-
|
|
410
|
+
// If only non-enumerable properties, show them
|
|
411
|
+
if (enumKeys.length === 0 && allProps.length > 0) {
|
|
412
|
+
const props = [];
|
|
413
|
+
for (const prop of allProps) {
|
|
414
|
+
try {
|
|
415
|
+
const value = error[prop];
|
|
416
|
+
props.push(`${prop}: ${stringifyForLogging(value)}`);
|
|
417
|
+
}
|
|
418
|
+
catch {
|
|
419
|
+
props.push(`${prop}: [could not serialize]`);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
return `{ ${props.join(', ')} }`;
|
|
346
423
|
}
|
|
347
424
|
try {
|
|
348
425
|
return stringifyForLogging(error);
|
|
@@ -24,25 +24,22 @@ export declare const LOG_MODULES: {
|
|
|
24
24
|
readonly DEV_SERVER: {
|
|
25
25
|
module: string;
|
|
26
26
|
};
|
|
27
|
-
readonly
|
|
28
|
-
module: string;
|
|
29
|
-
};
|
|
30
|
-
readonly CONFIG_LOADER: {
|
|
27
|
+
readonly RUNNER: {
|
|
31
28
|
module: string;
|
|
32
29
|
};
|
|
33
|
-
readonly
|
|
30
|
+
readonly CONFIG_MANAGER: {
|
|
34
31
|
module: string;
|
|
35
32
|
};
|
|
36
|
-
readonly
|
|
33
|
+
readonly CONFIG_LOADER: {
|
|
37
34
|
module: string;
|
|
38
35
|
};
|
|
39
|
-
readonly
|
|
36
|
+
readonly CONFIG_SAVER: {
|
|
40
37
|
module: string;
|
|
41
38
|
};
|
|
42
|
-
readonly
|
|
39
|
+
readonly CONFIG_CHANGES: {
|
|
43
40
|
module: string;
|
|
44
41
|
};
|
|
45
|
-
readonly
|
|
42
|
+
readonly SERVER_CONFIG_MANAGER: {
|
|
46
43
|
module: string;
|
|
47
44
|
};
|
|
48
45
|
readonly CONNECTION_MANAGER: {
|
|
@@ -51,6 +48,9 @@ export declare const LOG_MODULES: {
|
|
|
51
48
|
readonly HUB_MANAGER: {
|
|
52
49
|
module: string;
|
|
53
50
|
};
|
|
51
|
+
readonly SERVER_SELECTOR: {
|
|
52
|
+
module: string;
|
|
53
|
+
};
|
|
54
54
|
readonly GATEWAY: {
|
|
55
55
|
module: string;
|
|
56
56
|
};
|
|
@@ -66,6 +66,9 @@ export declare const LOG_MODULES: {
|
|
|
66
66
|
readonly TOOL_LIST: {
|
|
67
67
|
module: string;
|
|
68
68
|
};
|
|
69
|
+
readonly TOOL_LIST_GENERATOR: {
|
|
70
|
+
module: string;
|
|
71
|
+
};
|
|
69
72
|
readonly INITIALIZE_HANDLER: {
|
|
70
73
|
module: string;
|
|
71
74
|
};
|
|
@@ -81,6 +84,9 @@ export declare const LOG_MODULES: {
|
|
|
81
84
|
readonly SEARCH: {
|
|
82
85
|
module: string;
|
|
83
86
|
};
|
|
87
|
+
readonly ERROR_HANDLER: {
|
|
88
|
+
module: string;
|
|
89
|
+
};
|
|
84
90
|
readonly COMMUNICATION: {
|
|
85
91
|
module: string;
|
|
86
92
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-modules.d.ts","sourceRoot":"","sources":["../../../../../src/utils/logger/log-modules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"log-modules.d.ts","sourceRoot":"","sources":["../../../../../src/utils/logger/log-modules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8DtB;;;;;;;;;;;OAWG;mCACmB,MAAM;;;CACpB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,WAAW,EAAE,SAAS,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC"}
|