@loop_ouroboros/mcp-hub-lite 1.0.1 → 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 +47 -0
- package/dist/client/assets/{HomeView-Cr1jX73N.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-Bp9Rjwd7.js +1 -0
- 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-Csv24uBk.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-CqPQN3XP.js +1 -0
- package/dist/client/assets/{raf-DDfJOMYh.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 +363 -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 +2 -56
- package/dist/server/shared/models/session.model.d.ts.map +1 -1
- package/dist/server/shared/models/session.model.js +2 -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/client.types.d.ts +4 -32
- package/dist/server/shared/types/client.types.d.ts.map +1 -1
- package/dist/server/shared/types/client.types.js +3 -2
- package/dist/server/shared/types/index.d.ts +3 -3
- package/dist/server/shared/types/index.d.ts.map +1 -1
- package/dist/server/shared/types/index.js +3 -3
- package/dist/server/shared/types/session-context.types.d.ts +35 -0
- package/dist/server/shared/types/session-context.types.d.ts.map +1 -0
- package/dist/server/shared/types/session-context.types.js +5 -0
- package/dist/server/shared/types/websocket.types.d.ts +17 -10
- package/dist/server/shared/types/websocket.types.d.ts.map +1 -1
- package/dist/server/src/api/mcp/debug-response-wrapper.d.ts.map +1 -1
- package/dist/server/src/api/mcp/debug-response-wrapper.js +26 -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 +34 -61
- package/dist/server/src/api/mcp/session-context-extractor.d.ts +5 -5
- package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -1
- package/dist/server/src/api/mcp/session-context-extractor.js +15 -39
- package/dist/server/src/api/web/clients.js +2 -2
- 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/web/sessions.js +1 -1
- 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 -4
- 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 -102
- package/dist/server/src/config/config.schema.d.ts.map +1 -1
- package/dist/server/src/config/config.schema.js +15 -98
- 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/index.js +1 -1
- 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/client-tracker.service.d.ts +3 -128
- package/dist/server/src/services/client-tracker.service.d.ts.map +1 -1
- package/dist/server/src/services/client-tracker.service.js +4 -200
- 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 +16 -55
- 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 +25 -5
- 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 -64
- 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-cache.d.ts +0 -19
- package/dist/server/src/services/search/search-cache.d.ts.map +1 -1
- package/dist/server/src/services/search/search-cache.js +0 -24
- 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 -583
- package/dist/server/src/services/session-tracker.service.d.ts +124 -0
- package/dist/server/src/services/session-tracker.service.d.ts.map +1 -0
- package/dist/server/src/services/session-tracker.service.js +176 -0
- 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 +10 -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-colors.d.ts +1 -0
- package/dist/server/src/utils/logger/log-colors.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-colors.js +2 -1
- package/dist/server/src/utils/logger/log-context.d.ts +1 -0
- package/dist/server/src/utils/logger/log-context.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-formatter.d.ts +28 -0
- package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-formatter.js +287 -5
- package/dist/server/src/utils/logger/log-modules.d.ts +15 -12
- package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-modules.js +8 -8
- package/dist/server/src/utils/logger/log-output.d.ts +2 -2
- package/dist/server/src/utils/logger/log-output.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-output.js +27 -6
- package/dist/server/src/utils/logger/logger.d.ts +13 -0
- package/dist/server/src/utils/logger/logger.d.ts.map +1 -1
- package/dist/server/src/utils/logger/logger.js +42 -7
- 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 +12 -30
- package/dist/server/src/utils/request-context.d.ts.map +1 -1
- package/dist/server/src/utils/request-context.js +10 -30
- 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/tool-args-parser.d.ts +0 -4
- package/dist/server/src/utils/tool-args-parser.d.ts.map +1 -1
- package/dist/server/src/utils/tool-args-parser.js +0 -7
- 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 +33 -13
- 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 +24 -39
- 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/temp/test-stack.d.ts +6 -0
- package/dist/server/tests/temp/test-stack.d.ts.map +1 -0
- package/dist/server/tests/temp/test-stack.js +40 -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 -334
- 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 +107 -13
- 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/logger.test.js +101 -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 +9 -28
- 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-BQ49hk0c.js +0 -1
- package/dist/client/assets/ResourcesView-BYZfWtia.js +0 -1
- package/dist/client/assets/ResourcesView-CjMklkyv.css +0 -1
- package/dist/client/assets/ServerDashboard-7_8Og9JJ.css +0 -1
- package/dist/client/assets/ServerDashboard-DHcxwKeh.js +0 -2
- package/dist/client/assets/ServerListView-DralUL71.js +0 -30
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +0 -1
- package/dist/client/assets/SessionsView-BCGRTqem.js +0 -1
- package/dist/client/assets/SettingsView-BLfxa6PZ.js +0 -1
- package/dist/client/assets/ToolCallDialog-DQ0OQ1mD.js +0 -1
- package/dist/client/assets/ToolsView-BLB6x3tC.js +0 -1
- package/dist/client/assets/_baseClone-Bo5mBgsT.js +0 -1
- package/dist/client/assets/el-form-item-BVMLpmVC.css +0 -1
- package/dist/client/assets/el-form-item-BmeJKVSi.js +0 -12
- package/dist/client/assets/el-input-CeZiq23m.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-iw_hrrlC.js +0 -1
- package/dist/client/assets/el-select-B73uRP_Y.js +0 -1
- package/dist/client/assets/el-tab-pane-BgOTBn4X.js +0 -1
- package/dist/client/assets/el-table-column-Ld4GSD3x.js +0 -1
- package/dist/client/assets/el-table-column-T_mV9jNw.css +0 -1
- package/dist/client/assets/el-tag-DYmSo8Bx.js +0 -1
- package/dist/client/assets/el-tag-DjxZVOpb.css +0 -1
- package/dist/client/assets/index-COYaYRbH.js +0 -1
- package/dist/client/assets/index-Cfcvxyee.js +0 -2
- package/dist/client/assets/index-PhuI36Zi.js +0 -1
- package/dist/client/assets/omit-7EL6VJO4.js +0 -1
- package/dist/client/assets/vnode-upjuIlvm.js +0 -1
|
@@ -1,103 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TransportType, TagDefinitionSchema, ServerInstanceSchema, ServerInstanceUpdateSchema, ServerTemplateSchema, ServerConfigSchema, LoggingConfigSchema, SecurityConfigSchema, SystemConfigSchema, ServerInstanceConfigSchema } from '../../shared/models/server.model.js';
|
|
2
2
|
/**
|
|
3
3
|
* MCP Server Configuration Schema
|
|
4
|
-
* Simplified
|
|
4
|
+
* Simplified v1.1 only - No v1.0 compatibility
|
|
5
|
+
*
|
|
6
|
+
* Note: All core schemas are now defined in @shared-models/server.model.ts
|
|
7
|
+
* This file re-exports them for backward compatibility and retains
|
|
8
|
+
* TransportType constants and legacy helper functions.
|
|
5
9
|
*/
|
|
6
|
-
//
|
|
7
|
-
export
|
|
8
|
-
command: z.string().optional(),
|
|
9
|
-
args: z.array(z.string()).default([]),
|
|
10
|
-
env: z.record(z.string(), z.string()).optional(),
|
|
11
|
-
enabled: z.boolean().default(true),
|
|
12
|
-
tags: z.record(z.string(), z.string()).optional(),
|
|
13
|
-
type: z.enum(['stdio', 'sse', 'streamable-http', 'http']).default('stdio'),
|
|
14
|
-
timeout: z.number().default(60000),
|
|
15
|
-
url: z.string().optional(),
|
|
16
|
-
allowedTools: z.array(z.string()).default([]),
|
|
17
|
-
description: z.string().optional()
|
|
18
|
-
});
|
|
19
|
-
// Server instance schema (each instance contains id, timestamp, hash)
|
|
20
|
-
export const ServerInstanceConfigSchema = z.object({
|
|
21
|
-
id: z.string(),
|
|
22
|
-
timestamp: z.number(), // Startup time
|
|
23
|
-
hash: z.string(),
|
|
24
|
-
pid: z.number().optional(), // Process ID
|
|
25
|
-
startTime: z.number().optional() // Startup time (same as timestamp, for compatibility)
|
|
26
|
-
});
|
|
10
|
+
// Re-export shared types for backward compatibility
|
|
11
|
+
export { TransportType, TagDefinitionSchema, ServerInstanceSchema, ServerInstanceUpdateSchema, ServerTemplateSchema, ServerConfigSchema, LoggingConfigSchema, SecurityConfigSchema, SystemConfigSchema, ServerInstanceConfigSchema };
|
|
27
12
|
/**
|
|
28
|
-
*
|
|
13
|
+
* Simplified type guard - only check for legacy v1.0 format for migration
|
|
29
14
|
*/
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
sessionDebug: z.boolean().default(false) // Enable session debug logging
|
|
37
|
-
})
|
|
38
|
-
.default({
|
|
39
|
-
level: 'info',
|
|
40
|
-
rotationAge: '7d',
|
|
41
|
-
jsonPretty: true,
|
|
42
|
-
mcpCommDebug: false,
|
|
43
|
-
sessionDebug: false
|
|
44
|
-
});
|
|
45
|
-
/**
|
|
46
|
-
* Security Configuration Schema
|
|
47
|
-
*/
|
|
48
|
-
export const SecurityConfigSchema = z
|
|
49
|
-
.object({
|
|
50
|
-
allowedNetworks: z
|
|
51
|
-
.array(z.string())
|
|
52
|
-
.default(['127.0.0.1', '192.168.0.0/16', '10.0.0.0/8', '172.16.0.0/12']),
|
|
53
|
-
maxConcurrentConnections: z.number().min(1).max(1000).default(50),
|
|
54
|
-
connectionTimeout: z.number().min(1000).default(30000),
|
|
55
|
-
idleConnectionTimeout: z.number().min(30000).default(300000),
|
|
56
|
-
sessionTimeout: z
|
|
57
|
-
.number()
|
|
58
|
-
.min(60000)
|
|
59
|
-
.default(30 * 60 * 1000), // Default 30 minutes, min 1 minute
|
|
60
|
-
sessionFlushInterval: z
|
|
61
|
-
.number()
|
|
62
|
-
.min(1000)
|
|
63
|
-
.default(15 * 60 * 1000), // Default 15 minutes, min 1 second
|
|
64
|
-
maxConnections: z.number().min(1).max(1000).default(50)
|
|
65
|
-
})
|
|
66
|
-
.default({
|
|
67
|
-
allowedNetworks: ['127.0.0.1', '192.168.0.0/16', '10.0.0.0/8', '172.16.0.0/12'],
|
|
68
|
-
maxConcurrentConnections: 50,
|
|
69
|
-
connectionTimeout: 30000,
|
|
70
|
-
idleConnectionTimeout: 300000,
|
|
71
|
-
sessionTimeout: 30 * 60 * 1000,
|
|
72
|
-
sessionFlushInterval: 15 * 60 * 1000,
|
|
73
|
-
maxConnections: 50
|
|
74
|
-
});
|
|
75
|
-
/**
|
|
76
|
-
* System Configuration Schema
|
|
77
|
-
*/
|
|
78
|
-
export const SystemConfigSchema = z.object({
|
|
79
|
-
version: z.string().default('1.0.0'),
|
|
80
|
-
system: z
|
|
81
|
-
.object({
|
|
82
|
-
host: z.string().default('localhost'),
|
|
83
|
-
port: z.number().default(7788),
|
|
84
|
-
language: z.enum(['zh', 'en']).default('zh'),
|
|
85
|
-
theme: z.enum(['light', 'dark', 'system']).default('system'),
|
|
86
|
-
logging: LoggingConfigSchema
|
|
87
|
-
})
|
|
88
|
-
.default({
|
|
89
|
-
host: 'localhost',
|
|
90
|
-
port: 7788,
|
|
91
|
-
language: 'zh',
|
|
92
|
-
theme: 'system',
|
|
93
|
-
logging: {
|
|
94
|
-
level: 'info',
|
|
95
|
-
rotationAge: '7d',
|
|
96
|
-
jsonPretty: true,
|
|
97
|
-
mcpCommDebug: false,
|
|
98
|
-
sessionDebug: false
|
|
99
|
-
}
|
|
100
|
-
}),
|
|
101
|
-
security: SecurityConfigSchema,
|
|
102
|
-
servers: z.record(z.string(), ServerConfigSchema).default({})
|
|
103
|
-
});
|
|
15
|
+
export function isLegacyV1Config(config) {
|
|
16
|
+
if (typeof config !== 'object' || config === null)
|
|
17
|
+
return false;
|
|
18
|
+
const c = config;
|
|
19
|
+
return c.version !== '1.1.0';
|
|
20
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path validation utilities for configuration files.
|
|
3
|
+
* Provides basic path validation to prevent path traversal attacks.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Validates that a path is within an allowed directory.
|
|
7
|
+
*
|
|
8
|
+
* @param configPath - The path to validate
|
|
9
|
+
* @param allowedDirs - Array of allowed parent directories
|
|
10
|
+
* @returns true if path is valid, false otherwise
|
|
11
|
+
*/
|
|
12
|
+
export declare function isValidConfigPath(configPath: string, allowedDirs: string[]): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Ensures a path is absolute and normalized.
|
|
15
|
+
*
|
|
16
|
+
* @param configPath - The path to sanitize
|
|
17
|
+
* @returns Normalized absolute path
|
|
18
|
+
*/
|
|
19
|
+
export declare function sanitizeConfigPath(configPath: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Validates that a filename doesn't contain path traversal characters.
|
|
22
|
+
*
|
|
23
|
+
* @param filename - The filename to validate
|
|
24
|
+
* @returns true if filename is safe, false otherwise
|
|
25
|
+
*/
|
|
26
|
+
export declare function isSafeFilename(filename: string): boolean;
|
|
27
|
+
//# sourceMappingURL=path-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-validator.d.ts","sourceRoot":"","sources":["../../../../src/config/path-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAepF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CASxD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path validation utilities for configuration files.
|
|
3
|
+
* Provides basic path validation to prevent path traversal attacks.
|
|
4
|
+
*/
|
|
5
|
+
import { resolve, normalize } from 'node:path';
|
|
6
|
+
/**
|
|
7
|
+
* Validates that a path is within an allowed directory.
|
|
8
|
+
*
|
|
9
|
+
* @param configPath - The path to validate
|
|
10
|
+
* @param allowedDirs - Array of allowed parent directories
|
|
11
|
+
* @returns true if path is valid, false otherwise
|
|
12
|
+
*/
|
|
13
|
+
export function isValidConfigPath(configPath, allowedDirs) {
|
|
14
|
+
try {
|
|
15
|
+
const normalizedPath = normalize(resolve(configPath));
|
|
16
|
+
for (const allowedDir of allowedDirs) {
|
|
17
|
+
const normalizedAllowedDir = normalize(resolve(allowedDir));
|
|
18
|
+
if (normalizedPath.startsWith(normalizedAllowedDir)) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Ensures a path is absolute and normalized.
|
|
30
|
+
*
|
|
31
|
+
* @param configPath - The path to sanitize
|
|
32
|
+
* @returns Normalized absolute path
|
|
33
|
+
*/
|
|
34
|
+
export function sanitizeConfigPath(configPath) {
|
|
35
|
+
return normalize(resolve(configPath));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Validates that a filename doesn't contain path traversal characters.
|
|
39
|
+
*
|
|
40
|
+
* @param filename - The filename to validate
|
|
41
|
+
* @returns true if filename is safe, false otherwise
|
|
42
|
+
*/
|
|
43
|
+
export function isSafeFilename(filename) {
|
|
44
|
+
// Block path traversal patterns
|
|
45
|
+
if (filename.includes('..'))
|
|
46
|
+
return false;
|
|
47
|
+
if (filename.includes('/') || filename.includes('\\'))
|
|
48
|
+
return false;
|
|
49
|
+
// Block null bytes
|
|
50
|
+
if (filename.includes('\0'))
|
|
51
|
+
return false;
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
@@ -1,74 +1,80 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Server configuration management utilities.
|
|
3
|
-
* Handles CRUD operations for server
|
|
2
|
+
* Server configuration management utilities for v1.1 format.
|
|
3
|
+
* Handles CRUD operations for server templates and instances.
|
|
4
4
|
*/
|
|
5
|
-
import type {
|
|
5
|
+
import type { ServerTemplate, ServerInstance, ServerConfig } from './config.schema.js';
|
|
6
6
|
/**
|
|
7
7
|
* Adds multiple server configurations to the system in a single operation.
|
|
8
8
|
*
|
|
9
|
-
* @param servers - Array of server objects containing name and partial configuration
|
|
9
|
+
* @param servers - Array of server objects containing name and partial template configuration
|
|
10
10
|
* @param currentServers - Current servers configuration object (will be modified)
|
|
11
|
-
* @param serverInstances - Current server instances record (will be modified)
|
|
12
11
|
* @returns The updated servers configuration
|
|
13
12
|
*/
|
|
14
13
|
export declare function addServers(servers: Array<{
|
|
15
14
|
name: string;
|
|
16
|
-
config: Partial<
|
|
17
|
-
}>, currentServers: Record<string, ServerConfig
|
|
15
|
+
config: Partial<ServerTemplate>;
|
|
16
|
+
}>, currentServers: Record<string, ServerConfig>): Record<string, ServerConfig>;
|
|
18
17
|
/**
|
|
19
|
-
* Adds a new server configuration to the system.
|
|
18
|
+
* Adds a new server configuration to the system (v1.1 format).
|
|
19
|
+
* Creates a template and a default instance.
|
|
20
20
|
*
|
|
21
21
|
* @param name - The unique name for the server
|
|
22
|
-
* @param config - The server configuration (partial, will be validated)
|
|
22
|
+
* @param config - The server template configuration (partial, will be validated)
|
|
23
23
|
* @param currentServers - Current servers configuration object (will be modified)
|
|
24
|
-
* @
|
|
25
|
-
* @returns The validated and complete server configuration
|
|
24
|
+
* @returns The complete server configuration (v1.1)
|
|
26
25
|
*/
|
|
27
|
-
export declare function addServer(name: string, config: Partial<
|
|
26
|
+
export declare function addServer(name: string, config: Partial<ServerTemplate>, currentServers: Record<string, ServerConfig>): ServerConfig;
|
|
28
27
|
/**
|
|
29
28
|
* Adds a new server instance for the specified server.
|
|
30
29
|
*
|
|
31
30
|
* @param name - The name of the server to add an instance for
|
|
32
31
|
* @param instance - The server instance configuration (partial, will be validated)
|
|
33
|
-
* @param
|
|
32
|
+
* @param currentServers - Current servers configuration object (will be modified)
|
|
34
33
|
* @returns The validated and complete server instance configuration
|
|
35
34
|
*/
|
|
36
|
-
export declare function addServerInstance(name: string, instance: Partial<
|
|
35
|
+
export declare function addServerInstance(name: string, instance: Partial<ServerInstance>, currentServers: Record<string, ServerConfig>): ServerInstance;
|
|
37
36
|
/**
|
|
38
|
-
*
|
|
37
|
+
* Reassigns server instance indexes to be consecutive (0, 1, 2, ...).
|
|
38
|
+
*
|
|
39
|
+
* @param name - The name of the server to reassign indexes for
|
|
40
|
+
* @param currentServers - Current servers configuration object (will be modified)
|
|
41
|
+
* @returns True if the server exists and indexes were reassigned
|
|
42
|
+
*/
|
|
43
|
+
export declare function reassignServerInstanceIndexes(name: string, currentServers: Record<string, ServerConfig>): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Updates an existing server configuration (template and/or instance selection strategy).
|
|
39
46
|
*
|
|
40
47
|
* @param name - The name of the server to update
|
|
41
|
-
* @param updates - The partial configuration updates to apply
|
|
48
|
+
* @param updates - The partial server configuration updates to apply (can include template and instanceSelectionStrategy)
|
|
42
49
|
* @param currentServers - Current servers configuration object (will be modified)
|
|
43
|
-
* @returns True if the server was updated
|
|
50
|
+
* @returns True if the server was updated
|
|
44
51
|
*/
|
|
45
|
-
export declare function
|
|
52
|
+
export declare function updateServerTemplate(name: string, updates: Partial<ServerTemplate>, currentServers: Record<string, ServerConfig>): boolean;
|
|
46
53
|
/**
|
|
47
|
-
* Updates an existing server instance configuration
|
|
54
|
+
* Updates an existing server instance configuration.
|
|
48
55
|
*
|
|
49
56
|
* @param name - The name of the server containing the instance to update
|
|
50
|
-
* @param index - The index of the instance to update
|
|
51
|
-
* @param updates - The partial instance
|
|
52
|
-
* @param
|
|
53
|
-
* @returns True if the instance was updated
|
|
57
|
+
* @param index - The index of the instance to update
|
|
58
|
+
* @param updates - The partial instance updates to apply
|
|
59
|
+
* @param currentServers - Current servers configuration object (will be modified)
|
|
60
|
+
* @returns True if the instance was updated
|
|
54
61
|
*/
|
|
55
|
-
export declare function updateServerInstance(name: string, index: number, updates: Partial<
|
|
62
|
+
export declare function updateServerInstance(name: string, index: number | string, updates: Partial<ServerInstance>, currentServers: Record<string, ServerConfig>): boolean;
|
|
56
63
|
/**
|
|
57
64
|
* Removes a server configuration and all its instances from the system.
|
|
58
65
|
*
|
|
59
66
|
* @param name - The name of the server to remove
|
|
60
67
|
* @param currentServers - Current servers configuration object (will be modified)
|
|
61
|
-
* @
|
|
62
|
-
* @returns True if the server was removed, false if it didn't exist
|
|
68
|
+
* @returns True if the server was removed
|
|
63
69
|
*/
|
|
64
|
-
export declare function removeServer(name: string, currentServers: Record<string, ServerConfig
|
|
70
|
+
export declare function removeServer(name: string, currentServers: Record<string, ServerConfig>): boolean;
|
|
65
71
|
/**
|
|
66
72
|
* Removes a specific server instance from the system.
|
|
67
73
|
*
|
|
68
74
|
* @param name - The name of the server containing the instance to remove
|
|
69
|
-
* @param index - The index of the instance to remove
|
|
70
|
-
* @param
|
|
71
|
-
* @returns True if the instance was removed
|
|
75
|
+
* @param index - The index of the instance to remove
|
|
76
|
+
* @param currentServers - Current servers configuration object (will be modified)
|
|
77
|
+
* @returns True if the instance was removed
|
|
72
78
|
*/
|
|
73
|
-
export declare function removeServerInstance(name: string, index: number,
|
|
79
|
+
export declare function removeServerInstance(name: string, index: number | string, currentServers: Record<string, ServerConfig>): boolean;
|
|
74
80
|
//# sourceMappingURL=server-config-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-config-manager.d.ts","sourceRoot":"","sources":["../../../../src/config/server-config-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"server-config-manager.d.ts","sourceRoot":"","sources":["../../../../src/config/server-config-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAmDvF;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CAAE,CAAC,EACjE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CA+B9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAC/B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,YAAY,CAuCd;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,EACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,cAAc,CAahB;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,OAAO,CAkBT;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,OAAO,CAwCT;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,OAAO,CAiGT;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,OAAO,CAgBhG;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAC3C,OAAO,CAeT"}
|