@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,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON utilities for logging and formatting
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Flag to track if dev mode is enabled.
|
|
6
|
+
* Set by logger.enableDevLog() to avoid circular dependencies.
|
|
7
|
+
*/
|
|
8
|
+
let _isDevModeEnabled = false;
|
|
9
|
+
/**
|
|
10
|
+
* Set the dev mode flag.
|
|
11
|
+
* Called by logger.enableDevLog() to indicate we're in dev mode.
|
|
12
|
+
*
|
|
13
|
+
* @param enabled - Whether dev mode is enabled
|
|
14
|
+
*/
|
|
15
|
+
export function setDevModeEnabled(enabled) {
|
|
16
|
+
_isDevModeEnabled = enabled;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the dev mode flag.
|
|
20
|
+
* Returns true if we're in dev mode (dev log is enabled).
|
|
21
|
+
*
|
|
22
|
+
* @returns boolean indicating whether dev mode is enabled
|
|
23
|
+
*/
|
|
24
|
+
export function isDevModeEnabled() {
|
|
25
|
+
return _isDevModeEnabled;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get default value for config settings based on dev mode.
|
|
29
|
+
* In dev mode, debugging settings default to true if not explicitly configured.
|
|
30
|
+
*
|
|
31
|
+
* @param defaultValue - The default value for production mode
|
|
32
|
+
* @returns The appropriate default value based on current mode
|
|
33
|
+
*/
|
|
34
|
+
function getDefaultForDevMode(defaultValue) {
|
|
35
|
+
if (_isDevModeEnabled) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
return defaultValue;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Post-process pretty-printed JSON to convert \n to actual newlines in string values.
|
|
42
|
+
* This makes multi-line text more readable in logs.
|
|
43
|
+
*
|
|
44
|
+
* @param jsonStr - The JSON string to process
|
|
45
|
+
* @returns Processed JSON string with actual newlines in string values
|
|
46
|
+
*/
|
|
47
|
+
function processPrettyJsonForLogging(jsonStr) {
|
|
48
|
+
// Only process if we have actual newlines in the string
|
|
49
|
+
if (!jsonStr.includes('\\n')) {
|
|
50
|
+
return jsonStr;
|
|
51
|
+
}
|
|
52
|
+
// Replace \n with actual newlines, but be careful not to break JSON structure
|
|
53
|
+
// We need to track whether we're inside a string
|
|
54
|
+
let result = '';
|
|
55
|
+
let inString = false;
|
|
56
|
+
let escapeNext = false;
|
|
57
|
+
for (let i = 0; i < jsonStr.length; i++) {
|
|
58
|
+
const char = jsonStr[i];
|
|
59
|
+
if (escapeNext) {
|
|
60
|
+
if (inString && char === 'n') {
|
|
61
|
+
// Replace \n with actual newline inside strings
|
|
62
|
+
result += '\n';
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// Keep other escaped characters as-is
|
|
66
|
+
result += '\\' + char;
|
|
67
|
+
}
|
|
68
|
+
escapeNext = false;
|
|
69
|
+
}
|
|
70
|
+
else if (char === '\\') {
|
|
71
|
+
escapeNext = true;
|
|
72
|
+
}
|
|
73
|
+
else if (char === '"') {
|
|
74
|
+
inString = !inString;
|
|
75
|
+
result += char;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
result += char;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Handle any trailing escape
|
|
82
|
+
if (escapeNext) {
|
|
83
|
+
result += '\\';
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Optional config getter to retrieve jsonPretty setting from config.
|
|
89
|
+
* This avoids circular dependency issues.
|
|
90
|
+
*/
|
|
91
|
+
let _configGetter = null;
|
|
92
|
+
/**
|
|
93
|
+
* Set the config getter for jsonPretty setting.
|
|
94
|
+
* This allows retrieving the setting from config without direct import dependency.
|
|
95
|
+
*
|
|
96
|
+
* @param getter - Function that returns the config object, or null to reset
|
|
97
|
+
*/
|
|
98
|
+
export function setJsonPrettyConfigGetter(getter) {
|
|
99
|
+
_configGetter = getter;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Convert Node.js rawHeaders array [key1, value1, key2, value2, ...] to object
|
|
103
|
+
* @param rawHeaders Node.js rawHeaders array
|
|
104
|
+
* @returns Headers as key-value object
|
|
105
|
+
*/
|
|
106
|
+
export function rawHeadersToObject(rawHeaders) {
|
|
107
|
+
const result = {};
|
|
108
|
+
for (let i = 0; i < rawHeaders.length; i += 2) {
|
|
109
|
+
const key = rawHeaders[i];
|
|
110
|
+
const value = rawHeaders[i + 1];
|
|
111
|
+
if (key !== undefined && value !== undefined) {
|
|
112
|
+
result[key] = value;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Stringify Node.js rawHeaders array for logging
|
|
119
|
+
* Converts [key1, value1, key2, value2, ...] to readable object format
|
|
120
|
+
* @param rawHeaders Node.js rawHeaders array
|
|
121
|
+
* @returns Formatted JSON string
|
|
122
|
+
*/
|
|
123
|
+
export function stringifyRawHeadersForLogging(rawHeaders) {
|
|
124
|
+
const headersObj = rawHeadersToObject(rawHeaders);
|
|
125
|
+
return stringifyForLogging(headersObj);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Get JSON pretty setting from config getter.
|
|
129
|
+
*
|
|
130
|
+
* @returns boolean indicating whether to use pretty JSON formatting
|
|
131
|
+
*/
|
|
132
|
+
export function getJsonPrettySetting() {
|
|
133
|
+
if (_configGetter) {
|
|
134
|
+
try {
|
|
135
|
+
const config = _configGetter();
|
|
136
|
+
return config.system.logging.jsonPretty;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Fall through to default if config getter fails
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return true; // Default to true (matches current default in config schema)
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get MCP communication debug setting from config getter.
|
|
146
|
+
*
|
|
147
|
+
* @returns boolean indicating whether to enable MCP communication debug logging
|
|
148
|
+
*/
|
|
149
|
+
export function getMcpCommDebugSetting() {
|
|
150
|
+
if (_configGetter) {
|
|
151
|
+
try {
|
|
152
|
+
const config = _configGetter();
|
|
153
|
+
return config.system.logging.mcpCommDebug;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Fall through to default if config getter fails
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return getDefaultForDevMode(false);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get session debug setting from config getter.
|
|
163
|
+
*
|
|
164
|
+
* @returns boolean indicating whether to enable session debug logging
|
|
165
|
+
*/
|
|
166
|
+
export function getSessionDebugSetting() {
|
|
167
|
+
if (_configGetter) {
|
|
168
|
+
try {
|
|
169
|
+
const config = _configGetter();
|
|
170
|
+
return config.system.logging.sessionDebug;
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
// Fall through to default if config getter fails
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return getDefaultForDevMode(false);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Stringify object for logging with dynamic pretty formatting based on LOG_JSON_PRETTY environment variable
|
|
180
|
+
* @param obj Object to stringify
|
|
181
|
+
* @returns Formatted JSON string
|
|
182
|
+
*/
|
|
183
|
+
export function stringifyForLogging(obj) {
|
|
184
|
+
const jsonPretty = getJsonPrettySetting();
|
|
185
|
+
if (jsonPretty) {
|
|
186
|
+
const jsonStr = JSON.stringify(obj, null, 2);
|
|
187
|
+
return processPrettyJsonForLogging(jsonStr);
|
|
188
|
+
}
|
|
189
|
+
return JSON.stringify(obj);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Stringify object for logging with replacer and dynamic pretty formatting based on LOG_JSON_PRETTY environment variable
|
|
193
|
+
* @param obj Object to stringify
|
|
194
|
+
* @param replacer Optional replacer function
|
|
195
|
+
* @returns Formatted JSON string
|
|
196
|
+
*/
|
|
197
|
+
export function stringifyForLoggingWithReplacer(obj, replacer) {
|
|
198
|
+
const jsonPretty = getJsonPrettySetting();
|
|
199
|
+
if (jsonPretty) {
|
|
200
|
+
const jsonStr = JSON.stringify(obj, replacer, 2);
|
|
201
|
+
return processPrettyJsonForLogging(jsonStr);
|
|
202
|
+
}
|
|
203
|
+
return JSON.stringify(obj, replacer);
|
|
204
|
+
}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration interface for custom log rotation settings.
|
|
3
|
+
*/
|
|
4
|
+
export interface RotatorConfig {
|
|
5
|
+
rotationAge?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Type for the config getter function to avoid direct import dependency.
|
|
9
|
+
*/
|
|
10
|
+
type ConfigGetter = () => {
|
|
11
|
+
system: {
|
|
12
|
+
logging: {
|
|
13
|
+
rotationAge: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Manages log file rotation and cleanup for MCP Hub Lite.
|
|
19
|
+
*
|
|
20
|
+
* This class provides automated log rotation functionality that creates log files
|
|
21
|
+
* with timestamp-based naming on each startup and automatically cleans up old log files
|
|
22
|
+
* based on the configured retention period. It ensures that log storage doesn't grow
|
|
23
|
+
* indefinitely while maintaining a configurable history of log files for debugging
|
|
24
|
+
* and monitoring purposes.
|
|
25
|
+
*
|
|
26
|
+
* The log rotator works by:
|
|
27
|
+
* 1. Creating log files with format: `{logBaseName}.{YYYYMMDD_HHmmSSZZZ}.log` on each startup
|
|
28
|
+
* 2. Automatically cleaning up log files older than the configured retention period
|
|
29
|
+
* 3. Providing utilities to retrieve and manage existing log files
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const logDir = path.join(os.homedir(), '.mcp-hub-lite', 'logs');
|
|
34
|
+
* const rotator = new LogRotator(logDir, 'mcp-hub');
|
|
35
|
+
*
|
|
36
|
+
* // Create a new log file with timestamp (for startup)
|
|
37
|
+
* const newLogPath = rotator.createNewLogFilePath();
|
|
38
|
+
*
|
|
39
|
+
* // Get the latest existing log file
|
|
40
|
+
* const latestLogPath = rotator.getLatestLogFilePath();
|
|
41
|
+
*
|
|
42
|
+
* // Perform log rotation (cleanup old files)
|
|
43
|
+
* rotator.rotateLogs();
|
|
44
|
+
*
|
|
45
|
+
* // Get all log files sorted by date (newest first)
|
|
46
|
+
* const logFiles = rotator.getLogFiles();
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // With custom configuration (independent from global config)
|
|
52
|
+
* const rotator = new LogRotator(logDir, 'dev-server', { rotationAge: '7d' });
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @class
|
|
56
|
+
* @since 1.0.0
|
|
57
|
+
*/
|
|
58
|
+
export declare class LogRotator {
|
|
59
|
+
private logDir;
|
|
60
|
+
private logBaseName;
|
|
61
|
+
private customConfig;
|
|
62
|
+
private configGetter;
|
|
63
|
+
/**
|
|
64
|
+
* Creates a new LogRotator instance.
|
|
65
|
+
*
|
|
66
|
+
* @param logDir - The directory where log files are stored
|
|
67
|
+
* @param logBaseName - The base name for log files (default: 'mcp-hub')
|
|
68
|
+
* @param customConfig - Optional custom configuration for independent rotation settings
|
|
69
|
+
* @param configGetter - Optional config getter function for global config access (for backward compatibility)
|
|
70
|
+
*/
|
|
71
|
+
constructor(logDir: string, logBaseName?: string, customConfig?: RotatorConfig, configGetter?: ConfigGetter);
|
|
72
|
+
/**
|
|
73
|
+
* Calculates the retention period in days from the configured rotation age.
|
|
74
|
+
*
|
|
75
|
+
* Parses the rotation age configuration value which can be in
|
|
76
|
+
* various formats (e.g., "7d", "24h", "1440m") and converts it to days.
|
|
77
|
+
* Hours and minutes are converted to days using ceiling division to ensure
|
|
78
|
+
* proper retention behavior.
|
|
79
|
+
*
|
|
80
|
+
* If a customConfig was provided, it will be used; otherwise, falls back to
|
|
81
|
+
* the configGetter if provided; defaults to 7 days.
|
|
82
|
+
*
|
|
83
|
+
* @returns {number} The retention period in days. Defaults to 7 days if the
|
|
84
|
+
* configuration is invalid or cannot be parsed.
|
|
85
|
+
* @private
|
|
86
|
+
*/
|
|
87
|
+
private getRetentionDays;
|
|
88
|
+
/**
|
|
89
|
+
* Generates a timestamp string in YYYYMMDD_HHmmSSZZZ format.
|
|
90
|
+
*
|
|
91
|
+
* @param date - The date to format, defaults to current date/time
|
|
92
|
+
* @returns {string} Formatted timestamp string
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
private formatTimestamp;
|
|
96
|
+
/**
|
|
97
|
+
* Creates a new log file path with the current timestamp.
|
|
98
|
+
*
|
|
99
|
+
* This method generates a log file path using the configured log directory and base name,
|
|
100
|
+
* combined with the current timestamp in YYYYMMDD_HHmmSSZZZ format. The resulting path
|
|
101
|
+
* follows the pattern: `{logDir}/{logBaseName}.{YYYYMMDD_HHmmSSZZZ}.log`
|
|
102
|
+
*
|
|
103
|
+
* This method should be called on application startup to create a new log file
|
|
104
|
+
* for each session.
|
|
105
|
+
*
|
|
106
|
+
* @returns {string} The absolute file path for the new log file.
|
|
107
|
+
* @example
|
|
108
|
+
* ```typescript
|
|
109
|
+
* const rotator = new LogRotator('/var/log/mcp-hub', 'mcp-hub');
|
|
110
|
+
* const logPath = rotator.createNewLogFilePath();
|
|
111
|
+
* // Returns: '/var/log/mcp-hub/mcp-hub.20260301_143022123.log' (with current timestamp)
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
createNewLogFilePath(): string;
|
|
115
|
+
/**
|
|
116
|
+
* Gets the latest existing log file path.
|
|
117
|
+
*
|
|
118
|
+
* This method scans the log directory and returns the path to the most recent
|
|
119
|
+
* log file based on the timestamp in the filename. If no log files exist,
|
|
120
|
+
* it returns null.
|
|
121
|
+
*
|
|
122
|
+
* @returns {string | null} The absolute file path to the latest log file, or null if none exist.
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const rotator = new LogRotator('/var/log/mcp-hub', 'mcp-hub');
|
|
126
|
+
* const latestLog = rotator.getLatestLogFilePath();
|
|
127
|
+
* // Returns: '/var/log/mcp-hub/mcp-hub.20260301_143022123.log' or null
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
getLatestLogFilePath(): string | null;
|
|
131
|
+
/**
|
|
132
|
+
* Gets the current log file path (backward compatibility).
|
|
133
|
+
*
|
|
134
|
+
* This method is maintained for backward compatibility. It first tries to get
|
|
135
|
+
* the latest existing log file. If none exists, it creates a new one.
|
|
136
|
+
*
|
|
137
|
+
* @returns {string} The absolute file path for the current log file.
|
|
138
|
+
* @deprecated Use createNewLogFilePath() or getLatestLogFilePath() instead
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const rotator = new LogRotator('/var/log/mcp-hub', 'mcp-hub');
|
|
142
|
+
* const logPath = rotator.getCurrentLogFilePath();
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
getCurrentLogFilePath(): string;
|
|
146
|
+
/**
|
|
147
|
+
* Performs log rotation by cleaning up old log files beyond the retention period.
|
|
148
|
+
*
|
|
149
|
+
* This method scans the configured log directory for files matching the pattern
|
|
150
|
+
* `{logBaseName}.{YYYY-MM-DD}.log` and removes any files that are older than
|
|
151
|
+
* the configured retention period (specified in the system configuration under
|
|
152
|
+
* `system.logging.rotationAge`).
|
|
153
|
+
*
|
|
154
|
+
* The retention period supports various time units:
|
|
155
|
+
* - 'd' for days (e.g., "7d" = 7 days)
|
|
156
|
+
* - 'h' for hours (e.g., "24h" = 1 day)
|
|
157
|
+
* - 'm' for minutes (e.g., "1440m" = 1 day)
|
|
158
|
+
*
|
|
159
|
+
* If no valid retention period is configured, it defaults to 7 days.
|
|
160
|
+
*
|
|
161
|
+
* This method should be called periodically (e.g., on application startup or
|
|
162
|
+
* via a scheduled task) to prevent log files from consuming excessive disk space.
|
|
163
|
+
*
|
|
164
|
+
* @returns {void}
|
|
165
|
+
* @throws {Error} If there's an error reading the log directory or deleting files,
|
|
166
|
+
* the error is caught and logged to console.error, but the method
|
|
167
|
+
* continues execution without throwing.
|
|
168
|
+
* @example
|
|
169
|
+
* ```typescript
|
|
170
|
+
* const rotator = new LogRotator('/var/log/mcp-hub', 'mcp-hub');
|
|
171
|
+
* rotator.rotateLogs(); // Cleans up log files older than configured retention period
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
rotateLogs(): void;
|
|
175
|
+
/**
|
|
176
|
+
* Retrieves all existing log files sorted by date (newest first).
|
|
177
|
+
*
|
|
178
|
+
* This method scans the configured log directory for files matching the pattern
|
|
179
|
+
* `{logBaseName}.{YYYY-MM-DD}.log`, extracts the date from each filename,
|
|
180
|
+
* and returns an array of absolute file paths sorted in descending order by date
|
|
181
|
+
* (newest files first).
|
|
182
|
+
*
|
|
183
|
+
* This is useful for log management interfaces, log viewing utilities, or any
|
|
184
|
+
* functionality that needs to present log files in chronological order.
|
|
185
|
+
*
|
|
186
|
+
* @returns {string[]} Array of absolute file paths to log files, sorted by date
|
|
187
|
+
* with newest files first. Returns an empty array if no log
|
|
188
|
+
* files are found or if an error occurs during scanning.
|
|
189
|
+
* @throws {Error} If there's an error reading the log directory, the error is
|
|
190
|
+
* caught and logged to console.error, but the method returns
|
|
191
|
+
* an empty array instead of throwing.
|
|
192
|
+
* @example
|
|
193
|
+
* ```typescript
|
|
194
|
+
* const rotator = new LogRotator('/var/log/mcp-hub', 'mcp-hub');
|
|
195
|
+
* const logFiles = rotator.getLogFiles();
|
|
196
|
+
* // Returns: [
|
|
197
|
+
* // '/var/log/mcp-hub/mcp-hub.2026-02-16.log',
|
|
198
|
+
* // '/var/log/mcp-hub/mcp-hub.2026-02-15.log',
|
|
199
|
+
* // '/var/log/mcp-hub/mcp-hub.2026-02-14.log'
|
|
200
|
+
* // ]
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
getLogFiles(): string[];
|
|
204
|
+
/**
|
|
205
|
+
* Extracts the date from a log filename.
|
|
206
|
+
*
|
|
207
|
+
* Parses filenames that match either:
|
|
208
|
+
* - New format: `{logBaseName}.{YYYYMMDD_HHmmSSZZZ}.log` (preferred)
|
|
209
|
+
* - Old format: `{logBaseName}.{YYYY-MM-DD}.log` (for backward compatibility)
|
|
210
|
+
*
|
|
211
|
+
* and extracts the date portion, converting it to a Date object.
|
|
212
|
+
*
|
|
213
|
+
* @param {string} filename - The log filename to parse
|
|
214
|
+
* (e.g., "mcp-hub.20260301_143022123.log" or "mcp-hub.2026-02-16.log")
|
|
215
|
+
* @returns {Date | null} A Date object representing the extracted date, or null
|
|
216
|
+
* if the filename doesn't match the expected pattern or
|
|
217
|
+
* contains an invalid date.
|
|
218
|
+
* @private
|
|
219
|
+
*/
|
|
220
|
+
private extractDateFromFilename;
|
|
221
|
+
}
|
|
222
|
+
export {};
|
|
223
|
+
//# sourceMappingURL=log-rotator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-rotator.d.ts","sourceRoot":"","sources":["../../../../src/utils/log-rotator.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,KAAK,YAAY,GAAG,MAAM;IAAE,MAAM,EAAE;QAAE,OAAO,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,YAAY,CAAsB;IAE1C;;;;;;;OAOG;gBAED,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAAkB,EAC/B,YAAY,CAAC,EAAE,aAAa,EAC5B,YAAY,CAAC,EAAE,YAAY;IAa7B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAWvB;;;;;;;;;;;;;;;;;OAiBG;IACI,oBAAoB,IAAI,MAAM;IAKrC;;;;;;;;;;;;;;OAcG;IACI,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAK5C;;;;;;;;;;;;;OAaG;IACI,qBAAqB,IAAI,MAAM;IAKtC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,UAAU,IAAI,IAAI;IAwBzB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,WAAW,IAAI,MAAM,EAAE;IAqB9B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,uBAAuB;CA8BhC"}
|