@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,243 @@
|
|
|
1
|
+
import { logger, LOG_MODULES } from '../utils/logger.js';
|
|
2
|
+
import { eventBus, EventTypes } from './event-bus.service.js';
|
|
3
|
+
/**
|
|
4
|
+
* Service for managing and storing log entries for MCP servers.
|
|
5
|
+
*
|
|
6
|
+
* This service provides centralized log storage with memory-efficient management,
|
|
7
|
+
* real-time event notifications, and query capabilities for debugging and monitoring
|
|
8
|
+
* MCP server activities. It maintains separate log streams for each server identified
|
|
9
|
+
* by their unique server ID and supports configurable log retention limits.
|
|
10
|
+
*
|
|
11
|
+
* Key features:
|
|
12
|
+
* - Memory-efficient log storage with automatic cleanup
|
|
13
|
+
* - Real-time log event publishing via EventBus
|
|
14
|
+
* - Listener registration for immediate log notifications
|
|
15
|
+
* - Queryable log retrieval with filtering and pagination
|
|
16
|
+
* - Configurable maximum log entries per server to prevent memory leaks
|
|
17
|
+
*
|
|
18
|
+
* Usage scenarios:
|
|
19
|
+
* - Debugging MCP server communication issues
|
|
20
|
+
* - Monitoring server activity and status changes
|
|
21
|
+
* - Providing log data for UI log viewers
|
|
22
|
+
* - Supporting audit trails for server operations
|
|
23
|
+
*/
|
|
24
|
+
export class LogStorageService {
|
|
25
|
+
serverLogs = new Map();
|
|
26
|
+
maxLogsPerServer = 1000; // Configurable maximum number of log entries
|
|
27
|
+
logListeners = new Map();
|
|
28
|
+
/**
|
|
29
|
+
* Appends a new log entry for the specified server.
|
|
30
|
+
*
|
|
31
|
+
* Creates a timestamped log entry with the provided level and message,
|
|
32
|
+
* stores it in memory, and notifies all registered listeners and the
|
|
33
|
+
* global event bus about the new log entry.
|
|
34
|
+
*
|
|
35
|
+
* @param serverId - The unique identifier of the MCP server to log for
|
|
36
|
+
* @param level - The log level (e.g., 'debug', 'info', 'warn', 'error')
|
|
37
|
+
* @param message - The log message content (will be trimmed of whitespace)
|
|
38
|
+
* @returns The created LogEntry object containing timestamp, level, and message
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const logEntry = logStorage.append('server-123', 'info', 'Server connected successfully');
|
|
43
|
+
* console.log(logEntry.timestamp); // Current timestamp in milliseconds
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
append(serverId, level, message) {
|
|
47
|
+
const logEntry = {
|
|
48
|
+
timestamp: Date.now(),
|
|
49
|
+
level,
|
|
50
|
+
message: message.trim()
|
|
51
|
+
};
|
|
52
|
+
if (!this.serverLogs.has(serverId)) {
|
|
53
|
+
this.serverLogs.set(serverId, []);
|
|
54
|
+
}
|
|
55
|
+
const logs = this.serverLogs.get(serverId);
|
|
56
|
+
logs.push(logEntry);
|
|
57
|
+
// Limit log entries to prevent memory leaks
|
|
58
|
+
if (logs.length > this.maxLogsPerServer) {
|
|
59
|
+
logs.splice(0, logs.length - this.maxLogsPerServer);
|
|
60
|
+
}
|
|
61
|
+
// Notify listeners
|
|
62
|
+
this.notifyListeners(serverId, logEntry);
|
|
63
|
+
// Publish log event
|
|
64
|
+
eventBus.publish(EventTypes.LOG_ENTRY, {
|
|
65
|
+
serverId,
|
|
66
|
+
logs: [logEntry]
|
|
67
|
+
});
|
|
68
|
+
return logEntry;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Retrieves log entries for the specified server with optional filtering and pagination.
|
|
72
|
+
*
|
|
73
|
+
* Returns a filtered and paginated subset of log entries based on the provided query options.
|
|
74
|
+
* The method supports filtering by log level, timestamp range, and pagination parameters.
|
|
75
|
+
*
|
|
76
|
+
* @param serverId - The unique identifier of the MCP server to retrieve logs for
|
|
77
|
+
* @param options - Optional query parameters for filtering and pagination
|
|
78
|
+
* @param options.level - Filter logs by specific log level (e.g., 'error', 'warn')
|
|
79
|
+
* @param options.since - Filter logs with timestamps greater than or equal to this value (milliseconds since epoch)
|
|
80
|
+
* @param options.offset - Number of log entries to skip (for pagination, default: 0)
|
|
81
|
+
* @param options.limit - Maximum number of log entries to return (default: all matching entries)
|
|
82
|
+
* @returns Array of LogEntry objects matching the query criteria, empty array if no logs exist
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* // Get last 10 error logs
|
|
87
|
+
* const errorLogs = logStorage.getLogs('server-123', { level: 'error', limit: 10 });
|
|
88
|
+
*
|
|
89
|
+
* // Get logs from the last hour
|
|
90
|
+
* const recentLogs = logStorage.getLogs('server-123', { since: Date.now() - 3600000 });
|
|
91
|
+
*
|
|
92
|
+
* // Get logs with pagination
|
|
93
|
+
* const paginatedLogs = logStorage.getLogs('server-123', { offset: 20, limit: 10 });
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
getLogs(serverId, options) {
|
|
97
|
+
let logs = this.serverLogs.get(serverId) || [];
|
|
98
|
+
// Filter by level
|
|
99
|
+
if (options?.level) {
|
|
100
|
+
logs = logs.filter((log) => log.level === options.level);
|
|
101
|
+
}
|
|
102
|
+
// Filter by time
|
|
103
|
+
if (options?.since != null) {
|
|
104
|
+
const since = options.since;
|
|
105
|
+
logs = logs.filter((log) => log.timestamp >= since);
|
|
106
|
+
}
|
|
107
|
+
// Pagination
|
|
108
|
+
const offset = options?.offset || 0;
|
|
109
|
+
const limit = options?.limit || logs.length;
|
|
110
|
+
return logs.slice(offset, offset + limit);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Clears all log entries for the specified server.
|
|
114
|
+
*
|
|
115
|
+
* Removes all stored log entries for the given server ID, effectively resetting
|
|
116
|
+
* the log history for that server. This operation is immediate and cannot be undone.
|
|
117
|
+
*
|
|
118
|
+
* @param serverId - The unique identifier of the MCP server to clear logs for
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* // Clear all logs for a specific server
|
|
123
|
+
* logStorage.clearLogs('server-123');
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
clearLogs(serverId) {
|
|
127
|
+
this.serverLogs.set(serverId, []);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Gets the total number of log entries stored for the specified server.
|
|
131
|
+
*
|
|
132
|
+
* @param serverId - The unique identifier of the MCP server to get log count for
|
|
133
|
+
* @returns The number of log entries stored for the server, or 0 if no logs exist
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* const logCount = logStorage.getLogCount('server-123');
|
|
138
|
+
* console.log(`Server has ${logCount} log entries`);
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
getLogCount(serverId) {
|
|
142
|
+
return this.serverLogs.get(serverId)?.length || 0;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Sets the maximum number of log entries to store per server.
|
|
146
|
+
*
|
|
147
|
+
* Configures the memory limit for log storage and immediately trims existing logs
|
|
148
|
+
* for all servers that exceed the new limit. This helps prevent memory leaks in
|
|
149
|
+
* long-running applications with high log volume.
|
|
150
|
+
*
|
|
151
|
+
* @param max - The maximum number of log entries to store per server (must be positive)
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* // Limit logs to 500 entries per server
|
|
156
|
+
* logStorage.setMaxLogsPerServer(500);
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
setMaxLogsPerServer(max) {
|
|
160
|
+
this.maxLogsPerServer = max;
|
|
161
|
+
// Trim logs for all servers
|
|
162
|
+
for (const [serverId, logs] of this.serverLogs.entries()) {
|
|
163
|
+
if (logs.length > max) {
|
|
164
|
+
this.serverLogs.set(serverId, logs.slice(-max));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Adds a listener function that will be called whenever a new log entry is appended for the specified server.
|
|
170
|
+
*
|
|
171
|
+
* Listeners are called synchronously when new logs are added and should handle errors gracefully
|
|
172
|
+
* as exceptions are caught and logged but will not prevent other listeners from being called.
|
|
173
|
+
*
|
|
174
|
+
* @param serverId - The unique identifier of the MCP server to listen for logs
|
|
175
|
+
* @param listener - Function to be called with each new LogEntry for the server
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* const listener = (log: LogEntry) => {
|
|
180
|
+
* console.log(`New log for server: ${log.message}`);
|
|
181
|
+
* };
|
|
182
|
+
* logStorage.addLogListener('server-123', listener);
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
addLogListener(serverId, listener) {
|
|
186
|
+
if (!this.logListeners.has(serverId)) {
|
|
187
|
+
this.logListeners.set(serverId, []);
|
|
188
|
+
}
|
|
189
|
+
this.logListeners.get(serverId).push(listener);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Removes a previously registered log listener for the specified server.
|
|
193
|
+
*
|
|
194
|
+
* @param serverId - The unique identifier of the MCP server to remove the listener from
|
|
195
|
+
* @param listener - The listener function to remove (must be the exact same function reference)
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* ```typescript
|
|
199
|
+
* // Remove the listener
|
|
200
|
+
* logStorage.removeLogListener('server-123', listener);
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
removeLogListener(serverId, listener) {
|
|
204
|
+
const listeners = this.logListeners.get(serverId);
|
|
205
|
+
if (listeners) {
|
|
206
|
+
const index = listeners.indexOf(listener);
|
|
207
|
+
if (index !== -1) {
|
|
208
|
+
listeners.splice(index, 1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Notify listeners
|
|
214
|
+
*/
|
|
215
|
+
notifyListeners(serverId, log) {
|
|
216
|
+
const listeners = this.logListeners.get(serverId);
|
|
217
|
+
if (listeners) {
|
|
218
|
+
listeners.forEach((listener) => {
|
|
219
|
+
try {
|
|
220
|
+
listener(log);
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
logger.error(`Error in log listener for server ${serverId}:`, error, LOG_MODULES.dynamic(serverId));
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Gets an array of all server IDs that currently have stored log entries.
|
|
230
|
+
*
|
|
231
|
+
* @returns Array of server ID strings that have logs, empty array if no servers have logs
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```typescript
|
|
235
|
+
* const serverIds = logStorage.getServersWithLogs();
|
|
236
|
+
* console.log(`Servers with logs: ${serverIds.join(', ')}`);
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
getServersWithLogs() {
|
|
240
|
+
return Array.from(this.serverLogs.keys());
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
export const logStorage = new LogStorageService();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated This file is now a thin wrapper. Please import from './connection/index.js' instead.
|
|
3
|
+
* MCP Connection Manager - Connection management for MCP servers.
|
|
4
|
+
*/
|
|
5
|
+
export { McpConnectionManager, mcpConnectionManager } from './connection/index.js';
|
|
6
|
+
export type { ServerStatus } from './connection/index.js';
|
|
7
|
+
//# sourceMappingURL=mcp-connection-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-connection-manager.d.ts","sourceRoot":"","sources":["../../../../src/services/mcp-connection-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated This file is now a thin wrapper. Please import from './connection/index.js' instead.
|
|
3
|
+
* MCP Connection Manager - Connection management for MCP servers.
|
|
4
|
+
*/
|
|
5
|
+
// Re-export everything from the new modular implementation
|
|
6
|
+
export { McpConnectionManager, mcpConnectionManager } from './connection/index.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated This file is now a thin wrapper. Please import from './session/index.js' instead.
|
|
3
|
+
*/
|
|
4
|
+
export { McpSessionManager, mcpSessionManager } from './session/index.js';
|
|
5
|
+
export type { TransportWithWebStandard, Session } from './session/types.js';
|
|
6
|
+
//# sourceMappingURL=mcp-session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-session-manager.d.ts","sourceRoot":"","sources":["../../../../src/services/mcp-session-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/search/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { Tool } from '../../../shared/models/tool.model.js';
|
|
2
|
+
/**
|
|
3
|
+
* Search cache service that provides time-based caching for search results.
|
|
4
|
+
*
|
|
5
|
+
* This service implements a simple TTL (Time-To-Live) cache mechanism for storing
|
|
6
|
+
* and retrieving search results. It automatically invalidates cached data after
|
|
7
|
+
* a specified time period (30 seconds by default) to ensure freshness while
|
|
8
|
+
* providing performance benefits for repeated searches within the TTL window.
|
|
9
|
+
*
|
|
10
|
+
* The cache stores an array of Tool objects and maintains a timestamp of the last
|
|
11
|
+
* update to determine cache validity. This is particularly useful in scenarios
|
|
12
|
+
* where search operations might be expensive or frequently repeated, such as
|
|
13
|
+
* in autocomplete or real-time search interfaces.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const cache = new SearchCacheService();
|
|
18
|
+
*
|
|
19
|
+
* // Set cache with search results
|
|
20
|
+
* cache.set(searchResults);
|
|
21
|
+
*
|
|
22
|
+
* // Retrieve cached results (returns null if expired)
|
|
23
|
+
* const results = cache.get();
|
|
24
|
+
*
|
|
25
|
+
* // Manually invalidate cache
|
|
26
|
+
* cache.invalidate();
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class SearchCacheService {
|
|
30
|
+
private cache;
|
|
31
|
+
private lastUpdate;
|
|
32
|
+
private readonly CACHE_TTL;
|
|
33
|
+
/**
|
|
34
|
+
* Checks if the current cache is valid based on the TTL (Time-To-Live).
|
|
35
|
+
*
|
|
36
|
+
* A cache is considered valid if it exists and has not exceeded the
|
|
37
|
+
* configured TTL since the last update. The default TTL is 30 seconds.
|
|
38
|
+
*
|
|
39
|
+
* @returns {boolean} True if the cache exists and is within the TTL window,
|
|
40
|
+
* false otherwise (either no cache or expired).
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* if (cache.isValid()) {
|
|
45
|
+
* // Use cached results
|
|
46
|
+
* const results = cache.get();
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
isValid(): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Retrieves the cached search results if they are still valid.
|
|
53
|
+
*
|
|
54
|
+
* This method first checks if the cache is valid using the TTL mechanism.
|
|
55
|
+
* If the cache is invalid or expired, it automatically clears the cache
|
|
56
|
+
* and returns null. Otherwise, it returns the cached Tool array.
|
|
57
|
+
*
|
|
58
|
+
* @returns {Tool[] | null} The cached array of Tool objects if valid,
|
|
59
|
+
* null if the cache is invalid, expired, or empty.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const cachedResults = cache.get();
|
|
64
|
+
* if (cachedResults) {
|
|
65
|
+
* // Use cached results
|
|
66
|
+
* return cachedResults;
|
|
67
|
+
* } else {
|
|
68
|
+
* // Perform fresh search
|
|
69
|
+
* const freshResults = performSearch();
|
|
70
|
+
* cache.set(freshResults);
|
|
71
|
+
* return freshResults;
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
get(): Tool[] | null;
|
|
76
|
+
/**
|
|
77
|
+
* Stores search results in the cache with the current timestamp.
|
|
78
|
+
*
|
|
79
|
+
* This method sets the provided Tool array as the cached value and
|
|
80
|
+
* records the current timestamp as the last update time. The cache
|
|
81
|
+
* will remain valid until it exceeds the TTL (30 seconds by default).
|
|
82
|
+
*
|
|
83
|
+
* @param {Tool[]} tools - The array of Tool objects to cache.
|
|
84
|
+
* Must be a valid array of Tool instances.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const searchResults = await searchTools('pattern');
|
|
89
|
+
* cache.set(searchResults);
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
set(tools: Tool[]): void;
|
|
93
|
+
/**
|
|
94
|
+
* Immediately invalidates and clears the current cache.
|
|
95
|
+
*
|
|
96
|
+
* This method forces the cache to be cleared by setting the cache to null
|
|
97
|
+
* and resetting the last update timestamp to zero. After calling this method,
|
|
98
|
+
* subsequent calls to `get()` will return null until new data is set.
|
|
99
|
+
*
|
|
100
|
+
* This is useful when external events indicate that cached data may be stale,
|
|
101
|
+
* such as when servers are added, removed, or updated.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* // Invalidate cache when server configuration changes
|
|
106
|
+
* hubManager.on('serverUpdated', () => {
|
|
107
|
+
* searchCache.invalidate();
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
invalidate(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Updates a specific tool in the cache (deprecated method).
|
|
114
|
+
*
|
|
115
|
+
* This method is currently deprecated because the serverId field has been
|
|
116
|
+
* removed from the Tool interface. It logs a warning message and performs
|
|
117
|
+
* no actual operations. The method is kept for backward compatibility but
|
|
118
|
+
* should not be used in new code.
|
|
119
|
+
*
|
|
120
|
+
* @deprecated This method is deprecated and does nothing. ServerId field
|
|
121
|
+
* has been removed from the Tool interface, making this method
|
|
122
|
+
* obsolete.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* // This will log a warning but do nothing
|
|
127
|
+
* cache.updateTool();
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
updateTool(): void;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=search-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/search/search-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAGzD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IAEvC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,IAAI,OAAO;IAMlB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI;IASpB;;;;;;;;;;;;;;;OAeG;IACH,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAKxB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,IAAI,IAAI;CAQnB"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { logger, LOG_MODULES } from '../../utils/logger.js';
|
|
2
|
+
/**
|
|
3
|
+
* Search cache service that provides time-based caching for search results.
|
|
4
|
+
*
|
|
5
|
+
* This service implements a simple TTL (Time-To-Live) cache mechanism for storing
|
|
6
|
+
* and retrieving search results. It automatically invalidates cached data after
|
|
7
|
+
* a specified time period (30 seconds by default) to ensure freshness while
|
|
8
|
+
* providing performance benefits for repeated searches within the TTL window.
|
|
9
|
+
*
|
|
10
|
+
* The cache stores an array of Tool objects and maintains a timestamp of the last
|
|
11
|
+
* update to determine cache validity. This is particularly useful in scenarios
|
|
12
|
+
* where search operations might be expensive or frequently repeated, such as
|
|
13
|
+
* in autocomplete or real-time search interfaces.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const cache = new SearchCacheService();
|
|
18
|
+
*
|
|
19
|
+
* // Set cache with search results
|
|
20
|
+
* cache.set(searchResults);
|
|
21
|
+
*
|
|
22
|
+
* // Retrieve cached results (returns null if expired)
|
|
23
|
+
* const results = cache.get();
|
|
24
|
+
*
|
|
25
|
+
* // Manually invalidate cache
|
|
26
|
+
* cache.invalidate();
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export class SearchCacheService {
|
|
30
|
+
cache = null;
|
|
31
|
+
lastUpdate = 0;
|
|
32
|
+
CACHE_TTL = 30 * 1000;
|
|
33
|
+
/**
|
|
34
|
+
* Checks if the current cache is valid based on the TTL (Time-To-Live).
|
|
35
|
+
*
|
|
36
|
+
* A cache is considered valid if it exists and has not exceeded the
|
|
37
|
+
* configured TTL since the last update. The default TTL is 30 seconds.
|
|
38
|
+
*
|
|
39
|
+
* @returns {boolean} True if the cache exists and is within the TTL window,
|
|
40
|
+
* false otherwise (either no cache or expired).
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* if (cache.isValid()) {
|
|
45
|
+
* // Use cached results
|
|
46
|
+
* const results = cache.get();
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
isValid() {
|
|
51
|
+
if (!this.cache)
|
|
52
|
+
return false;
|
|
53
|
+
return Date.now() - this.lastUpdate < this.CACHE_TTL;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Retrieves the cached search results if they are still valid.
|
|
57
|
+
*
|
|
58
|
+
* This method first checks if the cache is valid using the TTL mechanism.
|
|
59
|
+
* If the cache is invalid or expired, it automatically clears the cache
|
|
60
|
+
* and returns null. Otherwise, it returns the cached Tool array.
|
|
61
|
+
*
|
|
62
|
+
* @returns {Tool[] | null} The cached array of Tool objects if valid,
|
|
63
|
+
* null if the cache is invalid, expired, or empty.
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const cachedResults = cache.get();
|
|
68
|
+
* if (cachedResults) {
|
|
69
|
+
* // Use cached results
|
|
70
|
+
* return cachedResults;
|
|
71
|
+
* } else {
|
|
72
|
+
* // Perform fresh search
|
|
73
|
+
* const freshResults = performSearch();
|
|
74
|
+
* cache.set(freshResults);
|
|
75
|
+
* return freshResults;
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
get() {
|
|
80
|
+
if (!this.isValid()) {
|
|
81
|
+
this.cache = null;
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return this.cache;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Stores search results in the cache with the current timestamp.
|
|
88
|
+
*
|
|
89
|
+
* This method sets the provided Tool array as the cached value and
|
|
90
|
+
* records the current timestamp as the last update time. The cache
|
|
91
|
+
* will remain valid until it exceeds the TTL (30 seconds by default).
|
|
92
|
+
*
|
|
93
|
+
* @param {Tool[]} tools - The array of Tool objects to cache.
|
|
94
|
+
* Must be a valid array of Tool instances.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const searchResults = await searchTools('pattern');
|
|
99
|
+
* cache.set(searchResults);
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
set(tools) {
|
|
103
|
+
this.cache = tools;
|
|
104
|
+
this.lastUpdate = Date.now();
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Immediately invalidates and clears the current cache.
|
|
108
|
+
*
|
|
109
|
+
* This method forces the cache to be cleared by setting the cache to null
|
|
110
|
+
* and resetting the last update timestamp to zero. After calling this method,
|
|
111
|
+
* subsequent calls to `get()` will return null until new data is set.
|
|
112
|
+
*
|
|
113
|
+
* This is useful when external events indicate that cached data may be stale,
|
|
114
|
+
* such as when servers are added, removed, or updated.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* // Invalidate cache when server configuration changes
|
|
119
|
+
* hubManager.on('serverUpdated', () => {
|
|
120
|
+
* searchCache.invalidate();
|
|
121
|
+
* });
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
invalidate() {
|
|
125
|
+
this.cache = null;
|
|
126
|
+
this.lastUpdate = 0;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Updates a specific tool in the cache (deprecated method).
|
|
130
|
+
*
|
|
131
|
+
* This method is currently deprecated because the serverId field has been
|
|
132
|
+
* removed from the Tool interface. It logs a warning message and performs
|
|
133
|
+
* no actual operations. The method is kept for backward compatibility but
|
|
134
|
+
* should not be used in new code.
|
|
135
|
+
*
|
|
136
|
+
* @deprecated This method is deprecated and does nothing. ServerId field
|
|
137
|
+
* has been removed from the Tool interface, making this method
|
|
138
|
+
* obsolete.
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* // This will log a warning but do nothing
|
|
143
|
+
* cache.updateTool();
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
updateTool() {
|
|
147
|
+
// Since serverId field has been removed from Tool interface, this method needs refactoring
|
|
148
|
+
// Currently kept but not performing any operations, or modify according to actual requirements
|
|
149
|
+
logger.warn('updateTool method is deprecated because serverId field is removed from Tool', LOG_MODULES.SEARCH);
|
|
150
|
+
}
|
|
151
|
+
}
|