@loop_ouroboros/mcp-hub-lite 1.0.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 +228 -0
- package/LICENSE +21 -0
- package/README.md +354 -0
- package/dist/client/assets/HomeView-f901HeKw.js +1 -0
- package/dist/client/assets/ResourceDetailView-BdOaL_-o.css +1 -0
- package/dist/client/assets/ResourceDetailView-Bz66ZjfY.js +1 -0
- package/dist/client/assets/ResourcesView-CjMklkyv.css +1 -0
- package/dist/client/assets/ResourcesView-lI_fItfA.js +1 -0
- package/dist/client/assets/ServerDashboard-7_8Og9JJ.css +1 -0
- package/dist/client/assets/ServerDashboard-Bgx8WVkx.js +2 -0
- package/dist/client/assets/ServerListView-Bws09jNR.css +1 -0
- package/dist/client/assets/ServerListView-CP6Ffkfx.js +30 -0
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +1 -0
- package/dist/client/assets/SessionsView-D68qKR4D.js +1 -0
- package/dist/client/assets/SettingsView-BPYfO9BE.js +1 -0
- package/dist/client/assets/ToolCallDialog-Br8FNebN.js +1 -0
- package/dist/client/assets/ToolCallDialog-C7eh7jHE.css +1 -0
- package/dist/client/assets/ToolsView-B6hUiR43.js +1 -0
- package/dist/client/assets/ToolsView-BLnU8cV6.css +1 -0
- package/dist/client/assets/_baseClone-DCmK847M.js +1 -0
- package/dist/client/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- package/dist/client/assets/el-form-item-BVMLpmVC.css +1 -0
- package/dist/client/assets/el-form-item-DM0q2hmO.js +12 -0
- package/dist/client/assets/el-input-BtI9NECe.js +1 -0
- package/dist/client/assets/el-input-CmuHb8HS.css +1 -0
- package/dist/client/assets/el-loading-CChNmKeI.js +1 -0
- package/dist/client/assets/el-loading-bpKhqqQq.css +1 -0
- package/dist/client/assets/el-overlay-B2ZKM6Up.css +1 -0
- package/dist/client/assets/el-overlay-lZZbPmsX.js +1 -0
- package/dist/client/assets/el-select-BXztu2b5.js +1 -0
- package/dist/client/assets/el-select-C0U_l4IZ.css +1 -0
- package/dist/client/assets/el-tab-pane-CnNoQHsR.css +1 -0
- package/dist/client/assets/el-tab-pane-Dy9ruaEX.js +1 -0
- package/dist/client/assets/el-table-column-98UyVgBH.js +1 -0
- package/dist/client/assets/el-table-column-T_mV9jNw.css +1 -0
- package/dist/client/assets/el-tag-B5lLT51E.js +1 -0
- package/dist/client/assets/el-tag-DjxZVOpb.css +1 -0
- package/dist/client/assets/event-BB_Ol6Sd.js +1 -0
- package/dist/client/assets/index-BgKcmWJr.js +1 -0
- package/dist/client/assets/index-BsDWtoIl.css +1 -0
- package/dist/client/assets/index-BzQXG7no.js +1 -0
- package/dist/client/assets/index-CSTs2jYk.js +2 -0
- package/dist/client/assets/omit-Bx5HJNV_.js +1 -0
- package/dist/client/assets/raf-B9VDMtMF.js +1 -0
- package/dist/client/assets/typescript-Bp3YSIOJ.js +1 -0
- package/dist/client/assets/vnode-B8aJx8u4.js +1 -0
- package/dist/client/assets/vue-vendor-6ny5zj9i.js +3 -0
- package/dist/client/index.html +15 -0
- package/dist/server/shared/index.d.ts +3 -0
- package/dist/server/shared/index.d.ts.map +1 -0
- package/dist/server/shared/index.js +2 -0
- package/dist/server/shared/models/index.d.ts +4 -0
- package/dist/server/shared/models/index.d.ts.map +1 -0
- package/dist/server/shared/models/index.js +3 -0
- package/dist/server/shared/models/resource.model.d.ts +8 -0
- package/dist/server/shared/models/resource.model.d.ts.map +1 -0
- package/dist/server/shared/models/resource.model.js +1 -0
- package/dist/server/shared/models/server.model.d.ts +57 -0
- package/dist/server/shared/models/server.model.d.ts.map +1 -0
- package/dist/server/shared/models/server.model.js +1 -0
- package/dist/server/shared/models/session.model.d.ts +73 -0
- package/dist/server/shared/models/session.model.d.ts.map +1 -0
- package/dist/server/shared/models/session.model.js +70 -0
- package/dist/server/shared/models/tool.model.d.ts +22 -0
- package/dist/server/shared/models/tool.model.d.ts.map +1 -0
- package/dist/server/shared/models/tool.model.js +1 -0
- package/dist/server/shared/types/client.types.d.ts +35 -0
- package/dist/server/shared/types/client.types.d.ts.map +1 -0
- package/dist/server/shared/types/client.types.js +5 -0
- package/dist/server/shared/types/common.types.d.ts +5 -0
- package/dist/server/shared/types/common.types.d.ts.map +1 -0
- package/dist/server/shared/types/common.types.js +2 -0
- package/dist/server/shared/types/index.d.ts +4 -0
- package/dist/server/shared/types/index.d.ts.map +1 -0
- package/dist/server/shared/types/index.js +3 -0
- package/dist/server/shared/types/session.types.d.ts +15 -0
- package/dist/server/shared/types/session.types.d.ts.map +1 -0
- package/dist/server/shared/types/session.types.js +5 -0
- package/dist/server/shared/types/websocket.types.d.ts +177 -0
- package/dist/server/shared/types/websocket.types.d.ts.map +1 -0
- package/dist/server/shared/types/websocket.types.js +25 -0
- package/dist/server/src/api/mcp/debug-response-wrapper.d.ts +13 -0
- package/dist/server/src/api/mcp/debug-response-wrapper.d.ts.map +1 -0
- package/dist/server/src/api/mcp/debug-response-wrapper.js +271 -0
- package/dist/server/src/api/mcp/gateway.d.ts +14 -0
- package/dist/server/src/api/mcp/gateway.d.ts.map +1 -0
- package/dist/server/src/api/mcp/gateway.js +116 -0
- package/dist/server/src/api/mcp/session-context-extractor.d.ts +47 -0
- package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -0
- package/dist/server/src/api/mcp/session-context-extractor.js +127 -0
- package/dist/server/src/api/mcp/sse-stream-manager.d.ts +13 -0
- package/dist/server/src/api/mcp/sse-stream-manager.d.ts.map +1 -0
- package/dist/server/src/api/mcp/sse-stream-manager.js +40 -0
- package/dist/server/src/api/web/clients.d.ts +30 -0
- package/dist/server/src/api/web/clients.d.ts.map +1 -0
- package/dist/server/src/api/web/clients.js +41 -0
- package/dist/server/src/api/web/config.d.ts +21 -0
- package/dist/server/src/api/web/config.d.ts.map +1 -0
- package/dist/server/src/api/web/config.js +119 -0
- package/dist/server/src/api/web/health.d.ts +21 -0
- package/dist/server/src/api/web/health.d.ts.map +1 -0
- package/dist/server/src/api/web/health.js +24 -0
- package/dist/server/src/api/web/hub-tools.d.ts +30 -0
- package/dist/server/src/api/web/hub-tools.d.ts.map +1 -0
- package/dist/server/src/api/web/hub-tools.js +202 -0
- package/dist/server/src/api/web/logs.d.ts +30 -0
- package/dist/server/src/api/web/logs.d.ts.map +1 -0
- package/dist/server/src/api/web/logs.js +141 -0
- package/dist/server/src/api/web/mcp-status.d.ts +29 -0
- package/dist/server/src/api/web/mcp-status.d.ts.map +1 -0
- package/dist/server/src/api/web/mcp-status.js +126 -0
- package/dist/server/src/api/web/resources.d.ts +28 -0
- package/dist/server/src/api/web/resources.d.ts.map +1 -0
- package/dist/server/src/api/web/resources.js +93 -0
- package/dist/server/src/api/web/search.d.ts +26 -0
- package/dist/server/src/api/web/search.d.ts.map +1 -0
- package/dist/server/src/api/web/search.js +62 -0
- package/dist/server/src/api/web/servers.d.ts +33 -0
- package/dist/server/src/api/web/servers.d.ts.map +1 -0
- package/dist/server/src/api/web/servers.js +235 -0
- package/dist/server/src/api/web/sessions.d.ts +29 -0
- package/dist/server/src/api/web/sessions.d.ts.map +1 -0
- package/dist/server/src/api/web/sessions.js +104 -0
- package/dist/server/src/api/ws/events.d.ts +29 -0
- package/dist/server/src/api/ws/events.d.ts.map +1 -0
- package/dist/server/src/api/ws/events.js +44 -0
- package/dist/server/src/api/ws/ws-handler.d.ts +83 -0
- package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -0
- package/dist/server/src/api/ws/ws-handler.js +217 -0
- package/dist/server/src/app.d.ts +24 -0
- package/dist/server/src/app.d.ts.map +1 -0
- package/dist/server/src/app.js +108 -0
- package/dist/server/src/cli/commands/list.d.ts +71 -0
- package/dist/server/src/cli/commands/list.d.ts.map +1 -0
- package/dist/server/src/cli/commands/list.js +97 -0
- package/dist/server/src/cli/commands/restart.d.ts +42 -0
- package/dist/server/src/cli/commands/restart.d.ts.map +1 -0
- package/dist/server/src/cli/commands/restart.js +61 -0
- package/dist/server/src/cli/commands/start.d.ts +43 -0
- package/dist/server/src/cli/commands/start.d.ts.map +1 -0
- package/dist/server/src/cli/commands/start.js +160 -0
- package/dist/server/src/cli/commands/status.d.ts +39 -0
- package/dist/server/src/cli/commands/status.d.ts.map +1 -0
- package/dist/server/src/cli/commands/status.js +164 -0
- package/dist/server/src/cli/commands/stop.d.ts +34 -0
- package/dist/server/src/cli/commands/stop.d.ts.map +1 -0
- package/dist/server/src/cli/commands/stop.js +47 -0
- package/dist/server/src/cli/commands/ui.d.ts +44 -0
- package/dist/server/src/cli/commands/ui.d.ts.map +1 -0
- package/dist/server/src/cli/commands/ui.js +95 -0
- package/dist/server/src/cli/index.d.ts +62 -0
- package/dist/server/src/cli/index.d.ts.map +1 -0
- package/dist/server/src/cli/index.js +88 -0
- package/dist/server/src/cli/parse-args.d.ts +108 -0
- package/dist/server/src/cli/parse-args.d.ts.map +1 -0
- package/dist/server/src/cli/parse-args.js +131 -0
- package/dist/server/src/cli/server.d.ts +171 -0
- package/dist/server/src/cli/server.d.ts.map +1 -0
- package/dist/server/src/cli/server.js +246 -0
- package/dist/server/src/config/config-change-logger.d.ts +16 -0
- package/dist/server/src/config/config-change-logger.d.ts.map +1 -0
- package/dist/server/src/config/config-change-logger.js +43 -0
- package/dist/server/src/config/config-loader.d.ts +22 -0
- package/dist/server/src/config/config-loader.d.ts.map +1 -0
- package/dist/server/src/config/config-loader.js +66 -0
- package/dist/server/src/config/config-manager.d.ts +158 -0
- package/dist/server/src/config/config-manager.d.ts.map +1 -0
- package/dist/server/src/config/config-manager.js +246 -0
- package/dist/server/src/config/config-saver.d.ts +16 -0
- package/dist/server/src/config/config-saver.d.ts.map +1 -0
- package/dist/server/src/config/config-saver.js +28 -0
- package/dist/server/src/config/config.schema.d.ts +108 -0
- package/dist/server/src/config/config.schema.d.ts.map +1 -0
- package/dist/server/src/config/config.schema.js +103 -0
- package/dist/server/src/config/server-config-manager.d.ts +74 -0
- package/dist/server/src/config/server-config-manager.d.ts.map +1 -0
- package/dist/server/src/config/server-config-manager.js +157 -0
- package/dist/server/src/config/type-converter.d.ts +13 -0
- package/dist/server/src/config/type-converter.d.ts.map +1 -0
- package/dist/server/src/config/type-converter.js +37 -0
- package/dist/server/src/index.d.ts +3 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/index.js +352 -0
- package/dist/server/src/models/event.model.d.ts +106 -0
- package/dist/server/src/models/event.model.d.ts.map +1 -0
- package/dist/server/src/models/event.model.js +5 -0
- package/dist/server/src/models/server.model.d.ts +19 -0
- package/dist/server/src/models/server.model.d.ts.map +1 -0
- package/dist/server/src/models/server.model.js +1 -0
- package/dist/server/src/models/system-tools.constants.d.ts +73 -0
- package/dist/server/src/models/system-tools.constants.d.ts.map +1 -0
- package/dist/server/src/models/system-tools.constants.js +31 -0
- package/dist/server/src/models/types.d.ts +84 -0
- package/dist/server/src/models/types.d.ts.map +1 -0
- package/dist/server/src/models/types.js +67 -0
- package/dist/server/src/pid/file.d.ts +26 -0
- package/dist/server/src/pid/file.d.ts.map +1 -0
- package/dist/server/src/pid/file.js +68 -0
- package/dist/server/src/pid/manager.d.ts +98 -0
- package/dist/server/src/pid/manager.d.ts.map +1 -0
- package/dist/server/src/pid/manager.js +158 -0
- package/dist/server/src/pid/types.d.ts +13 -0
- package/dist/server/src/pid/types.d.ts.map +1 -0
- package/dist/server/src/pid/types.js +4 -0
- package/dist/server/src/server/dev-server.d.ts +2 -0
- package/dist/server/src/server/dev-server.d.ts.map +1 -0
- package/dist/server/src/server/dev-server.js +171 -0
- package/dist/server/src/server/runner.d.ts +57 -0
- package/dist/server/src/server/runner.d.ts.map +1 -0
- package/dist/server/src/server/runner.js +163 -0
- package/dist/server/src/services/client-tracker.service.d.ts +132 -0
- package/dist/server/src/services/client-tracker.service.d.ts.map +1 -0
- package/dist/server/src/services/client-tracker.service.js +203 -0
- package/dist/server/src/services/connection/connection-manager.d.ts +478 -0
- package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -0
- package/dist/server/src/services/connection/connection-manager.js +929 -0
- package/dist/server/src/services/connection/index.d.ts +6 -0
- package/dist/server/src/services/connection/index.d.ts.map +1 -0
- package/dist/server/src/services/connection/index.js +4 -0
- package/dist/server/src/services/connection/tool-cache.d.ts +122 -0
- package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -0
- package/dist/server/src/services/connection/tool-cache.js +202 -0
- package/dist/server/src/services/connection/types.d.ts +30 -0
- package/dist/server/src/services/connection/types.d.ts.map +1 -0
- package/dist/server/src/services/connection/types.js +1 -0
- package/dist/server/src/services/event-bus.service.d.ts +169 -0
- package/dist/server/src/services/event-bus.service.d.ts.map +1 -0
- package/dist/server/src/services/event-bus.service.js +200 -0
- package/dist/server/src/services/gateway/gateway.service.d.ts +61 -0
- package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -0
- package/dist/server/src/services/gateway/gateway.service.js +107 -0
- package/dist/server/src/services/gateway/index.d.ts +8 -0
- package/dist/server/src/services/gateway/index.d.ts.map +1 -0
- package/dist/server/src/services/gateway/index.js +6 -0
- package/dist/server/src/services/gateway/log-formatter.d.ts +26 -0
- package/dist/server/src/services/gateway/log-formatter.d.ts.map +1 -0
- package/dist/server/src/services/gateway/log-formatter.js +66 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts +13 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +131 -0
- package/dist/server/src/services/gateway/request-handlers/index.d.ts +9 -0
- package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/index.js +8 -0
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +85 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.js +56 -0
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +228 -0
- package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/tools-handler.js +79 -0
- package/dist/server/src/services/gateway/tool-list-generator.d.ts +23 -0
- package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -0
- package/dist/server/src/services/gateway/tool-list-generator.js +115 -0
- package/dist/server/src/services/gateway/types.d.ts +27 -0
- package/dist/server/src/services/gateway/types.d.ts.map +1 -0
- package/dist/server/src/services/gateway/types.js +4 -0
- package/dist/server/src/services/gateway.service.d.ts +7 -0
- package/dist/server/src/services/gateway.service.d.ts.map +1 -0
- package/dist/server/src/services/gateway.service.js +6 -0
- package/dist/server/src/services/hub-manager.service.d.ts +299 -0
- package/dist/server/src/services/hub-manager.service.d.ts.map +1 -0
- package/dist/server/src/services/hub-manager.service.js +413 -0
- package/dist/server/src/services/hub-tools/index.d.ts +10 -0
- package/dist/server/src/services/hub-tools/index.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/index.js +6 -0
- package/dist/server/src/services/hub-tools/resource-generator.d.ts +63 -0
- package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/resource-generator.js +141 -0
- package/dist/server/src/services/hub-tools/server-selector.d.ts +63 -0
- package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/server-selector.js +108 -0
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +47 -0
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/system-tool-definitions.js +225 -0
- package/dist/server/src/services/hub-tools/tool-search.d.ts +85 -0
- package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/tool-search.js +115 -0
- package/dist/server/src/services/hub-tools/types.d.ts +42 -0
- package/dist/server/src/services/hub-tools/types.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/types.js +1 -0
- package/dist/server/src/services/hub-tools.service.d.ts +235 -0
- package/dist/server/src/services/hub-tools.service.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools.service.js +457 -0
- package/dist/server/src/services/log-storage.service.d.ts +177 -0
- package/dist/server/src/services/log-storage.service.d.ts.map +1 -0
- package/dist/server/src/services/log-storage.service.js +243 -0
- package/dist/server/src/services/mcp-connection-manager.d.ts +7 -0
- package/dist/server/src/services/mcp-connection-manager.d.ts.map +1 -0
- package/dist/server/src/services/mcp-connection-manager.js +6 -0
- package/dist/server/src/services/mcp-session-manager.d.ts +6 -0
- package/dist/server/src/services/mcp-session-manager.d.ts.map +1 -0
- package/dist/server/src/services/mcp-session-manager.js +4 -0
- package/dist/server/src/services/search/index.d.ts +5 -0
- package/dist/server/src/services/search/index.d.ts.map +1 -0
- package/dist/server/src/services/search/index.js +5 -0
- package/dist/server/src/services/search/search-cache.d.ts +132 -0
- package/dist/server/src/services/search/search-cache.d.ts.map +1 -0
- package/dist/server/src/services/search/search-cache.js +151 -0
- package/dist/server/src/services/search/search-core.service.d.ts +108 -0
- package/dist/server/src/services/search/search-core.service.d.ts.map +1 -0
- package/dist/server/src/services/search/search-core.service.js +187 -0
- package/dist/server/src/services/search/search-scorer.d.ts +54 -0
- package/dist/server/src/services/search/search-scorer.d.ts.map +1 -0
- package/dist/server/src/services/search/search-scorer.js +83 -0
- package/dist/server/src/services/search/types.d.ts +20 -0
- package/dist/server/src/services/search/types.d.ts.map +1 -0
- package/dist/server/src/services/search/types.js +1 -0
- package/dist/server/src/services/session/index.d.ts +6 -0
- package/dist/server/src/services/session/index.d.ts.map +1 -0
- package/dist/server/src/services/session/index.js +4 -0
- package/dist/server/src/services/session/session-manager.d.ts +352 -0
- package/dist/server/src/services/session/session-manager.d.ts.map +1 -0
- package/dist/server/src/services/session/session-manager.js +835 -0
- package/dist/server/src/services/session/types.d.ts +32 -0
- package/dist/server/src/services/session/types.d.ts.map +1 -0
- package/dist/server/src/services/session/types.js +1 -0
- package/dist/server/src/services/simple-search.service.d.ts +67 -0
- package/dist/server/src/services/simple-search.service.d.ts.map +1 -0
- package/dist/server/src/services/simple-search.service.js +82 -0
- package/dist/server/src/services/system-tool-handler.d.ts +10 -0
- package/dist/server/src/services/system-tool-handler.d.ts.map +1 -0
- package/dist/server/src/services/system-tool-handler.js +77 -0
- package/dist/server/src/utils/error-handler.d.ts +18 -0
- package/dist/server/src/utils/error-handler.d.ts.map +1 -0
- package/dist/server/src/utils/error-handler.js +59 -0
- package/dist/server/src/utils/format-utils.d.ts +23 -0
- package/dist/server/src/utils/format-utils.d.ts.map +1 -0
- package/dist/server/src/utils/format-utils.js +58 -0
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/server/src/utils/index.js +1 -0
- package/dist/server/src/utils/json-utils.d.ts +82 -0
- package/dist/server/src/utils/json-utils.d.ts.map +1 -0
- package/dist/server/src/utils/json-utils.js +204 -0
- package/dist/server/src/utils/log-rotator.d.ts +223 -0
- package/dist/server/src/utils/log-rotator.d.ts.map +1 -0
- package/dist/server/src/utils/log-rotator.js +306 -0
- package/dist/server/src/utils/logger/dev-logger.d.ts +39 -0
- package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -0
- package/dist/server/src/utils/logger/dev-logger.js +63 -0
- package/dist/server/src/utils/logger/index.d.ts +36 -0
- package/dist/server/src/utils/logger/index.d.ts.map +1 -0
- package/dist/server/src/utils/logger/index.js +46 -0
- package/dist/server/src/utils/logger/log-colors.d.ts +27 -0
- package/dist/server/src/utils/logger/log-colors.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-colors.js +41 -0
- package/dist/server/src/utils/logger/log-context.d.ts +13 -0
- package/dist/server/src/utils/logger/log-context.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-context.js +5 -0
- package/dist/server/src/utils/logger/log-formatter.d.ts +47 -0
- package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-formatter.js +150 -0
- package/dist/server/src/utils/logger/log-modules.d.ts +141 -0
- package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-modules.js +81 -0
- package/dist/server/src/utils/logger/log-output.d.ts +68 -0
- package/dist/server/src/utils/logger/log-output.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-output.js +320 -0
- package/dist/server/src/utils/logger/logger.d.ts +190 -0
- package/dist/server/src/utils/logger/logger.d.ts.map +1 -0
- package/dist/server/src/utils/logger/logger.js +350 -0
- package/dist/server/src/utils/logger.d.ts +12 -0
- package/dist/server/src/utils/logger.d.ts.map +1 -0
- package/dist/server/src/utils/logger.js +12 -0
- package/dist/server/src/utils/mcp-error-handler.d.ts +162 -0
- package/dist/server/src/utils/mcp-error-handler.d.ts.map +1 -0
- package/dist/server/src/utils/mcp-error-handler.js +270 -0
- package/dist/server/src/utils/port-checker.d.ts +16 -0
- package/dist/server/src/utils/port-checker.d.ts.map +1 -0
- package/dist/server/src/utils/port-checker.js +242 -0
- package/dist/server/src/utils/request-context.d.ts +71 -0
- package/dist/server/src/utils/request-context.d.ts.map +1 -0
- package/dist/server/src/utils/request-context.js +73 -0
- package/dist/server/src/utils/tool-args-parser.d.ts +17 -0
- package/dist/server/src/utils/tool-args-parser.d.ts.map +1 -0
- package/dist/server/src/utils/tool-args-parser.js +34 -0
- package/dist/server/src/utils/transports/sse-transport.d.ts +104 -0
- package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -0
- package/dist/server/src/utils/transports/sse-transport.js +189 -0
- package/dist/server/src/utils/transports/stdio-transport.d.ts +122 -0
- package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -0
- package/dist/server/src/utils/transports/stdio-transport.js +324 -0
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts +146 -0
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -0
- package/dist/server/src/utils/transports/streamable-http-transport.js +212 -0
- package/dist/server/src/utils/transports/transport-factory.d.ts +26 -0
- package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -0
- package/dist/server/src/utils/transports/transport-factory.js +104 -0
- package/dist/server/src/utils/transports/transport.interface.d.ts +35 -0
- package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -0
- package/dist/server/src/utils/transports/transport.interface.js +1 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts +2 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts.map +1 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.js +103 -0
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts +2 -0
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts.map +1 -0
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +181 -0
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts +2 -0
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts.map +1 -0
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +155 -0
- package/dist/server/tests/evaluation/evaluation.test.d.ts +2 -0
- package/dist/server/tests/evaluation/evaluation.test.d.ts.map +1 -0
- package/dist/server/tests/evaluation/evaluation.test.js +102 -0
- package/dist/server/tests/helpers/sdk-test-helpers.d.ts +32 -0
- package/dist/server/tests/helpers/sdk-test-helpers.d.ts.map +1 -0
- package/dist/server/tests/helpers/sdk-test-helpers.js +82 -0
- package/dist/server/tests/integration/api/gateway.test.d.ts +2 -0
- package/dist/server/tests/integration/api/gateway.test.d.ts.map +1 -0
- package/dist/server/tests/integration/api/gateway.test.js +366 -0
- package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts +2 -0
- package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts.map +1 -0
- package/dist/server/tests/integration/gateway/fault-tolerance.test.js +109 -0
- package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts +2 -0
- package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts.map +1 -0
- package/dist/server/tests/integration/gateway/mcp-connection.test.js +149 -0
- package/dist/server/tests/server.test.d.ts +2 -0
- package/dist/server/tests/server.test.d.ts.map +1 -0
- package/dist/server/tests/server.test.js +95 -0
- package/dist/server/tests/setup.d.ts +7 -0
- package/dist/server/tests/setup.d.ts.map +1 -0
- package/dist/server/tests/setup.js +53 -0
- package/dist/server/tests/types/logger-test-helpers.d.ts +17 -0
- package/dist/server/tests/types/logger-test-helpers.d.ts.map +1 -0
- package/dist/server/tests/types/logger-test-helpers.js +4 -0
- package/dist/server/tests/types/test-helpers.d.ts +27 -0
- package/dist/server/tests/types/test-helpers.d.ts.map +1 -0
- package/dist/server/tests/types/test-helpers.js +4 -0
- package/dist/server/tests/unit/cli/basic-cli.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/basic-cli.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/basic-cli.test.js +33 -0
- package/dist/server/tests/unit/cli/cli.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/cli.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/cli.test.js +17 -0
- package/dist/server/tests/unit/cli/commands.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/commands.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/commands.test.js +75 -0
- package/dist/server/tests/unit/cli/server.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/server.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/server.test.js +68 -0
- package/dist/server/tests/unit/server/runner.test.d.ts +2 -0
- package/dist/server/tests/unit/server/runner.test.d.ts.map +1 -0
- package/dist/server/tests/unit/server/runner.test.js +488 -0
- package/dist/server/tests/unit/server/setup.d.ts +2 -0
- package/dist/server/tests/unit/server/setup.d.ts.map +1 -0
- package/dist/server/tests/unit/server/setup.js +21 -0
- package/dist/server/tests/unit/services/gateway-logging.test.d.ts +2 -0
- package/dist/server/tests/unit/services/gateway-logging.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/gateway-logging.test.js +47 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.js +140 -0
- package/dist/server/tests/unit/services/hub-manager.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-manager.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-manager.test.js +98 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.js +674 -0
- package/dist/server/tests/unit/services/search/search-cache.test.d.ts +2 -0
- package/dist/server/tests/unit/services/search/search-cache.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/search/search-cache.test.js +58 -0
- package/dist/server/tests/unit/services/search/search-core.service.test.d.ts +2 -0
- package/dist/server/tests/unit/services/search/search-core.service.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/search/search-core.service.test.js +84 -0
- package/dist/server/tests/unit/services/search/search-scorer.test.d.ts +2 -0
- package/dist/server/tests/unit/services/search/search-scorer.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/search/search-scorer.test.js +97 -0
- package/dist/server/tests/unit/services/session-manager.test.d.ts +2 -0
- package/dist/server/tests/unit/services/session-manager.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/session-manager.test.js +481 -0
- package/dist/server/tests/unit/utils/config.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/config.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/config.test.js +634 -0
- package/dist/server/tests/unit/utils/json-utils.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/json-utils.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/json-utils.test.js +296 -0
- package/dist/server/tests/unit/utils/log-rotator.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/log-rotator.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/log-rotator.test.js +296 -0
- package/dist/server/tests/unit/utils/logger.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/logger.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/logger.test.js +462 -0
- package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/mcp-error-handler.test.js +163 -0
- package/dist/server/tests/unit/utils/request-context.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/request-context.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/request-context.test.js +82 -0
- package/dist/server/vite.config.d.ts +3 -0
- package/dist/server/vite.config.d.ts.map +1 -0
- package/dist/server/vite.config.js +160 -0
- package/dist/server/vitest.config.d.ts +3 -0
- package/dist/server/vitest.config.d.ts.map +1 -0
- package/dist/server/vitest.config.js +53 -0
- package/package.json +113 -0
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
import { hubManager } from './hub-manager.service.js';
|
|
2
|
+
import { mcpConnectionManager } from './mcp-connection-manager.js';
|
|
3
|
+
import { eventBus, EventTypes } from './event-bus.service.js';
|
|
4
|
+
import { gateway } from './gateway.service.js';
|
|
5
|
+
import { logger, LOG_MODULES } from '../utils/logger.js';
|
|
6
|
+
import { stringifyForLogging } from '../utils/json-utils.js';
|
|
7
|
+
import { MCP_HUB_LITE_SERVER, LIST_SERVERS_TOOL, FIND_SERVERS_TOOL, LIST_ALL_TOOLS_IN_SERVER_TOOL, FIND_TOOLS_IN_SERVER_TOOL, GET_TOOL_TOOL, CALL_TOOL_TOOL, FIND_TOOLS_TOOL, SYSTEM_TOOL_NAMES } from '../models/system-tools.constants.js';
|
|
8
|
+
import { ToolArgsParser } from '../utils/tool-args-parser.js';
|
|
9
|
+
import { hasValidId, selectBestInstance, getSystemTools, findServers as findServersUtil, findToolsInServer as findToolsInServerUtil, findTools as findToolsUtil, generateDynamicResources, readResource as readResourceUtil } from './hub-tools/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* Central service for managing system tools and MCP server interactions in the MCP Hub Lite gateway.
|
|
12
|
+
*
|
|
13
|
+
* The HubToolsService provides a unified interface for discovering, managing, and interacting with
|
|
14
|
+
* all connected MCP (Model Context Protocol) servers. It serves as the primary orchestration layer
|
|
15
|
+
* between client applications and the underlying MCP infrastructure, offering both system-level
|
|
16
|
+
* management capabilities and direct tool execution functionality.
|
|
17
|
+
*
|
|
18
|
+
* ## Core Responsibilities
|
|
19
|
+
*
|
|
20
|
+
* - **System Tool Management**: Exposes a standardized set of system tools for server discovery and management
|
|
21
|
+
* - **Tool Discovery**: Enables searching and listing tools across all connected MCP servers
|
|
22
|
+
* - **Tool Execution**: Provides safe, monitored execution of tools with comprehensive event tracking
|
|
23
|
+
* - **Resource Management**: Dynamically generates and serves virtual resources representing server state
|
|
24
|
+
* - **Instance Selection**: Handles intelligent server instance selection for multi-instance scenarios
|
|
25
|
+
* - **Error Handling**: Implements consistent error handling and logging across all operations
|
|
26
|
+
*
|
|
27
|
+
* ## System Tools Provided
|
|
28
|
+
*
|
|
29
|
+
* The service exposes the following system tools through the `getSystemTools()` method:
|
|
30
|
+
* - `list-servers`: Retrieve all connected server names
|
|
31
|
+
* - `find-servers`: Search servers by pattern matching
|
|
32
|
+
* - `list-all-tools-in-server`: List all tools from a specific server
|
|
33
|
+
* - `find-tools-in-server`: Search tools within a specific server
|
|
34
|
+
* - `get-tool`: Retrieve complete schema for a specific tool
|
|
35
|
+
* - `call-tool`: Execute a tool on a specific server
|
|
36
|
+
* - `find-tools`: Search tools across all connected servers
|
|
37
|
+
*
|
|
38
|
+
* ## Architecture Integration
|
|
39
|
+
*
|
|
40
|
+
* This service integrates tightly with other core components:
|
|
41
|
+
* - **HubManagerService**: For server configuration and instance management
|
|
42
|
+
* - **McpConnectionManager**: For actual tool execution and connection management
|
|
43
|
+
* - **EventBusService**: For publishing tool call events and system notifications
|
|
44
|
+
* - **GatewayService**: For system tool routing and aggregation
|
|
45
|
+
*
|
|
46
|
+
* All operations include comprehensive logging, error handling, and event publishing
|
|
47
|
+
* to support observability, debugging, and monitoring of the MCP Hub Lite system.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const hubTools = new HubToolsService();
|
|
52
|
+
*
|
|
53
|
+
* // List all connected servers
|
|
54
|
+
* const servers = await hubTools.listServers();
|
|
55
|
+
*
|
|
56
|
+
* // Call a tool on a specific server
|
|
57
|
+
* const result = await hubTools.callTool('file-system-server', 'list-files', { directory: '/home' });
|
|
58
|
+
*
|
|
59
|
+
* // Search for tools across all servers
|
|
60
|
+
* const matchingTools = await hubTools.findTools('search');
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export class HubToolsService {
|
|
64
|
+
/**
|
|
65
|
+
* Cached dynamic resource list to avoid regenerating on every request
|
|
66
|
+
*/
|
|
67
|
+
generatedResourcesCache = null;
|
|
68
|
+
constructor() {
|
|
69
|
+
// Listen for server status change events to invalidate resource cache
|
|
70
|
+
eventBus.subscribe(EventTypes.SERVER_STATUS_CHANGE, () => {
|
|
71
|
+
this.generatedResourcesCache = null;
|
|
72
|
+
});
|
|
73
|
+
eventBus.subscribe(EventTypes.SERVER_CONNECTED, () => {
|
|
74
|
+
this.generatedResourcesCache = null;
|
|
75
|
+
});
|
|
76
|
+
eventBus.subscribe(EventTypes.SERVER_DISCONNECTED, () => {
|
|
77
|
+
this.generatedResourcesCache = null;
|
|
78
|
+
});
|
|
79
|
+
eventBus.subscribe(EventTypes.RESOURCES_UPDATED, () => {
|
|
80
|
+
this.generatedResourcesCache = null;
|
|
81
|
+
});
|
|
82
|
+
eventBus.subscribe(EventTypes.TOOLS_UPDATED, () => {
|
|
83
|
+
this.generatedResourcesCache = null;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Retrieves the complete list of system tools provided by this service.
|
|
88
|
+
*
|
|
89
|
+
* This method generates system tool configurations based on the SYSTEM_TOOL_NAMES constant,
|
|
90
|
+
* ensuring consistency with the defined system tool names. Each tool includes its name,
|
|
91
|
+
* description, input schema, and annotations for proper client-side rendering and behavior.
|
|
92
|
+
*
|
|
93
|
+
* @returns {Array<{ name: string; description: string; inputSchema: JsonSchema; annotations?: ToolAnnotations }>}
|
|
94
|
+
* Array of system tool configurations
|
|
95
|
+
*/
|
|
96
|
+
getSystemTools() {
|
|
97
|
+
return getSystemTools();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Lists all connected MCP servers by name.
|
|
101
|
+
*
|
|
102
|
+
* This method retrieves all configured servers from the hub manager, filters out
|
|
103
|
+
* invalid entries using the hasValidId type guard, and returns an array of server names.
|
|
104
|
+
* It provides a simple way to discover available servers in the system.
|
|
105
|
+
*
|
|
106
|
+
* @returns {Promise<string[]>} Array of connected server names
|
|
107
|
+
*/
|
|
108
|
+
async listServers() {
|
|
109
|
+
const servers = hubManager.getAllServers();
|
|
110
|
+
return servers.filter(hasValidId).map((server) => server.name);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Finds servers matching a specified regex pattern.
|
|
114
|
+
*
|
|
115
|
+
* This method searches through all configured servers using the provided regex pattern,
|
|
116
|
+
* supporting flexible search options including case sensitivity and search scope
|
|
117
|
+
* (name, description, or both). It returns an array of matching server names.
|
|
118
|
+
*
|
|
119
|
+
* @param {FindServersParams} args - Search parameters
|
|
120
|
+
* @returns {Promise<string[]>} Array of matching server names
|
|
121
|
+
*/
|
|
122
|
+
async findServers(args) {
|
|
123
|
+
return findServersUtil(args.pattern, args.searchIn, args.caseSensitive);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Lists all tools available from a specific MCP server.
|
|
127
|
+
*
|
|
128
|
+
* This method retrieves all tools from the specified server, handling both regular
|
|
129
|
+
* MCP servers and the special MCP Hub Lite server (which returns system tools).
|
|
130
|
+
* It uses the selectBestInstance function to resolve server names to instances
|
|
131
|
+
* and leverages the MCP connection manager for tool retrieval.
|
|
132
|
+
*
|
|
133
|
+
* @param {ListAllToolsInServerParams} args - Server name and request options
|
|
134
|
+
* @returns {Promise<{ serverName: string; tools: Tool[] }>} Object containing server name and tools array
|
|
135
|
+
* @throws {Error} If the specified server is not found or not connected
|
|
136
|
+
*/
|
|
137
|
+
async listAllToolsInServer(args) {
|
|
138
|
+
// Handle MCP Hub Lite server (return system tools list)
|
|
139
|
+
if (typeof args.serverName === 'string' && args.serverName === MCP_HUB_LITE_SERVER) {
|
|
140
|
+
// Generate tool list using the same logic as tools/list
|
|
141
|
+
const toolMap = new Map();
|
|
142
|
+
const gatewayTools = gateway.generateGatewayToolsList(toolMap);
|
|
143
|
+
// Convert to Tool format
|
|
144
|
+
const tools = gatewayTools.map((tool) => ({
|
|
145
|
+
name: tool.name,
|
|
146
|
+
description: tool.description,
|
|
147
|
+
inputSchema: tool.inputSchema,
|
|
148
|
+
serverName: MCP_HUB_LITE_SERVER,
|
|
149
|
+
annotations: tool.annotations
|
|
150
|
+
}));
|
|
151
|
+
return {
|
|
152
|
+
serverName: args.serverName,
|
|
153
|
+
tools
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
const serverInfo = selectBestInstance(args.serverName, args.requestOptions);
|
|
157
|
+
if (!serverInfo) {
|
|
158
|
+
throw new Error(`Server not found: ${args.serverName}`);
|
|
159
|
+
}
|
|
160
|
+
// Get instance ID
|
|
161
|
+
const serverId = serverInfo.instance.id;
|
|
162
|
+
// Get tool list from connection manager
|
|
163
|
+
const tools = mcpConnectionManager.getTools(serverId);
|
|
164
|
+
return {
|
|
165
|
+
serverName: args.serverName,
|
|
166
|
+
tools
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Finds tools matching a pattern within a specific MCP server.
|
|
171
|
+
*
|
|
172
|
+
* This method searches through all tools available from the specified server using
|
|
173
|
+
* the provided regex pattern, supporting flexible search options including case
|
|
174
|
+
* sensitivity and search scope (name, description, or both). It returns matching
|
|
175
|
+
* tools grouped by server name.
|
|
176
|
+
*
|
|
177
|
+
* @param {FindToolsInServerParams} args - Search parameters
|
|
178
|
+
* @returns {Promise<{ serverName: string; tools: Tool[] }>} Object containing server name and matching tools
|
|
179
|
+
* @throws {Error} If the specified server is not found or not connected
|
|
180
|
+
*/
|
|
181
|
+
async findToolsInServer(args) {
|
|
182
|
+
return findToolsInServerUtil(args.serverName, args.pattern, args.searchIn, args.caseSensitive, args.requestOptions);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Retrieves the complete schema for a specific tool from a specific server.
|
|
186
|
+
*
|
|
187
|
+
* This method returns the full tool definition including name, description, input schema,
|
|
188
|
+
* and any annotations. It's useful for clients that need detailed information about
|
|
189
|
+
* a tool's capabilities and expected parameters before execution.
|
|
190
|
+
*
|
|
191
|
+
* @param {GetToolParams} args - Tool retrieval parameters
|
|
192
|
+
* @returns {Promise<Tool | undefined>} Complete tool schema or undefined if not found
|
|
193
|
+
* @throws {Error} If the specified server is not found or not connected
|
|
194
|
+
*/
|
|
195
|
+
async getTool(args) {
|
|
196
|
+
const serverInfo = selectBestInstance(args.serverName, args.requestOptions);
|
|
197
|
+
if (!serverInfo) {
|
|
198
|
+
throw new Error(`Server not found: ${args.serverName}`);
|
|
199
|
+
}
|
|
200
|
+
const tools = mcpConnectionManager.getTools(serverInfo.instance.id);
|
|
201
|
+
return tools.find((tool) => tool.name === args.toolName);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Calls a specific system tool directly with type-safe conditional return types.
|
|
205
|
+
*
|
|
206
|
+
* This method provides a unified entry point for all system tool calls, using TypeScript's
|
|
207
|
+
* conditional types to ensure type safety based on the tool name. It handles logging,
|
|
208
|
+
* error handling, and delegates to the appropriate internal methods based on the tool name.
|
|
209
|
+
*
|
|
210
|
+
* @param {T} toolName - System tool name with generic type constraint
|
|
211
|
+
* @param {SystemToolArgs} toolArgs - Type-safe arguments based on tool name
|
|
212
|
+
* @returns {Promise<ConditionalReturnType>} Tool execution result with accurate type safety matching actual method return types
|
|
213
|
+
* @throws {Error} If the system tool is not found or execution fails
|
|
214
|
+
*/
|
|
215
|
+
async callSystemTool(toolName, toolArgs) {
|
|
216
|
+
logger.debug(`System tool called: ${toolName}, args=${stringifyForLogging(toolArgs)}`, LOG_MODULES.HUB_TOOLS);
|
|
217
|
+
try {
|
|
218
|
+
let result;
|
|
219
|
+
switch (toolName) {
|
|
220
|
+
case LIST_SERVERS_TOOL:
|
|
221
|
+
result = await this.listServers();
|
|
222
|
+
break;
|
|
223
|
+
case FIND_SERVERS_TOOL: {
|
|
224
|
+
result = await this.findServers(toolArgs);
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
case LIST_ALL_TOOLS_IN_SERVER_TOOL: {
|
|
228
|
+
result = await this.listAllToolsInServer(toolArgs);
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
case FIND_TOOLS_IN_SERVER_TOOL: {
|
|
232
|
+
result = await this.findToolsInServer(toolArgs);
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
case GET_TOOL_TOOL: {
|
|
236
|
+
result = await this.getTool(toolArgs);
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
case CALL_TOOL_TOOL: {
|
|
240
|
+
const callToolArgs = toolArgs;
|
|
241
|
+
let serverName = callToolArgs.serverName;
|
|
242
|
+
if (!serverName || serverName === 'undefined') {
|
|
243
|
+
serverName = MCP_HUB_LITE_SERVER;
|
|
244
|
+
}
|
|
245
|
+
result = await this.callTool({
|
|
246
|
+
...callToolArgs,
|
|
247
|
+
serverName
|
|
248
|
+
});
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
case FIND_TOOLS_TOOL: {
|
|
252
|
+
result = await this.findTools(toolArgs);
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
default:
|
|
256
|
+
throw new Error(`System tool "${toolName}" not found`);
|
|
257
|
+
}
|
|
258
|
+
logger.debug(`System tool SUCCESS: ${toolName}`, LOG_MODULES.HUB_TOOLS);
|
|
259
|
+
// Type assertion based on toolName to match the expected return type
|
|
260
|
+
return result;
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
logger.error(`System tool FAILED: ${toolName}, error=${error instanceof Error ? error.message : String(error)}`, error, LOG_MODULES.HUB_TOOLS);
|
|
264
|
+
throw error;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Calls a specific tool from a specific MCP server with comprehensive event tracking.
|
|
269
|
+
*
|
|
270
|
+
* This method handles both regular MCP server tool calls and system tool calls (when
|
|
271
|
+
* serverName is 'mcp-hub-lite'). It publishes TOOL_CALL_STARTED, TOOL_CALL_COMPLETED,
|
|
272
|
+
* and TOOL_CALL_ERROR events for monitoring and debugging purposes, and includes
|
|
273
|
+
* detailed logging for observability.
|
|
274
|
+
*
|
|
275
|
+
* @param {CallToolParams} args - Tool call parameters
|
|
276
|
+
* @returns {Promise<unknown>} Tool execution result as returned by the server
|
|
277
|
+
* @throws {Error} If the server is not found, not connected, or tool execution fails
|
|
278
|
+
*/
|
|
279
|
+
async callTool(args) {
|
|
280
|
+
let { serverName, toolName } = args;
|
|
281
|
+
const { toolArgs, requestOptions } = args;
|
|
282
|
+
// Parse prefixed tool names (like mcp__mcp-hub-lite__xxx) if applicable
|
|
283
|
+
const parsedTool = ToolArgsParser.parsePrefixedToolName(toolName);
|
|
284
|
+
if (parsedTool) {
|
|
285
|
+
logger.debug(`Parsed prefixed tool name: "${toolName}" → server="${parsedTool.serverName}", tool="${parsedTool.toolName}"`, LOG_MODULES.HUB_TOOLS);
|
|
286
|
+
serverName = parsedTool.serverName;
|
|
287
|
+
toolName = parsedTool.toolName;
|
|
288
|
+
}
|
|
289
|
+
// Handle MCP Hub Lite server (system tool call or find tool in all servers)
|
|
290
|
+
if (!serverName || serverName === 'undefined') {
|
|
291
|
+
serverName = MCP_HUB_LITE_SERVER;
|
|
292
|
+
}
|
|
293
|
+
if (typeof serverName === 'string' && serverName === MCP_HUB_LITE_SERVER) {
|
|
294
|
+
// Check if it's a system tool
|
|
295
|
+
if (SYSTEM_TOOL_NAMES.includes(toolName)) {
|
|
296
|
+
return await this.callSystemTool(toolName, toolArgs);
|
|
297
|
+
}
|
|
298
|
+
// Not a system tool - find it in all connected servers
|
|
299
|
+
logger.info(`Looking for tool '${toolName}' in all connected servers (gateway mode)`, LOG_MODULES.HUB_TOOLS);
|
|
300
|
+
// Find all servers that have this tool
|
|
301
|
+
const matchingServers = [];
|
|
302
|
+
const servers = hubManager.getAllServers();
|
|
303
|
+
for (const server of servers) {
|
|
304
|
+
if (!hasValidId(server)) {
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
const serverInfo = selectBestInstance(server.name, requestOptions);
|
|
308
|
+
if (serverInfo && serverInfo.instance.id) {
|
|
309
|
+
const tools = mcpConnectionManager.getTools(serverInfo.instance.id);
|
|
310
|
+
if (tools.some((tool) => tool.name === toolName)) {
|
|
311
|
+
matchingServers.push(server.name);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
if (matchingServers.length === 0) {
|
|
316
|
+
logger.error(`Tool '${toolName}' not found in any connected server`, LOG_MODULES.HUB_TOOLS);
|
|
317
|
+
throw new Error(`Tool '${toolName}' not found`);
|
|
318
|
+
}
|
|
319
|
+
if (matchingServers.length > 1) {
|
|
320
|
+
logger.warn(`Tool '${toolName}' found in multiple servers: ${matchingServers.join(', ')}. Using first match.`, LOG_MODULES.HUB_TOOLS);
|
|
321
|
+
}
|
|
322
|
+
// Use the first matching server
|
|
323
|
+
serverName = matchingServers[0];
|
|
324
|
+
}
|
|
325
|
+
logger.debug(`Tool call received: serverName=${serverName}, toolName=${toolName}, args=${stringifyForLogging(toolArgs)}`, LOG_MODULES.HUB_TOOLS);
|
|
326
|
+
const serverInfo = selectBestInstance(serverName, requestOptions);
|
|
327
|
+
if (!serverInfo) {
|
|
328
|
+
logger.error(`Server not found: ${serverName}`, LOG_MODULES.HUB_TOOLS);
|
|
329
|
+
throw new Error(`Server not found: ${serverName}`);
|
|
330
|
+
}
|
|
331
|
+
const serverId = serverInfo.instance.id;
|
|
332
|
+
const requestId = `tool-call-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
333
|
+
// Publish tool call started event
|
|
334
|
+
eventBus.publish(EventTypes.TOOL_CALL_STARTED, {
|
|
335
|
+
requestId,
|
|
336
|
+
serverId,
|
|
337
|
+
serverName,
|
|
338
|
+
toolName,
|
|
339
|
+
timestamp: Date.now(),
|
|
340
|
+
args: toolArgs
|
|
341
|
+
});
|
|
342
|
+
try {
|
|
343
|
+
const result = await mcpConnectionManager.callTool(serverId, toolName, toolArgs);
|
|
344
|
+
// Publish tool call completed event
|
|
345
|
+
eventBus.publish(EventTypes.TOOL_CALL_COMPLETED, {
|
|
346
|
+
requestId,
|
|
347
|
+
serverId,
|
|
348
|
+
serverName,
|
|
349
|
+
toolName,
|
|
350
|
+
timestamp: Date.now(),
|
|
351
|
+
result
|
|
352
|
+
});
|
|
353
|
+
logger.debug(`Tool call SUCCESS: serverName=${serverName}, toolName=${toolName}`, LOG_MODULES.HUB_TOOLS);
|
|
354
|
+
return result;
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
// Publish tool call error event
|
|
358
|
+
eventBus.publish(EventTypes.TOOL_CALL_ERROR, {
|
|
359
|
+
requestId,
|
|
360
|
+
serverId,
|
|
361
|
+
serverName,
|
|
362
|
+
toolName,
|
|
363
|
+
timestamp: Date.now(),
|
|
364
|
+
error: error instanceof Error ? error.message : String(error),
|
|
365
|
+
stack: error instanceof Error ? error.stack : undefined
|
|
366
|
+
});
|
|
367
|
+
logger.error(`Tool call FAILED: serverName=${serverName}, toolName=${toolName}, error=${error instanceof Error ? error.message : String(error)}`, error, LOG_MODULES.HUB_TOOLS);
|
|
368
|
+
throw error;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Lists all available tools from all connected servers including system tools.
|
|
373
|
+
*
|
|
374
|
+
* This method aggregates tools from all configured and connected MCP servers, including
|
|
375
|
+
* the system tools provided by the MCP Hub Lite server itself. It returns a structured
|
|
376
|
+
* object mapping server names to their respective tool arrays.
|
|
377
|
+
*
|
|
378
|
+
* @returns {Promise<Record<string, { tools: Tool[] }>>} Object mapping server names to tool arrays
|
|
379
|
+
*/
|
|
380
|
+
async listAllTools() {
|
|
381
|
+
const servers = hubManager.getAllServers();
|
|
382
|
+
const allTools = {};
|
|
383
|
+
// Add system tools under mcp-hub-lite server
|
|
384
|
+
const systemTools = this.getSystemTools().map((tool) => ({
|
|
385
|
+
...tool,
|
|
386
|
+
description: `[System] ${tool.description}`,
|
|
387
|
+
serverName: MCP_HUB_LITE_SERVER
|
|
388
|
+
}));
|
|
389
|
+
allTools[MCP_HUB_LITE_SERVER] = {
|
|
390
|
+
tools: systemTools
|
|
391
|
+
};
|
|
392
|
+
for (const server of servers) {
|
|
393
|
+
if (!hasValidId(server)) {
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
const instances = hubManager.getServerInstanceByName(server.name);
|
|
397
|
+
for (const instance of instances) {
|
|
398
|
+
if (instance.id) {
|
|
399
|
+
const tools = mcpConnectionManager.getTools(instance.id);
|
|
400
|
+
allTools[server.name] = {
|
|
401
|
+
tools
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
return allTools;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Finds tools matching a pattern across all connected MCP servers.
|
|
410
|
+
*
|
|
411
|
+
* This method searches through all available tools from all connected servers using the
|
|
412
|
+
* provided regex pattern, supporting flexible search options including case sensitivity
|
|
413
|
+
* and search scope (name, description, or both). It returns matching tools grouped by
|
|
414
|
+
* their originating server names.
|
|
415
|
+
*
|
|
416
|
+
* @param {FindToolsParams} args - Search parameters
|
|
417
|
+
* @returns {Promise<Record<string, { tools: Tool[] }>>} Object mapping server names to matching tools
|
|
418
|
+
*/
|
|
419
|
+
async findTools(args) {
|
|
420
|
+
return findToolsUtil(args.pattern, args.searchIn, args.caseSensitive, () => this.listAllTools());
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Lists all dynamically generated Hub resources based on connected MCP servers.
|
|
424
|
+
*
|
|
425
|
+
* This method returns an array of virtual resources that represent the current state
|
|
426
|
+
* of connected servers, providing a unified interface for resource discovery and access.
|
|
427
|
+
* The resources are generated on-demand based on the current server configuration.
|
|
428
|
+
*
|
|
429
|
+
* @returns {Promise<Resource[]>} Array of MCP resource objects representing Hub resources
|
|
430
|
+
*/
|
|
431
|
+
async listResources() {
|
|
432
|
+
if (this.generatedResourcesCache) {
|
|
433
|
+
return this.generatedResourcesCache;
|
|
434
|
+
}
|
|
435
|
+
const resources = generateDynamicResources();
|
|
436
|
+
this.generatedResourcesCache = resources;
|
|
437
|
+
return resources;
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Reads content from a specific Hub resource URI.
|
|
441
|
+
*
|
|
442
|
+
* This method provides access to dynamically generated Hub resources by parsing the URI
|
|
443
|
+
* and returning the appropriate content based on the resource type. It supports three
|
|
444
|
+
* types of resources:
|
|
445
|
+
* - Server metadata: hub://servers/{serverName}
|
|
446
|
+
* - Tools list: hub://servers/{serverName}/tools
|
|
447
|
+
* - Resources list: hub://servers/{serverName}/resources
|
|
448
|
+
*
|
|
449
|
+
* @param {string} uri - Resource URI to read (e.g., hub://servers/server-name)
|
|
450
|
+
* @returns {Promise<ServerMetadata | Tool[] | Resource[]>} Resource content based on URI type
|
|
451
|
+
* @throws {Error} If URI format is invalid, server not found, or resource type unknown
|
|
452
|
+
*/
|
|
453
|
+
async readResource(uri) {
|
|
454
|
+
return readResourceUtil(uri);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
export const hubToolsService = new HubToolsService();
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import type { LogLevel } from '../../shared/types/common.types.js';
|
|
2
|
+
export interface LogEntry {
|
|
3
|
+
timestamp: number;
|
|
4
|
+
level: LogLevel;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LogQueryOptions {
|
|
8
|
+
level?: LogLevel;
|
|
9
|
+
limit?: number;
|
|
10
|
+
offset?: number;
|
|
11
|
+
since?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Service for managing and storing log entries for MCP servers.
|
|
15
|
+
*
|
|
16
|
+
* This service provides centralized log storage with memory-efficient management,
|
|
17
|
+
* real-time event notifications, and query capabilities for debugging and monitoring
|
|
18
|
+
* MCP server activities. It maintains separate log streams for each server identified
|
|
19
|
+
* by their unique server ID and supports configurable log retention limits.
|
|
20
|
+
*
|
|
21
|
+
* Key features:
|
|
22
|
+
* - Memory-efficient log storage with automatic cleanup
|
|
23
|
+
* - Real-time log event publishing via EventBus
|
|
24
|
+
* - Listener registration for immediate log notifications
|
|
25
|
+
* - Queryable log retrieval with filtering and pagination
|
|
26
|
+
* - Configurable maximum log entries per server to prevent memory leaks
|
|
27
|
+
*
|
|
28
|
+
* Usage scenarios:
|
|
29
|
+
* - Debugging MCP server communication issues
|
|
30
|
+
* - Monitoring server activity and status changes
|
|
31
|
+
* - Providing log data for UI log viewers
|
|
32
|
+
* - Supporting audit trails for server operations
|
|
33
|
+
*/
|
|
34
|
+
export declare class LogStorageService {
|
|
35
|
+
private serverLogs;
|
|
36
|
+
private maxLogsPerServer;
|
|
37
|
+
private logListeners;
|
|
38
|
+
/**
|
|
39
|
+
* Appends a new log entry for the specified server.
|
|
40
|
+
*
|
|
41
|
+
* Creates a timestamped log entry with the provided level and message,
|
|
42
|
+
* stores it in memory, and notifies all registered listeners and the
|
|
43
|
+
* global event bus about the new log entry.
|
|
44
|
+
*
|
|
45
|
+
* @param serverId - The unique identifier of the MCP server to log for
|
|
46
|
+
* @param level - The log level (e.g., 'debug', 'info', 'warn', 'error')
|
|
47
|
+
* @param message - The log message content (will be trimmed of whitespace)
|
|
48
|
+
* @returns The created LogEntry object containing timestamp, level, and message
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const logEntry = logStorage.append('server-123', 'info', 'Server connected successfully');
|
|
53
|
+
* console.log(logEntry.timestamp); // Current timestamp in milliseconds
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
append(serverId: string, level: LogLevel, message: string): LogEntry;
|
|
57
|
+
/**
|
|
58
|
+
* Retrieves log entries for the specified server with optional filtering and pagination.
|
|
59
|
+
*
|
|
60
|
+
* Returns a filtered and paginated subset of log entries based on the provided query options.
|
|
61
|
+
* The method supports filtering by log level, timestamp range, and pagination parameters.
|
|
62
|
+
*
|
|
63
|
+
* @param serverId - The unique identifier of the MCP server to retrieve logs for
|
|
64
|
+
* @param options - Optional query parameters for filtering and pagination
|
|
65
|
+
* @param options.level - Filter logs by specific log level (e.g., 'error', 'warn')
|
|
66
|
+
* @param options.since - Filter logs with timestamps greater than or equal to this value (milliseconds since epoch)
|
|
67
|
+
* @param options.offset - Number of log entries to skip (for pagination, default: 0)
|
|
68
|
+
* @param options.limit - Maximum number of log entries to return (default: all matching entries)
|
|
69
|
+
* @returns Array of LogEntry objects matching the query criteria, empty array if no logs exist
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Get last 10 error logs
|
|
74
|
+
* const errorLogs = logStorage.getLogs('server-123', { level: 'error', limit: 10 });
|
|
75
|
+
*
|
|
76
|
+
* // Get logs from the last hour
|
|
77
|
+
* const recentLogs = logStorage.getLogs('server-123', { since: Date.now() - 3600000 });
|
|
78
|
+
*
|
|
79
|
+
* // Get logs with pagination
|
|
80
|
+
* const paginatedLogs = logStorage.getLogs('server-123', { offset: 20, limit: 10 });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
getLogs(serverId: string, options?: LogQueryOptions): LogEntry[];
|
|
84
|
+
/**
|
|
85
|
+
* Clears all log entries for the specified server.
|
|
86
|
+
*
|
|
87
|
+
* Removes all stored log entries for the given server ID, effectively resetting
|
|
88
|
+
* the log history for that server. This operation is immediate and cannot be undone.
|
|
89
|
+
*
|
|
90
|
+
* @param serverId - The unique identifier of the MCP server to clear logs for
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* // Clear all logs for a specific server
|
|
95
|
+
* logStorage.clearLogs('server-123');
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
clearLogs(serverId: string): void;
|
|
99
|
+
/**
|
|
100
|
+
* Gets the total number of log entries stored for the specified server.
|
|
101
|
+
*
|
|
102
|
+
* @param serverId - The unique identifier of the MCP server to get log count for
|
|
103
|
+
* @returns The number of log entries stored for the server, or 0 if no logs exist
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const logCount = logStorage.getLogCount('server-123');
|
|
108
|
+
* console.log(`Server has ${logCount} log entries`);
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
getLogCount(serverId: string): number;
|
|
112
|
+
/**
|
|
113
|
+
* Sets the maximum number of log entries to store per server.
|
|
114
|
+
*
|
|
115
|
+
* Configures the memory limit for log storage and immediately trims existing logs
|
|
116
|
+
* for all servers that exceed the new limit. This helps prevent memory leaks in
|
|
117
|
+
* long-running applications with high log volume.
|
|
118
|
+
*
|
|
119
|
+
* @param max - The maximum number of log entries to store per server (must be positive)
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* // Limit logs to 500 entries per server
|
|
124
|
+
* logStorage.setMaxLogsPerServer(500);
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
setMaxLogsPerServer(max: number): void;
|
|
128
|
+
/**
|
|
129
|
+
* Adds a listener function that will be called whenever a new log entry is appended for the specified server.
|
|
130
|
+
*
|
|
131
|
+
* Listeners are called synchronously when new logs are added and should handle errors gracefully
|
|
132
|
+
* as exceptions are caught and logged but will not prevent other listeners from being called.
|
|
133
|
+
*
|
|
134
|
+
* @param serverId - The unique identifier of the MCP server to listen for logs
|
|
135
|
+
* @param listener - Function to be called with each new LogEntry for the server
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* const listener = (log: LogEntry) => {
|
|
140
|
+
* console.log(`New log for server: ${log.message}`);
|
|
141
|
+
* };
|
|
142
|
+
* logStorage.addLogListener('server-123', listener);
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
addLogListener(serverId: string, listener: (log: LogEntry) => void): void;
|
|
146
|
+
/**
|
|
147
|
+
* Removes a previously registered log listener for the specified server.
|
|
148
|
+
*
|
|
149
|
+
* @param serverId - The unique identifier of the MCP server to remove the listener from
|
|
150
|
+
* @param listener - The listener function to remove (must be the exact same function reference)
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* // Remove the listener
|
|
155
|
+
* logStorage.removeLogListener('server-123', listener);
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
removeLogListener(serverId: string, listener: (log: LogEntry) => void): void;
|
|
159
|
+
/**
|
|
160
|
+
* Notify listeners
|
|
161
|
+
*/
|
|
162
|
+
private notifyListeners;
|
|
163
|
+
/**
|
|
164
|
+
* Gets an array of all server IDs that currently have stored log entries.
|
|
165
|
+
*
|
|
166
|
+
* @returns Array of server ID strings that have logs, empty array if no servers have logs
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* const serverIds = logStorage.getServersWithLogs();
|
|
171
|
+
* console.log(`Servers with logs: ${serverIds.join(', ')}`);
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
getServersWithLogs(): string[];
|
|
175
|
+
}
|
|
176
|
+
export declare const logStorage: LogStorageService;
|
|
177
|
+
//# sourceMappingURL=log-storage.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-storage.service.d.ts","sourceRoot":"","sources":["../../../../src/services/log-storage.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,YAAY,CAAqD;IAEzE;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ;IA+BpE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,EAAE;IAqBhE;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrC;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAUtC;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAOzE;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI;IAU5E;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;;;;;;;;OAUG;IACH,kBAAkB,IAAI,MAAM,EAAE;CAG/B;AAED,eAAO,MAAM,UAAU,mBAA0B,CAAC"}
|