@loop_ouroboros/mcp-hub-lite 1.2.8 → 1.3.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.
Files changed (165) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/client/assets/{HomeView-CgEri1kD.js → HomeView-Bi2bkUKf.js} +1 -1
  3. package/dist/client/assets/{ResourceDetailView-DUJZbegl.css → ResourceDetailView-BkTSg91z.css} +1 -1
  4. package/dist/client/assets/ResourceDetailView-DyuSovH9.js +1 -0
  5. package/dist/client/assets/ResourcesView-CU0VbNy5.js +1 -0
  6. package/dist/client/assets/ResourcesView-zgV8Nq7w.css +1 -0
  7. package/dist/client/assets/{ServerDashboard-B3O-crvv.js → ServerDashboard-BGyyZAti.js} +1 -1
  8. package/dist/client/assets/{ServerDetail-CXg8rI3q.css → ServerDetail-CPNAFBPM.css} +1 -1
  9. package/dist/client/assets/ServerDetail-bcQ8BVXR.js +2 -0
  10. package/dist/client/assets/{ServerListView-SlZN8ppC.js → ServerListView-yQPVJFHG.js} +1 -1
  11. package/dist/client/assets/{ServerStatusTags.vue_vue_type_script_setup_true_lang-DmGg4uuV.js → ServerStatusTags.vue_vue_type_script_setup_true_lang-C8gQlxGE.js} +1 -1
  12. package/dist/client/assets/{SettingsView-D8fiOG0O.js → SettingsView-B1DxbFP3.js} +1 -1
  13. package/dist/client/assets/ToolCallDialog-BQ9UJZ_-.css +1 -0
  14. package/dist/client/assets/ToolCallDialog-DEapCO06.js +1 -0
  15. package/dist/client/assets/ToolsView-DA0u_bCw.js +1 -0
  16. package/dist/client/assets/ToolsView-cO61nMNr.css +1 -0
  17. package/dist/client/assets/{_baseClone-BYxCbA_9.js → _baseClone-B991Lvrt.js} +1 -1
  18. package/dist/client/assets/{el-form-item-ySymCPMr.js → el-form-item-DfWq_kSy.js} +1 -1
  19. package/dist/client/assets/{el-input-C85p6Nqj.js → el-input-5YzZrwir.js} +1 -1
  20. package/dist/client/assets/{el-loading-DIjKEx81.js → el-loading-DE3FcxNH.js} +1 -1
  21. package/dist/client/assets/{el-overlay-B_CxiSem.js → el-overlay-BTeTueuN.js} +1 -1
  22. package/dist/client/assets/{el-radio-group-BjkTCPRf.js → el-radio-group-Y1E2bxIW.js} +1 -1
  23. package/dist/client/assets/{el-skeleton-item-CupTKK6n.js → el-skeleton-item-DhgR50Jx.js} +1 -1
  24. package/dist/client/assets/{el-switch-BosIJ9jf.js → el-switch-fF--nMSD.js} +1 -1
  25. package/dist/client/assets/{el-tab-pane-BydxdJoc.js → el-tab-pane-rvS_KTwP.js} +1 -1
  26. package/dist/client/assets/{el-table-column-DV5TZOUW.js → el-table-column-B1O8mY47.js} +1 -1
  27. package/dist/client/assets/{index-xJkq2euk.css → index-Bzz3tYbS.css} +1 -1
  28. package/dist/client/assets/index-DkqV9kH4.js +2 -0
  29. package/dist/client/assets/{omit-DxDGRttI.js → omit-BIIebEYo.js} +1 -1
  30. package/dist/client/assets/{raf-Y9AoxecD.js → raf-Cj-gATZv.js} +1 -1
  31. package/dist/client/index.html +2 -2
  32. package/dist/server/shared/models/constants.d.ts +3 -0
  33. package/dist/server/shared/models/constants.d.ts.map +1 -0
  34. package/dist/server/shared/models/constants.js +2 -0
  35. package/dist/server/shared/models/index.d.ts +1 -0
  36. package/dist/server/shared/models/index.d.ts.map +1 -1
  37. package/dist/server/shared/models/index.js +1 -0
  38. package/dist/server/shared/types/index.d.ts +0 -1
  39. package/dist/server/shared/types/index.d.ts.map +1 -1
  40. package/dist/server/shared/types/index.js +0 -1
  41. package/dist/server/src/api/mcp/debug-response-wrapper.js +1 -1
  42. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
  43. package/dist/server/src/api/mcp/gateway.js +23 -41
  44. package/dist/server/src/api/web/hub-tools.d.ts.map +1 -1
  45. package/dist/server/src/api/web/hub-tools.js +11 -0
  46. package/dist/server/src/api/web/mcp-status.js +2 -2
  47. package/dist/server/src/api/web/search.d.ts +2 -1
  48. package/dist/server/src/api/web/search.d.ts.map +1 -1
  49. package/dist/server/src/api/web/search.js +23 -10
  50. package/dist/server/src/api/web/servers.js +1 -1
  51. package/dist/server/src/api/ws/events.js +1 -1
  52. package/dist/server/src/api/ws/ws-handler.js +1 -1
  53. package/dist/server/src/app.js +1 -1
  54. package/dist/server/src/cli/commands/tool-use.d.ts +10 -3
  55. package/dist/server/src/cli/commands/tool-use.d.ts.map +1 -1
  56. package/dist/server/src/cli/commands/tool-use.js +69 -30
  57. package/dist/server/src/config/config-change-logger.js +1 -1
  58. package/dist/server/src/config/config-loader.js +1 -1
  59. package/dist/server/src/config/config-manager.js +1 -1
  60. package/dist/server/src/config/config-migrator.d.ts +4 -48
  61. package/dist/server/src/config/config-migrator.d.ts.map +1 -1
  62. package/dist/server/src/config/config-migrator.js +2 -103
  63. package/dist/server/src/config/config-saver.js +1 -1
  64. package/dist/server/src/config/server-config-manager.js +1 -1
  65. package/dist/server/src/models/event.model.d.ts +0 -98
  66. package/dist/server/src/models/event.model.d.ts.map +1 -1
  67. package/dist/server/src/models/event.model.js +0 -4
  68. package/dist/server/src/models/server.model.d.ts +0 -2
  69. package/dist/server/src/models/server.model.d.ts.map +1 -1
  70. package/dist/server/src/models/system-tools.constants.d.ts +8 -3
  71. package/dist/server/src/models/system-tools.constants.d.ts.map +1 -1
  72. package/dist/server/src/models/system-tools.constants.js +5 -2
  73. package/dist/server/src/pid/manager.js +1 -1
  74. package/dist/server/src/pid/types.d.ts +0 -5
  75. package/dist/server/src/pid/types.d.ts.map +1 -1
  76. package/dist/server/src/server/dev-server.js +2 -2
  77. package/dist/server/src/server/runner.js +2 -2
  78. package/dist/server/src/server/startup.js +2 -2
  79. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
  80. package/dist/server/src/services/connection/connection-manager.js +16 -21
  81. package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -1
  82. package/dist/server/src/services/connection/tool-cache.js +10 -8
  83. package/dist/server/src/services/event-bus.service.d.ts +3 -1
  84. package/dist/server/src/services/event-bus.service.d.ts.map +1 -1
  85. package/dist/server/src/services/event-bus.service.js +1 -0
  86. package/dist/server/src/services/gateway/gateway.service.d.ts +1 -0
  87. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
  88. package/dist/server/src/services/gateway/gateway.service.js +29 -7
  89. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts +1 -2
  90. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -1
  91. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +24 -13
  92. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
  93. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +7 -3
  94. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -1
  95. package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +28 -1
  96. package/dist/server/src/services/gateway/tool-list-generator.d.ts +14 -19
  97. package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -1
  98. package/dist/server/src/services/gateway/tool-list-generator.js +221 -80
  99. package/dist/server/src/services/hub-manager.service.d.ts.map +1 -1
  100. package/dist/server/src/services/hub-manager.service.js +21 -4
  101. package/dist/server/src/services/hub-tools/instance-selector.js +1 -1
  102. package/dist/server/src/services/hub-tools/resource-generator.d.ts +0 -21
  103. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
  104. package/dist/server/src/services/hub-tools/resource-generator.js +15 -15
  105. package/dist/server/src/services/hub-tools/server-selector.js +1 -1
  106. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +1 -0
  107. package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -1
  108. package/dist/server/src/services/hub-tools/system-tool-definitions.js +25 -1
  109. package/dist/server/src/services/hub-tools.service.d.ts +21 -4
  110. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
  111. package/dist/server/src/services/hub-tools.service.js +74 -13
  112. package/dist/server/src/services/log-storage.service.js +1 -1
  113. package/dist/server/src/services/system-tool-handler.d.ts.map +1 -1
  114. package/dist/server/src/services/system-tool-handler.js +10 -2
  115. package/dist/server/src/utils/error-handler.js +1 -1
  116. package/dist/server/src/utils/index.d.ts +1 -1
  117. package/dist/server/src/utils/index.d.ts.map +1 -1
  118. package/dist/server/src/utils/index.js +1 -1
  119. package/dist/server/src/utils/instance-id.d.ts +0 -8
  120. package/dist/server/src/utils/instance-id.d.ts.map +1 -1
  121. package/dist/server/src/utils/instance-id.js +1 -1
  122. package/dist/server/src/utils/json-utils.js +4 -4
  123. package/dist/server/src/utils/log-rotator.d.ts +0 -15
  124. package/dist/server/src/utils/log-rotator.d.ts.map +1 -1
  125. package/dist/server/src/utils/log-rotator.js +0 -18
  126. package/dist/server/src/utils/logger/index.d.ts +0 -22
  127. package/dist/server/src/utils/logger/index.d.ts.map +1 -1
  128. package/dist/server/src/utils/logger/index.js +0 -29
  129. package/dist/server/src/utils/port-checker.js +1 -1
  130. package/dist/server/src/utils/sort-utils.d.ts +0 -16
  131. package/dist/server/src/utils/sort-utils.d.ts.map +1 -1
  132. package/dist/server/src/utils/sort-utils.js +0 -42
  133. package/dist/server/src/utils/transports/stdio-transport.js +1 -1
  134. package/dist/server/src/utils/transports/streamable-http-transport.js +1 -1
  135. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
  136. package/dist/server/src/utils/transports/transport-factory.js +26 -3
  137. package/dist/server/tests/contract/mcp-protocol/initialize.test.js +1 -1
  138. package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +1 -1
  139. package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +1 -1
  140. package/dist/server/tests/integration/gateway/fault-tolerance.test.js +1 -1
  141. package/dist/server/tests/integration/gateway/mcp-connection.test.js +1 -1
  142. package/dist/server/tests/types/logger-test-helpers.d.ts +1 -1
  143. package/dist/server/tests/types/logger-test-helpers.d.ts.map +1 -1
  144. package/dist/server/tests/unit/api/search.test.d.ts +2 -0
  145. package/dist/server/tests/unit/api/search.test.d.ts.map +1 -0
  146. package/dist/server/tests/unit/api/search.test.js +61 -0
  147. package/dist/server/tests/unit/config/config-migrator.test.js +45 -105
  148. package/dist/server/tests/unit/config/config-saver.test.js +1 -1
  149. package/dist/server/tests/unit/server/runner.test.js +5 -6
  150. package/dist/server/tests/unit/services/gateway-logging.test.js +1 -1
  151. package/dist/server/tests/unit/services/hub-manager-service.test.js +4 -5
  152. package/dist/server/tests/unit/services/hub-tools.service.test.js +80 -3
  153. package/dist/server/tests/unit/utils/log-rotator.test.js +1 -15
  154. package/dist/server/tests/unit/utils/logger.test.js +1 -23
  155. package/dist/server/tests/unit/utils/sort-utils.test.js +1 -92
  156. package/package.json +1 -3
  157. package/dist/client/assets/ResourceDetailView-B8Qo1_jK.js +0 -1
  158. package/dist/client/assets/ResourcesView-B12FzUdo.js +0 -1
  159. package/dist/client/assets/ResourcesView-Cc8RHtia.css +0 -1
  160. package/dist/client/assets/ServerDetail-Bz5_9yOY.js +0 -2
  161. package/dist/client/assets/ToolCallDialog-BhdPX-Kf.css +0 -1
  162. package/dist/client/assets/ToolCallDialog-DYEdhnCk.js +0 -1
  163. package/dist/client/assets/ToolsView-BreAl-yn.js +0 -1
  164. package/dist/client/assets/ToolsView-BxgXvPC3.css +0 -1
  165. package/dist/client/assets/index-kC4mf0Vo.js +0 -2
@@ -1,14 +1,9 @@
1
- import type { ServerInstance, SystemConfig } from './config.schema.js';
1
+ import type { SystemConfig } from './config.schema.js';
2
2
  import type { ServerRuntimeConfig } from '../../shared/models/server.model.js';
3
- /**
4
- * @deprecated Use ServerRuntimeConfig from @shared-models/server.model instead
5
- * Resolved server configuration with template + instance merged
6
- */
7
- export type ResolvedServerConfig = ServerRuntimeConfig;
8
3
  /**
9
4
  * Configuration Migration Result
10
5
  */
11
- export interface MigrationResult {
6
+ interface MigrationResult {
12
7
  success: boolean;
13
8
  backupPath?: string;
14
9
  migratedConfig?: SystemConfig;
@@ -18,7 +13,7 @@ export interface MigrationResult {
18
13
  /**
19
14
  * Configuration Migrator Options
20
15
  */
21
- export interface MigrationOptions {
16
+ interface MigrationOptions {
22
17
  dryRun?: boolean;
23
18
  createBackup?: boolean;
24
19
  validateAfterMigration?: boolean;
@@ -31,36 +26,6 @@ export interface MigrationOptions {
31
26
  * @returns Migration result with backup path and migrated config
32
27
  */
33
28
  export declare function migrateConfig(configPath: string, options?: MigrationOptions): MigrationResult;
34
- /**
35
- * Performs a dry run of the migration without modifying files
36
- *
37
- * @param configPath Path to the configuration file
38
- * @returns Migration result with what would happen
39
- */
40
- export declare function dryRunMigration(configPath: string): MigrationResult;
41
- /**
42
- * Rolls back a migration using a backup file
43
- *
44
- * @param configPath Path to the current configuration file
45
- * @param backupPath Path to the backup file
46
- * @returns Success status and any error message
47
- */
48
- export declare function rollbackMigration(configPath: string, backupPath: string): {
49
- success: boolean;
50
- error?: string;
51
- };
52
- /**
53
- * Checks the migration status of a configuration file
54
- *
55
- * @param configPath Path to the configuration file
56
- * @returns Status information
57
- */
58
- export declare function checkMigrationStatus(configPath: string): {
59
- exists: boolean;
60
- version: 'v1' | 'v1.1' | 'unknown';
61
- canMigrate: boolean;
62
- message: string;
63
- };
64
29
  /**
65
30
  * Resolves a server instance configuration by merging template and instance overrides
66
31
  *
@@ -69,14 +34,5 @@ export declare function checkMigrationStatus(configPath: string): {
69
34
  * @returns The resolved server configuration
70
35
  */
71
36
  export declare function resolveInstanceConfig(serverConfig: SystemConfig['servers'][string], instanceId?: string): ServerRuntimeConfig | null;
72
- /**
73
- * Gets all enabled instances for a server
74
- *
75
- * @param serverConfig The server configuration
76
- * @returns Array of enabled instances with resolved configs
77
- */
78
- export declare function getEnabledInstances(serverConfig: SystemConfig['servers'][string]): Array<{
79
- instance: ServerInstance;
80
- resolved: ServerRuntimeConfig;
81
- }>;
37
+ export {};
82
38
  //# sourceMappingURL=config-migrator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-migrator.d.ts","sourceRoot":"","sources":["../../../../src/config/config-migrator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAkB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AA0MD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAwDjG;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAMnE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAyBA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAsCA;AAID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC7C,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB,GAAG,IAAI,CA+B5B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAC5C,KAAK,CAAC;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAapE"}
1
+ {"version":3,"file":"config-migrator.d.ts","sourceRoot":"","sources":["../../../../src/config/config-migrator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAkC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAG1E;;GAEG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AA0MD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAwDjG;AAID;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAC7C,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB,GAAG,IAAI,CA+B5B"}
@@ -1,6 +1,6 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, join } from 'node:path';
3
- import { logger, LOG_MODULES } from '../utils/logger.js';
3
+ import { logger, LOG_MODULES } from '../utils/logger/index.js';
4
4
  import { generateInstanceId } from '../utils/instance-id.js';
5
5
  import { isLegacyV1Config, SystemConfigSchema } from './config.schema.js';
6
6
  import { reassignServerInstanceIndexes } from './server-config-manager.js';
@@ -207,90 +207,6 @@ export function migrateConfig(configPath, options = {}) {
207
207
  return result;
208
208
  }
209
209
  }
210
- /**
211
- * Performs a dry run of the migration without modifying files
212
- *
213
- * @param configPath Path to the configuration file
214
- * @returns Migration result with what would happen
215
- */
216
- export function dryRunMigration(configPath) {
217
- return migrateConfig(configPath, {
218
- dryRun: true,
219
- createBackup: false,
220
- validateAfterMigration: true
221
- });
222
- }
223
- /**
224
- * Rolls back a migration using a backup file
225
- *
226
- * @param configPath Path to the current configuration file
227
- * @param backupPath Path to the backup file
228
- * @returns Success status and any error message
229
- */
230
- export function rollbackMigration(configPath, backupPath) {
231
- try {
232
- if (!existsSync(backupPath)) {
233
- return {
234
- success: false,
235
- error: `Backup file not found: ${backupPath}`
236
- };
237
- }
238
- const backupContent = readFileSync(backupPath, 'utf8');
239
- const dir = dirname(configPath);
240
- if (!existsSync(dir)) {
241
- mkdirSync(dir, { recursive: true });
242
- }
243
- writeFileSync(configPath, backupContent, 'utf8');
244
- return { success: true };
245
- }
246
- catch (error) {
247
- return {
248
- success: false,
249
- error: error instanceof Error ? error.message : String(error)
250
- };
251
- }
252
- }
253
- /**
254
- * Checks the migration status of a configuration file
255
- *
256
- * @param configPath Path to the configuration file
257
- * @returns Status information
258
- */
259
- export function checkMigrationStatus(configPath) {
260
- if (!existsSync(configPath)) {
261
- return {
262
- exists: false,
263
- version: 'unknown',
264
- canMigrate: false,
265
- message: 'Configuration file does not exist'
266
- };
267
- }
268
- try {
269
- const config = loadConfigFile(configPath);
270
- if (!isLegacyV1Config(config)) {
271
- return {
272
- exists: true,
273
- version: 'v1.1',
274
- canMigrate: false,
275
- message: 'Configuration is already in v1.1 format'
276
- };
277
- }
278
- return {
279
- exists: true,
280
- version: 'v1',
281
- canMigrate: true,
282
- message: 'Configuration is in v1.0 format and can be migrated'
283
- };
284
- }
285
- catch (error) {
286
- return {
287
- exists: true,
288
- version: 'unknown',
289
- canMigrate: false,
290
- message: `Error reading configuration: ${error instanceof Error ? error.message : String(error)}`
291
- };
292
- }
293
- }
294
210
  // ====== v1.1 Configuration Helpers ======
295
211
  /**
296
212
  * Resolves a server instance configuration by merging template and instance overrides
@@ -329,21 +245,4 @@ export function resolveInstanceConfig(serverConfig, instanceId) {
329
245
  description: template.description
330
246
  };
331
247
  }
332
- /**
333
- * Gets all enabled instances for a server
334
- *
335
- * @param serverConfig The server configuration
336
- * @returns Array of enabled instances with resolved configs
337
- */
338
- export function getEnabledInstances(serverConfig) {
339
- const result = [];
340
- for (const instance of serverConfig.instances) {
341
- if (instance.enabled !== false) {
342
- const resolved = resolveInstanceConfig(serverConfig, instance.id);
343
- if (resolved) {
344
- result.push({ instance, resolved });
345
- }
346
- }
347
- }
348
- return result;
349
- }
248
+ // ====== Config Conversion Helpers ======
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import * as fs from 'fs';
6
6
  import path from 'path';
7
- import { logger } from '../utils/logger.js';
7
+ import { logger } from '../utils/logger/index.js';
8
8
  import { LOG_MODULES } from '../utils/logger/log-modules.js';
9
9
  /**
10
10
  * Saves the configuration to disk at the specified path.
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { ServerTemplateSchema, ServerInstanceSchema, ServerConfigSchema } from './config.schema.js';
6
6
  import { convertHttpToStreamableHttp } from './type-converter.js';
7
- import { logger, LOG_MODULES } from '../utils/logger.js';
7
+ import { logger, LOG_MODULES } from '../utils/logger/index.js';
8
8
  import { getObjectChanges, logObjectChangesWithTitle } from './config-change-logger.js';
9
9
  import { sortServerConfigEnvHeaders } from '../utils/sort-utils.js';
10
10
  import { generateInstanceId } from '../utils/instance-id.js';
@@ -1,100 +1,2 @@
1
- /**
2
- * Event data models
3
- * Contains all data interface definitions used by the event bus
4
- */
5
- import type { ServerConfig, ServerInstanceConfig } from '../config/config.schema.js';
6
- import type { Tool } from '../../shared/models/tool.model.js';
7
- import type { Resource } from '../../shared/models/resource.model.js';
8
- import type { LogLevel } from '../../shared/types/common.types.js';
9
- export interface ServerAddedEventData {
10
- name: string;
11
- config: ServerConfig;
12
- }
13
- export interface ServerUpdatedEventData {
14
- name: string;
15
- config: ServerConfig;
16
- }
17
- export type ServerDeletedEventData = string;
18
- export interface ServerInstanceAddedEventData {
19
- name: string;
20
- instance: ServerInstanceConfig;
21
- }
22
- export interface ServerInstanceUpdatedEventData {
23
- name: string;
24
- index: number;
25
- updates: Partial<ServerInstanceConfig>;
26
- }
27
- export interface ServerInstanceDeletedEventData {
28
- name: string;
29
- index: number;
30
- }
31
- export interface ServerConnectedEventData {
32
- serverName: string;
33
- serverIndex: number;
34
- status: 'online';
35
- timestamp: number;
36
- }
37
- export interface ServerDisconnectedEventData {
38
- serverName: string;
39
- serverIndex: number;
40
- status: 'offline';
41
- timestamp: number;
42
- }
43
- export interface ServerStatusChangeEventData {
44
- serverName: string;
45
- serverIndex: number;
46
- status: 'online' | 'offline' | 'error';
47
- error?: string;
48
- timestamp: number;
49
- }
50
- export interface ToolsUpdatedEventData {
51
- serverName: string;
52
- serverIndex: number;
53
- tools: Tool[];
54
- }
55
- export interface ToolCallStartedEventData {
56
- requestId: string;
57
- serverName: string;
58
- serverIndex: number;
59
- toolName: string;
60
- timestamp: number;
61
- args: Record<string, unknown>;
62
- }
63
- export interface ToolCallCompletedEventData {
64
- requestId: string;
65
- serverName: string;
66
- serverIndex: number;
67
- toolName: string;
68
- timestamp: number;
69
- result: unknown;
70
- }
71
- export interface ToolCallErrorEventData {
72
- requestId: string;
73
- serverName: string;
74
- serverIndex: number;
75
- toolName: string;
76
- timestamp: number;
77
- error: string;
78
- stack?: string;
79
- }
80
- export interface ResourcesUpdatedEventData {
81
- serverName: string;
82
- serverIndex: number;
83
- resources: Resource[];
84
- }
85
- export interface LogEntryEventData {
86
- serverName: string;
87
- serverIndex: number;
88
- logs: Array<{
89
- level: LogLevel;
90
- message: string;
91
- timestamp: number;
92
- }>;
93
- }
94
- export interface ConfigurationUpdatedEventData {
95
- timestamp: number;
96
- config: unknown;
97
- changes?: unknown;
98
- }
99
1
  export type EventData = unknown;
100
2
  //# sourceMappingURL=event.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.model.d.ts","sourceRoot":"","sources":["../../../../src/models/event.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.model.d.ts","sourceRoot":"","sources":["../../../../src/models/event.model.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC"}
@@ -1,5 +1 @@
1
- /**
2
- * Event data models
3
- * Contains all data interface definitions used by the event bus
4
- */
5
1
  export {};
@@ -1,4 +1,2 @@
1
- import type { ServerConfig as SharedServerConfig, ServerTemplate as SharedServerTemplate, ServerInstance as SharedServerInstance, ServerRuntimeConfig as SharedServerRuntimeConfig, ServerInstanceConfig as SharedServerInstanceConfig, TagDefinition as SharedTagDefinition, SystemConfig as SharedSystemConfig, LoggingConfig as SharedLoggingConfig, SecurityConfig as SharedSecurityConfig, Server as SharedServer, StatusInfo as SharedStatusInfo, LogEntry as SharedLogEntry } from '../../shared/models/server.model.js';
2
- export type { SharedServerConfig as ServerConfig, SharedServerTemplate as ServerTemplate, SharedServerInstance as ServerInstance, SharedServerRuntimeConfig as ServerRuntimeConfig, SharedServerInstanceConfig as ServerInstanceConfig, SharedTagDefinition as TagDefinition, SharedSystemConfig as SystemConfig, SharedLoggingConfig as LoggingConfig, SharedSecurityConfig as SecurityConfig, SharedServer as Server, SharedStatusInfo as StatusInfo, SharedLogEntry as LogEntry };
3
1
  export { InstanceSelectionStrategy } from '../../shared/models/server.model.js';
4
2
  //# sourceMappingURL=server.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.model.d.ts","sourceRoot":"","sources":["../../../../src/models/server.model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,IAAI,kBAAkB,EAClC,cAAc,IAAI,oBAAoB,EACtC,cAAc,IAAI,oBAAoB,EACtC,mBAAmB,IAAI,yBAAyB,EAChD,oBAAoB,IAAI,0BAA0B,EAClD,aAAa,IAAI,mBAAmB,EACpC,YAAY,IAAI,kBAAkB,EAClC,aAAa,IAAI,mBAAmB,EACpC,cAAc,IAAI,oBAAoB,EACtC,MAAM,IAAI,YAAY,EACtB,UAAU,IAAI,gBAAgB,EAC9B,QAAQ,IAAI,cAAc,EAC3B,MAAM,gCAAgC,CAAC;AAKxC,YAAY,EACV,kBAAkB,IAAI,YAAY,EAClC,oBAAoB,IAAI,cAAc,EACtC,oBAAoB,IAAI,cAAc,EACtC,yBAAyB,IAAI,mBAAmB,EAChD,0BAA0B,IAAI,oBAAoB,EAClD,mBAAmB,IAAI,aAAa,EACpC,kBAAkB,IAAI,YAAY,EAClC,mBAAmB,IAAI,aAAa,EACpC,oBAAoB,IAAI,cAAc,EACtC,YAAY,IAAI,MAAM,EACtB,gBAAgB,IAAI,UAAU,EAC9B,cAAc,IAAI,QAAQ,EAC3B,CAAC;AAGF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"server.model.d.ts","sourceRoot":"","sources":["../../../../src/models/server.model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -35,18 +35,22 @@ export interface UpdateServerDescriptionParams {
35
35
  export interface ListTagsParams {
36
36
  serverName: string;
37
37
  }
38
- export type SystemToolArgs = ListServersParams | ListToolsInServerParams | GetToolParams | CallToolParams | UpdateServerDescriptionParams | ListTagsParams;
38
+ export interface SearchToolsParams {
39
+ query: string;
40
+ }
41
+ export type SystemToolArgs = ListServersParams | ListToolsInServerParams | GetToolParams | CallToolParams | UpdateServerDescriptionParams | ListTagsParams | SearchToolsParams;
39
42
  export declare const LIST_SERVERS_TOOL = "list_servers";
40
43
  export declare const LIST_TOOLS_TOOL = "list_tools";
41
44
  export declare const GET_TOOL_TOOL = "get_tool";
42
45
  export declare const CALL_TOOL_TOOL = "call_tool";
43
46
  export declare const UPDATE_SERVER_DESCRIPTION_TOOL = "update_server_description";
44
47
  export declare const LIST_TAGS_TOOL = "list_tags";
48
+ export declare const SEARCH_TOOLS_TOOL = "search_tools";
45
49
  /**
46
50
  * List of all system tool names
47
51
  * This array is used to identify system tools across the application
48
52
  */
49
- export declare const SYSTEM_TOOL_NAMES: readonly ["list_servers", "list_tools", "get_tool", "call_tool", "update_server_description", "list_tags"];
53
+ export declare const SYSTEM_TOOL_NAMES: readonly ["list_servers", "list_tools", "get_tool", "call_tool", "update_server_description", "list_tags", "search_tools"];
50
54
  /**
51
55
  * Type definition for system tool names
52
56
  * Provides type safety when working with system tool names
@@ -55,6 +59,7 @@ export type SystemToolName = (typeof SYSTEM_TOOL_NAMES)[number];
55
59
  /**
56
60
  * MCP Hub Lite server name - represents both the system tools server and the gateway server
57
61
  * This single name is used for both system tool identification and gateway server naming
62
+ * Re-exported from shared for consistent usage across backend and frontend
58
63
  */
59
- export declare const MCP_HUB_LITE_SERVER = "mcp-hub-lite";
64
+ export { MCP_HUB_LITE_SERVER } from '../../shared/models/constants.js';
60
65
  //# sourceMappingURL=system-tools.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-tools.constants.d.ts","sourceRoot":"","sources":["../../../../src/models/system-tools.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,uBAAuB,GACvB,aAAa,GACb,cAAc,GACd,6BAA6B,GAC7B,cAAc,CAAC;AAGnB,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAC1E,eAAO,MAAM,cAAc,cAAc,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,4GAOpB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAGhE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAC"}
1
+ {"version":3,"file":"system-tools.constants.d.ts","sourceRoot":"","sources":["../../../../src/models/system-tools.constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,uBAAuB,GACvB,aAAa,GACb,cAAc,GACd,6BAA6B,GAC7B,cAAc,GACd,iBAAiB,CAAC;AAGtB,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAChD,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,aAAa,aAAa,CAAC;AACxC,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAC1E,eAAO,MAAM,cAAc,cAAc,CAAC;AAC1C,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,4HAQpB,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAGhE;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -9,6 +9,7 @@ export const GET_TOOL_TOOL = 'get_tool';
9
9
  export const CALL_TOOL_TOOL = 'call_tool';
10
10
  export const UPDATE_SERVER_DESCRIPTION_TOOL = 'update_server_description';
11
11
  export const LIST_TAGS_TOOL = 'list_tags';
12
+ export const SEARCH_TOOLS_TOOL = 'search_tools';
12
13
  /**
13
14
  * List of all system tool names
14
15
  * This array is used to identify system tools across the application
@@ -19,11 +20,13 @@ export const SYSTEM_TOOL_NAMES = [
19
20
  GET_TOOL_TOOL,
20
21
  CALL_TOOL_TOOL,
21
22
  UPDATE_SERVER_DESCRIPTION_TOOL,
22
- LIST_TAGS_TOOL
23
+ LIST_TAGS_TOOL,
24
+ SEARCH_TOOLS_TOOL
23
25
  ];
24
26
  // Individual gateway server name constant
25
27
  /**
26
28
  * MCP Hub Lite server name - represents both the system tools server and the gateway server
27
29
  * This single name is used for both system tool identification and gateway server naming
30
+ * Re-exported from shared for consistent usage across backend and frontend
28
31
  */
29
- export const MCP_HUB_LITE_SERVER = 'mcp-hub-lite';
32
+ export { MCP_HUB_LITE_SERVER } from '../../shared/models/constants.js';
@@ -23,7 +23,7 @@
23
23
  * // Clean up PID file on shutdown
24
24
  * PidManager.removePid();
25
25
  */
26
- import { logger } from '../utils/logger.js';
26
+ import { logger } from '../utils/logger/index.js';
27
27
  import { LOG_MODULES } from '../utils/logger/log-modules.js';
28
28
  import { writePidFile, readPidFile, removePidFile, pidFileExists } from './file.js';
29
29
  export class PidManager {
@@ -1,11 +1,6 @@
1
1
  /**
2
2
  * PID management related type definitions
3
3
  */
4
- export interface PidInfo {
5
- pid: number;
6
- timestamp: number;
7
- port?: number;
8
- }
9
4
  export interface PidFileOptions {
10
5
  configDir?: string;
11
6
  filename?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/pid/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/pid/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -1,7 +1,7 @@
1
1
  import { buildApp } from '../app.js';
2
2
  import { configManager } from '../config/config-manager.js';
3
- import { logger, LOG_MODULES } from '../utils/logger.js';
4
- import { mcpConnectionManager } from '../services/mcp-connection-manager.js';
3
+ import { logger, LOG_MODULES } from '../utils/logger/index.js';
4
+ import { mcpConnectionManager } from '../services/connection/index.js';
5
5
  import { PidManager } from '../pid/manager.js';
6
6
  import { collectConnectTasks, executeConnectTasks, ensureServerInstances } from './startup.js';
7
7
  // Set log level to debug for development server
@@ -1,9 +1,9 @@
1
1
  import { buildApp } from '../app.js';
2
2
  import { configManager } from '../config/config-manager.js';
3
- import { logger } from '../utils/logger.js';
3
+ import { logger } from '../utils/logger/index.js';
4
4
  import { LOG_MODULES } from '../utils/logger/log-modules.js';
5
5
  import { setJsonPrettyConfigGetter } from '../utils/json-utils.js';
6
- import { mcpConnectionManager } from '../services/mcp-connection-manager.js';
6
+ import { mcpConnectionManager } from '../services/connection/index.js';
7
7
  import { PidManager } from '../pid/manager.js';
8
8
  import { checkPortWithExit } from '../utils/port-checker.js';
9
9
  import { collectConnectTasks, executeConnectTasks, ensureServerInstances } from './startup.js';
@@ -6,8 +6,8 @@
6
6
  */
7
7
  import { configManager } from '../config/config-manager.js';
8
8
  import { resolveInstanceConfig } from '../config/config-migrator.js';
9
- import { mcpConnectionManager } from '../services/mcp-connection-manager.js';
10
- import { logger } from '../utils/logger.js';
9
+ import { mcpConnectionManager } from '../services/connection/index.js';
10
+ import { logger } from '../utils/logger/index.js';
11
11
  /**
12
12
  * Ensures all configured servers have at least one instance.
13
13
  * Creates a default instance for any server that doesn't have one yet.
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/connection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
2
  import { TransportFactory } from '../../utils/transports/transport-factory.js';
3
3
  import { UnauthorizedError, auth } from '@modelcontextprotocol/sdk/client/auth.js';
4
4
  import { StreamableHttpTransport } from '../../utils/transports/streamable-http-transport.js';
5
- import { logger, LOG_MODULES, formatMcpMessageForLogging, logNotificationMessage } from '../../utils/logger.js';
5
+ import { logger, LOG_MODULES, formatMcpMessageForLogging, logNotificationMessage } from '../../utils/logger/index.js';
6
6
  import { getAppVersion } from '../../utils/version.js';
7
7
  import { getMcpCommDebugSetting } from '../../utils/json-utils.js';
8
8
  import { logStorage } from '../log-storage.service.js';
@@ -117,7 +117,7 @@ export class McpConnectionManager {
117
117
  // 4. Get server info
118
118
  const serverInfo = this.getServerInfo(serverId);
119
119
  // 5. Create transport and set up callbacks
120
- const { transport, pid } = this.initializeTransport(server, serverInfo, compositeKey, serverName, serverIndex, oauthProvider ?? undefined);
120
+ const { transport } = this.initializeTransport(server, serverInfo, compositeKey, serverName, serverIndex, oauthProvider ?? undefined);
121
121
  // Capture OAuth provider from the transport (reuse across retries)
122
122
  if (!oauthProvider && transport instanceof StreamableHttpTransport) {
123
123
  const provider = transport.getOAuthProvider();
@@ -134,16 +134,23 @@ export class McpConnectionManager {
134
134
  }
135
135
  // 6. Establish client connection
136
136
  const client = await this.establishClientConnection(transport);
137
- // 7. Register connection
137
+ // 7. Extract PID after transport is started
138
+ const pid = (() => {
139
+ if ('pid' in transport && typeof transport.pid === 'number') {
140
+ return transport.pid;
141
+ }
142
+ return undefined;
143
+ })();
144
+ // 8. Register connection
138
145
  this.registerConnection(compositeKey, serverName, client, transport);
139
- // 8. Update connected status
146
+ // 9. Update connected status
140
147
  this.updateConnectedStatus(compositeKey, client, pid);
141
148
  // 9. Publish connection events
142
149
  this.publishConnectionEvents(serverName, serverIndex);
143
150
  // 10. Refresh resources
144
- await this.refreshServerResources(serverName, serverIndex, server.type);
151
+ await this.refreshServerResources(serverName, serverIndex);
145
152
  // 11. Request log notifications from downstream server
146
- await this.requestLoggingFromServer(compositeKey, client, server.type);
153
+ await this.requestLoggingFromServer(compositeKey, client);
147
154
  return true;
148
155
  }
149
156
  catch (error) {
@@ -308,12 +315,7 @@ export class McpConnectionManager {
308
315
  logStorage.append(compositeKey, 'error', `[${serverName}] [STDERR] ${data}`);
309
316
  };
310
317
  }
311
- // Get PID if available (only for stdio transport)
312
- let pid;
313
- if ('pid' in transport && typeof transport.pid === 'number') {
314
- pid = transport.pid;
315
- }
316
- return { transport, pid };
318
+ return { transport };
317
319
  }
318
320
  /**
319
321
  * Creates Client and connects to transport.
@@ -378,11 +380,7 @@ export class McpConnectionManager {
378
380
  /**
379
381
  * Refreshes server tools and resources (only for bidirectional transports).
380
382
  */
381
- async refreshServerResources(serverName, serverIndex, serverType) {
382
- if (serverType === 'sse') {
383
- logger.info('SSE transport is unidirectional, skipping tool/resource refresh', LOG_MODULES.CONNECTION_MANAGER);
384
- return;
385
- }
383
+ async refreshServerResources(serverName, serverIndex) {
386
384
  const tools = await this.refreshTools(serverName, serverIndex);
387
385
  const resources = await this.refreshResources(serverName, serverIndex);
388
386
  eventBus.publish(EventTypes.TOOLS_UPDATED, {
@@ -400,10 +398,7 @@ export class McpConnectionManager {
400
398
  * Sends logging/setLevel request to downstream server to start receiving log notifications.
401
399
  * This is a best-effort request — servers that don't support logging will silently ignore it.
402
400
  */
403
- async requestLoggingFromServer(compositeKey, client, serverType) {
404
- // SSE is unidirectional — cannot send requests to the server
405
- if (serverType === 'sse')
406
- return;
401
+ async requestLoggingFromServer(compositeKey, client) {
407
402
  try {
408
403
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
409
404
  await client.request({ method: 'logging/setLevel', params: { level: 'info' } }, { timeout: 5000 });
@@ -1 +1 @@
1
- {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/tool-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAIzD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,qBAAqB,CAAkC;IAE/D;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IASjD;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAS/C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAWtE;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE;IAWzD;;;;;OAKG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAIhD;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAM/D;;;;OAIG;IACH,WAAW,IAAI,IAAI,EAAE;IAQrB;;;;OAIG;IACH,uBAAuB,IAAI,IAAI,EAAE;IAQjC;;;;OAIG;IACH,mBAAmB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IAIzC;;;;;;OAMG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAI7C;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAWzD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAE3C;CACF"}
1
+ {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/tool-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAIzD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,qBAAqB,CAAkC;IAE/D;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IASjD;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAS/C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAWtE;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE;IAWzD;;;;;OAKG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAIhD;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAM/D;;;;OAIG;IACH,WAAW,IAAI,IAAI,EAAE;IAIrB;;;;OAIG;IACH,uBAAuB,IAAI,IAAI,EAAE;IAQjC;;;;OAIG;IACH,mBAAmB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IAIzC;;;;;;OAMG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAI7C;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAWzD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAE3C;CACF"}
@@ -1,4 +1,4 @@
1
- import { logger, LOG_MODULES } from '../../utils/logger.js';
1
+ import { logger, LOG_MODULES } from '../../utils/logger/index.js';
2
2
  import { getCompositeKey } from '../../utils/composite-key.js';
3
3
  import { normalizeToolName } from '../../utils/name-converter.js';
4
4
  /**
@@ -119,11 +119,7 @@ export class ToolCache {
119
119
  * @returns Array of all tools from all servers
120
120
  */
121
121
  getAllTools() {
122
- const allTools = [];
123
- for (const tools of this.toolCache.values()) {
124
- allTools.push(...tools);
125
- }
126
- return allTools;
122
+ return this.getAllToolsByServerName();
127
123
  }
128
124
  /**
129
125
  * Gets all tools from the server name-level cache.
@@ -174,13 +170,19 @@ export class ToolCache {
174
170
  * @param serverName - The server name to update
175
171
  */
176
172
  updateServerNameCache(serverName) {
177
- const allToolsForServer = [];
173
+ const toolMap = new Map();
178
174
  for (const [compositeKey, cachedTools] of this.toolCache.entries()) {
179
175
  const instanceServerName = this.getServerNameById(compositeKey);
180
176
  if (instanceServerName === serverName) {
181
- allToolsForServer.push(...cachedTools);
177
+ for (const tool of cachedTools) {
178
+ const key = normalizeToolName(tool.name);
179
+ if (!toolMap.has(key)) {
180
+ toolMap.set(key, tool);
181
+ }
182
+ }
182
183
  }
183
184
  }
185
+ const allToolsForServer = Array.from(toolMap.values());
184
186
  if (allToolsForServer.length > 0) {
185
187
  this.serverNameToolCache.set(serverName, allToolsForServer);
186
188
  }