@1mcp/agent 0.28.1 → 0.29.0-beta1

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 (399) hide show
  1. package/build/auth/sessionTypes.d.ts +19 -0
  2. package/build/auth/sessionTypes.d.ts.map +1 -1
  3. package/build/commands/app/backups.d.ts.map +1 -1
  4. package/build/commands/app/backups.js +52 -42
  5. package/build/commands/app/backups.js.map +1 -1
  6. package/build/commands/app/consolidate.d.ts.map +1 -1
  7. package/build/commands/app/consolidate.js +66 -55
  8. package/build/commands/app/consolidate.js.map +1 -1
  9. package/build/commands/app/discover.d.ts.map +1 -1
  10. package/build/commands/app/discover.js +32 -25
  11. package/build/commands/app/discover.js.map +1 -1
  12. package/build/commands/app/index.d.ts.map +1 -1
  13. package/build/commands/app/index.js +2 -1
  14. package/build/commands/app/index.js.map +1 -1
  15. package/build/commands/app/list.d.ts.map +1 -1
  16. package/build/commands/app/list.js +35 -28
  17. package/build/commands/app/list.js.map +1 -1
  18. package/build/commands/app/restore.d.ts.map +1 -1
  19. package/build/commands/app/restore.js +74 -63
  20. package/build/commands/app/restore.js.map +1 -1
  21. package/build/commands/app/status.d.ts.map +1 -1
  22. package/build/commands/app/status.js +51 -43
  23. package/build/commands/app/status.js.map +1 -1
  24. package/build/commands/mcp/add.d.ts.map +1 -1
  25. package/build/commands/mcp/add.js +29 -23
  26. package/build/commands/mcp/add.js.map +1 -1
  27. package/build/commands/mcp/enable.d.ts.map +1 -1
  28. package/build/commands/mcp/enable.js +16 -15
  29. package/build/commands/mcp/enable.js.map +1 -1
  30. package/build/commands/mcp/index.d.ts.map +1 -1
  31. package/build/commands/mcp/index.js +2 -1
  32. package/build/commands/mcp/index.js.map +1 -1
  33. package/build/commands/mcp/install.d.ts.map +1 -1
  34. package/build/commands/mcp/install.js +44 -46
  35. package/build/commands/mcp/install.js.map +1 -1
  36. package/build/commands/mcp/list.d.ts.map +1 -1
  37. package/build/commands/mcp/list.js +51 -37
  38. package/build/commands/mcp/list.js.map +1 -1
  39. package/build/commands/mcp/remove.d.ts.map +1 -1
  40. package/build/commands/mcp/remove.js +23 -16
  41. package/build/commands/mcp/remove.js.map +1 -1
  42. package/build/commands/mcp/status.d.ts.map +1 -1
  43. package/build/commands/mcp/status.js +81 -73
  44. package/build/commands/mcp/status.js.map +1 -1
  45. package/build/commands/mcp/tokens.d.ts.map +1 -1
  46. package/build/commands/mcp/tokens.js +46 -47
  47. package/build/commands/mcp/tokens.js.map +1 -1
  48. package/build/commands/mcp/uninstall.d.ts.map +1 -1
  49. package/build/commands/mcp/uninstall.js +8 -6
  50. package/build/commands/mcp/uninstall.js.map +1 -1
  51. package/build/commands/mcp/update.d.ts.map +1 -1
  52. package/build/commands/mcp/update.js +11 -8
  53. package/build/commands/mcp/update.js.map +1 -1
  54. package/build/commands/mcp/utils/installWizard.d.ts.map +1 -1
  55. package/build/commands/mcp/utils/installWizard.js +3 -2
  56. package/build/commands/mcp/utils/installWizard.js.map +1 -1
  57. package/build/commands/mcp/utils/serverUtils.d.ts +8 -4
  58. package/build/commands/mcp/utils/serverUtils.d.ts.map +1 -1
  59. package/build/commands/mcp/utils/serverUtils.js +0 -3
  60. package/build/commands/mcp/utils/serverUtils.js.map +1 -1
  61. package/build/commands/mcp/wizard/components/serverDetailsDisplay.d.ts.map +1 -1
  62. package/build/commands/mcp/wizard/components/serverDetailsDisplay.js +4 -3
  63. package/build/commands/mcp/wizard/components/serverDetailsDisplay.js.map +1 -1
  64. package/build/commands/mcp/wizard/components/stepIndicator.d.ts.map +1 -1
  65. package/build/commands/mcp/wizard/components/stepIndicator.js +3 -2
  66. package/build/commands/mcp/wizard/components/stepIndicator.js.map +1 -1
  67. package/build/commands/mcp/wizard/components/welcomeScreen.d.ts.map +1 -1
  68. package/build/commands/mcp/wizard/components/welcomeScreen.js +2 -1
  69. package/build/commands/mcp/wizard/components/welcomeScreen.js.map +1 -1
  70. package/build/commands/mcp/wizard/configuration.d.ts.map +1 -1
  71. package/build/commands/mcp/wizard/configuration.js +10 -9
  72. package/build/commands/mcp/wizard/configuration.js.map +1 -1
  73. package/build/commands/mcp/wizard/display.d.ts.map +1 -1
  74. package/build/commands/mcp/wizard/display.js +9 -8
  75. package/build/commands/mcp/wizard/display.js.map +1 -1
  76. package/build/commands/mcp/wizard/search.d.ts.map +1 -1
  77. package/build/commands/mcp/wizard/search.js +4 -3
  78. package/build/commands/mcp/wizard/search.js.map +1 -1
  79. package/build/commands/preset/create.d.ts.map +1 -1
  80. package/build/commands/preset/create.js +7 -6
  81. package/build/commands/preset/create.js.map +1 -1
  82. package/build/commands/preset/delete.d.ts.map +1 -1
  83. package/build/commands/preset/delete.js +4 -2
  84. package/build/commands/preset/delete.js.map +1 -1
  85. package/build/commands/preset/edit.d.ts.map +1 -1
  86. package/build/commands/preset/edit.js +8 -5
  87. package/build/commands/preset/edit.js.map +1 -1
  88. package/build/commands/preset/interactive.d.ts.map +1 -1
  89. package/build/commands/preset/interactive.js +24 -15
  90. package/build/commands/preset/interactive.js.map +1 -1
  91. package/build/commands/preset/list.d.ts.map +1 -1
  92. package/build/commands/preset/list.js +12 -10
  93. package/build/commands/preset/list.js.map +1 -1
  94. package/build/commands/preset/show.d.ts.map +1 -1
  95. package/build/commands/preset/show.js +3 -2
  96. package/build/commands/preset/show.js.map +1 -1
  97. package/build/commands/preset/test.d.ts.map +1 -1
  98. package/build/commands/preset/test.js +2 -1
  99. package/build/commands/preset/test.js.map +1 -1
  100. package/build/commands/preset/url.d.ts.map +1 -1
  101. package/build/commands/preset/url.js +2 -1
  102. package/build/commands/preset/url.js.map +1 -1
  103. package/build/commands/proxy/index.d.ts.map +1 -1
  104. package/build/commands/proxy/index.js +5 -0
  105. package/build/commands/proxy/index.js.map +1 -1
  106. package/build/commands/proxy/proxy.d.ts.map +1 -1
  107. package/build/commands/proxy/proxy.js +1 -0
  108. package/build/commands/proxy/proxy.js.map +1 -1
  109. package/build/commands/registry/index.d.ts.map +1 -1
  110. package/build/commands/registry/index.js +2 -1
  111. package/build/commands/registry/index.js.map +1 -1
  112. package/build/commands/registry/search.d.ts.map +1 -1
  113. package/build/commands/registry/search.js +42 -37
  114. package/build/commands/registry/search.js.map +1 -1
  115. package/build/commands/registry/show.d.ts.map +1 -1
  116. package/build/commands/registry/show.js +8 -7
  117. package/build/commands/registry/show.js.map +1 -1
  118. package/build/commands/registry/status.d.ts.map +1 -1
  119. package/build/commands/registry/status.js +26 -16
  120. package/build/commands/registry/status.js.map +1 -1
  121. package/build/commands/registry/versions.d.ts.map +1 -1
  122. package/build/commands/registry/versions.js +8 -7
  123. package/build/commands/registry/versions.js.map +1 -1
  124. package/build/config/configChangeDetector.d.ts +8 -0
  125. package/build/config/configChangeDetector.d.ts.map +1 -0
  126. package/build/config/configChangeDetector.js +49 -0
  127. package/build/config/configChangeDetector.js.map +1 -0
  128. package/build/config/configLoader.d.ts +16 -0
  129. package/build/config/configLoader.d.ts.map +1 -0
  130. package/build/config/configLoader.js +155 -0
  131. package/build/config/configLoader.js.map +1 -0
  132. package/build/config/configManager.d.ts +49 -86
  133. package/build/config/configManager.d.ts.map +1 -1
  134. package/build/config/configManager.js +188 -301
  135. package/build/config/configManager.js.map +1 -1
  136. package/build/config/configWatcher.d.ts +18 -0
  137. package/build/config/configWatcher.d.ts.map +1 -0
  138. package/build/config/configWatcher.js +78 -0
  139. package/build/config/configWatcher.js.map +1 -0
  140. package/build/config/projectConfigTypes.d.ts +40 -0
  141. package/build/config/projectConfigTypes.d.ts.map +1 -1
  142. package/build/config/projectConfigTypes.js +21 -0
  143. package/build/config/projectConfigTypes.js.map +1 -1
  144. package/build/config/templateProcessor.d.ts +14 -0
  145. package/build/config/templateProcessor.d.ts.map +1 -0
  146. package/build/config/templateProcessor.js +102 -0
  147. package/build/config/templateProcessor.js.map +1 -0
  148. package/build/config/types.d.ts +36 -0
  149. package/build/config/types.d.ts.map +1 -0
  150. package/build/config/types.js +14 -0
  151. package/build/config/types.js.map +1 -0
  152. package/build/constants/mcp.d.ts +1 -1
  153. package/build/constants/mcp.d.ts.map +1 -1
  154. package/build/constants/mcp.js +1 -1
  155. package/build/constants/mcp.js.map +1 -1
  156. package/build/core/client/clientFactory.d.ts +7 -0
  157. package/build/core/client/clientFactory.d.ts.map +1 -0
  158. package/build/core/client/clientFactory.js +36 -0
  159. package/build/core/client/clientFactory.js.map +1 -0
  160. package/build/core/client/clientManager.d.ts +13 -101
  161. package/build/core/client/clientManager.d.ts.map +1 -1
  162. package/build/core/client/clientManager.js +115 -418
  163. package/build/core/client/clientManager.js.map +1 -1
  164. package/build/core/client/connectionHandler.d.ts +8 -0
  165. package/build/core/client/connectionHandler.d.ts.map +1 -0
  166. package/build/core/client/connectionHandler.js +80 -0
  167. package/build/core/client/connectionHandler.js.map +1 -0
  168. package/build/core/client/oauthFlowHandler.d.ts +10 -0
  169. package/build/core/client/oauthFlowHandler.d.ts.map +1 -0
  170. package/build/core/client/oauthFlowHandler.js +81 -0
  171. package/build/core/client/oauthFlowHandler.js.map +1 -0
  172. package/build/core/client/transportRecreator.d.ts +5 -0
  173. package/build/core/client/transportRecreator.d.ts.map +1 -0
  174. package/build/core/client/transportRecreator.js +23 -0
  175. package/build/core/client/transportRecreator.js.map +1 -0
  176. package/build/core/client/types.d.ts +7 -0
  177. package/build/core/client/types.d.ts.map +1 -0
  178. package/build/core/client/types.js +11 -0
  179. package/build/core/client/types.js.map +1 -0
  180. package/build/core/configChangeHandler.d.ts.map +1 -1
  181. package/build/core/configChangeHandler.js +11 -5
  182. package/build/core/configChangeHandler.js.map +1 -1
  183. package/build/core/context/globalContextManager.d.ts +58 -0
  184. package/build/core/context/globalContextManager.d.ts.map +1 -0
  185. package/build/core/context/globalContextManager.js +190 -0
  186. package/build/core/context/globalContextManager.js.map +1 -0
  187. package/build/core/filtering/clientFiltering.d.ts +1 -2
  188. package/build/core/filtering/clientFiltering.d.ts.map +1 -1
  189. package/build/core/filtering/clientTemplateTracker.d.ts +116 -0
  190. package/build/core/filtering/clientTemplateTracker.d.ts.map +1 -0
  191. package/build/core/filtering/clientTemplateTracker.js +286 -0
  192. package/build/core/filtering/clientTemplateTracker.js.map +1 -0
  193. package/build/core/filtering/filterCache.d.ts +121 -0
  194. package/build/core/filtering/filterCache.d.ts.map +1 -0
  195. package/build/core/filtering/filterCache.js +359 -0
  196. package/build/core/filtering/filterCache.js.map +1 -0
  197. package/build/core/filtering/index.d.ts +16 -0
  198. package/build/core/filtering/index.d.ts.map +1 -0
  199. package/build/core/filtering/index.js +16 -0
  200. package/build/core/filtering/index.js.map +1 -0
  201. package/build/core/filtering/templateFilteringService.d.ts +72 -0
  202. package/build/core/filtering/templateFilteringService.d.ts.map +1 -0
  203. package/build/core/filtering/templateFilteringService.js +293 -0
  204. package/build/core/filtering/templateFilteringService.js.map +1 -0
  205. package/build/core/filtering/templateIndex.d.ts +132 -0
  206. package/build/core/filtering/templateIndex.d.ts.map +1 -0
  207. package/build/core/filtering/templateIndex.js +368 -0
  208. package/build/core/filtering/templateIndex.js.map +1 -0
  209. package/build/core/flags/flagManager.d.ts +8 -4
  210. package/build/core/flags/flagManager.d.ts.map +1 -1
  211. package/build/core/flags/flagManager.js.map +1 -1
  212. package/build/core/protocol/requestHandlers.d.ts.map +1 -1
  213. package/build/core/protocol/requestHandlers.js +208 -46
  214. package/build/core/protocol/requestHandlers.js.map +1 -1
  215. package/build/core/server/clientInstancePool.d.ts +146 -0
  216. package/build/core/server/clientInstancePool.d.ts.map +1 -0
  217. package/build/core/server/clientInstancePool.js +407 -0
  218. package/build/core/server/clientInstancePool.js.map +1 -0
  219. package/build/core/server/connectionManager.d.ts +70 -0
  220. package/build/core/server/connectionManager.d.ts.map +1 -0
  221. package/build/core/server/connectionManager.js +240 -0
  222. package/build/core/server/connectionManager.js.map +1 -0
  223. package/build/core/server/mcpServerLifecycleManager.d.ts +55 -0
  224. package/build/core/server/mcpServerLifecycleManager.d.ts.map +1 -0
  225. package/build/core/server/mcpServerLifecycleManager.js +272 -0
  226. package/build/core/server/mcpServerLifecycleManager.js.map +1 -0
  227. package/build/core/server/serverManager.d.ts +56 -56
  228. package/build/core/server/serverManager.d.ts.map +1 -1
  229. package/build/core/server/serverManager.js +160 -431
  230. package/build/core/server/serverManager.js.map +1 -1
  231. package/build/core/server/templateConfigurationManager.d.ts +51 -0
  232. package/build/core/server/templateConfigurationManager.d.ts.map +1 -0
  233. package/build/core/server/templateConfigurationManager.js +160 -0
  234. package/build/core/server/templateConfigurationManager.js.map +1 -0
  235. package/build/core/server/templateServerManager.d.ts +92 -0
  236. package/build/core/server/templateServerManager.d.ts.map +1 -0
  237. package/build/core/server/templateServerManager.js +367 -0
  238. package/build/core/server/templateServerManager.js.map +1 -0
  239. package/build/core/tools/handlers/serverManagementHandler.d.ts +51 -1
  240. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  241. package/build/core/tools/handlers/serverManagementHandler.js +42 -0
  242. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
  243. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +11 -1
  244. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  245. package/build/core/tools/internal/adapters/installation/types.d.ts +2 -4
  246. package/build/core/tools/internal/adapters/installation/types.d.ts.map +1 -1
  247. package/build/core/tools/internal/adapters/installationAdapter.d.ts +2 -4
  248. package/build/core/tools/internal/adapters/installationAdapter.d.ts.map +1 -1
  249. package/build/core/tools/internal/adapters/installationAdapter.js.map +1 -1
  250. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +2 -5
  251. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -1
  252. package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -1
  253. package/build/core/tools/internal/adapters/management/types.d.ts +8 -4
  254. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -1
  255. package/build/core/tools/internal/index.d.ts +0 -31
  256. package/build/core/tools/internal/index.d.ts.map +1 -1
  257. package/build/core/tools/internal/index.js +4 -3
  258. package/build/core/tools/internal/index.js.map +1 -1
  259. package/build/core/tools/internal/schemas/index.d.ts +3 -3
  260. package/build/core/tools/internal/schemas/management.d.ts +3 -3
  261. package/build/core/types/server.d.ts +19 -0
  262. package/build/core/types/server.d.ts.map +1 -1
  263. package/build/core/types/server.js.map +1 -1
  264. package/build/core/types/transport.d.ts +178 -0
  265. package/build/core/types/transport.d.ts.map +1 -1
  266. package/build/core/types/transport.js +34 -0
  267. package/build/core/types/transport.js.map +1 -1
  268. package/build/core/validation/CustomJsonSchemaValidator.d.ts.map +1 -1
  269. package/build/core/validation/CustomJsonSchemaValidator.js +4 -3
  270. package/build/core/validation/CustomJsonSchemaValidator.js.map +1 -1
  271. package/build/domains/discovery/appPresets.d.ts.map +1 -1
  272. package/build/domains/discovery/appPresets.js +9 -7
  273. package/build/domains/discovery/appPresets.js.map +1 -1
  274. package/build/domains/installation/configurators/cliArgsConfigurator.d.ts.map +1 -1
  275. package/build/domains/installation/configurators/cliArgsConfigurator.js +8 -4
  276. package/build/domains/installation/configurators/cliArgsConfigurator.js.map +1 -1
  277. package/build/domains/installation/configurators/envVarConfigurator.d.ts.map +1 -1
  278. package/build/domains/installation/configurators/envVarConfigurator.js +8 -4
  279. package/build/domains/installation/configurators/envVarConfigurator.js.map +1 -1
  280. package/build/domains/installation/configurators/tagsConfigurator.d.ts +2 -4
  281. package/build/domains/installation/configurators/tagsConfigurator.d.ts.map +1 -1
  282. package/build/domains/installation/configurators/tagsConfigurator.js +4 -7
  283. package/build/domains/installation/configurators/tagsConfigurator.js.map +1 -1
  284. package/build/domains/installation/validators/conflictDetector.d.ts +6 -4
  285. package/build/domains/installation/validators/conflictDetector.d.ts.map +1 -1
  286. package/build/domains/installation/validators/conflictDetector.js +0 -3
  287. package/build/domains/installation/validators/conflictDetector.js.map +1 -1
  288. package/build/domains/preset/manager/presetManager.js +1 -1
  289. package/build/domains/preset/manager/presetManager.js.map +1 -1
  290. package/build/domains/preset/parsers/tagQueryEvaluator.d.ts +8 -4
  291. package/build/domains/preset/parsers/tagQueryEvaluator.d.ts.map +1 -1
  292. package/build/domains/preset/parsers/tagQueryEvaluator.js.map +1 -1
  293. package/build/domains/preset/services/presetErrorHandler.d.ts +0 -7
  294. package/build/domains/preset/services/presetErrorHandler.d.ts.map +1 -1
  295. package/build/domains/preset/services/presetErrorHandler.js +10 -37
  296. package/build/domains/preset/services/presetErrorHandler.js.map +1 -1
  297. package/build/domains/registry/cacheManager.d.ts +11 -1
  298. package/build/domains/registry/cacheManager.d.ts.map +1 -1
  299. package/build/domains/registry/cacheManager.js +21 -3
  300. package/build/domains/registry/cacheManager.js.map +1 -1
  301. package/build/domains/registry/formatters/serverDetailFormatter.d.ts.map +1 -1
  302. package/build/domains/registry/formatters/serverDetailFormatter.js +57 -8
  303. package/build/domains/registry/formatters/serverDetailFormatter.js.map +1 -1
  304. package/build/domains/registry/formatters/versionsFormatter.d.ts.map +1 -1
  305. package/build/domains/registry/formatters/versionsFormatter.js +8 -3
  306. package/build/domains/registry/formatters/versionsFormatter.js.map +1 -1
  307. package/build/logger/logger.d.ts +8 -4
  308. package/build/logger/logger.d.ts.map +1 -1
  309. package/build/logger/logger.js.map +1 -1
  310. package/build/server.d.ts +2 -1
  311. package/build/server.d.ts.map +1 -1
  312. package/build/server.js +16 -7
  313. package/build/server.js.map +1 -1
  314. package/build/template/handlebarsTemplateRenderer.d.ts +34 -0
  315. package/build/template/handlebarsTemplateRenderer.d.ts.map +1 -0
  316. package/build/template/handlebarsTemplateRenderer.js +92 -0
  317. package/build/template/handlebarsTemplateRenderer.js.map +1 -0
  318. package/build/template/index.d.ts +2 -0
  319. package/build/template/index.d.ts.map +1 -0
  320. package/build/template/index.js +3 -0
  321. package/build/template/index.js.map +1 -0
  322. package/build/transport/http/middlewares/securityMiddleware.js +1 -1
  323. package/build/transport/http/middlewares/securityMiddleware.js.map +1 -1
  324. package/build/transport/http/restorableStreamableTransport.d.ts +8 -4
  325. package/build/transport/http/restorableStreamableTransport.d.ts.map +1 -1
  326. package/build/transport/http/restorableStreamableTransport.js.map +1 -1
  327. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
  328. package/build/transport/http/routes/sseRoutes.js +15 -0
  329. package/build/transport/http/routes/sseRoutes.js.map +1 -1
  330. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  331. package/build/transport/http/routes/streamableHttpRoutes.js +88 -12
  332. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  333. package/build/transport/http/server.d.ts +1 -0
  334. package/build/transport/http/server.d.ts.map +1 -1
  335. package/build/transport/http/server.js +1 -0
  336. package/build/transport/http/server.js.map +1 -1
  337. package/build/transport/http/storage/streamableSessionRepository.d.ts.map +1 -1
  338. package/build/transport/http/storage/streamableSessionRepository.js +2 -0
  339. package/build/transport/http/storage/streamableSessionRepository.js.map +1 -1
  340. package/build/transport/http/utils/contextExtractor.d.ts +23 -0
  341. package/build/transport/http/utils/contextExtractor.d.ts.map +1 -0
  342. package/build/transport/http/utils/contextExtractor.js +58 -0
  343. package/build/transport/http/utils/contextExtractor.js.map +1 -0
  344. package/build/transport/restartableStdioTransport.d.ts +8 -4
  345. package/build/transport/restartableStdioTransport.d.ts.map +1 -1
  346. package/build/transport/restartableStdioTransport.js.map +1 -1
  347. package/build/transport/stdioProxyTransport.d.ts +15 -0
  348. package/build/transport/stdioProxyTransport.d.ts.map +1 -1
  349. package/build/transport/stdioProxyTransport.js +168 -35
  350. package/build/transport/stdioProxyTransport.js.map +1 -1
  351. package/build/transport/transportFactory.d.ts +8 -0
  352. package/build/transport/transportFactory.d.ts.map +1 -1
  353. package/build/transport/transportFactory.js +47 -0
  354. package/build/transport/transportFactory.js.map +1 -1
  355. package/build/types/context.d.ts +120 -0
  356. package/build/types/context.d.ts.map +1 -0
  357. package/build/types/context.js +4 -0
  358. package/build/types/context.js.map +1 -0
  359. package/build/types/validation.d.ts +30 -0
  360. package/build/types/validation.d.ts.map +1 -0
  361. package/build/types/validation.js +5 -0
  362. package/build/types/validation.js.map +1 -0
  363. package/build/utils/client/clientInfoExtractor.d.ts +26 -0
  364. package/build/utils/client/clientInfoExtractor.d.ts.map +1 -0
  365. package/build/utils/client/clientInfoExtractor.js +65 -0
  366. package/build/utils/client/clientInfoExtractor.js.map +1 -0
  367. package/build/utils/core/errorHandling.d.ts +9 -5
  368. package/build/utils/core/errorHandling.d.ts.map +1 -1
  369. package/build/utils/core/errorHandling.js.map +1 -1
  370. package/build/utils/core/parsing.d.ts +8 -4
  371. package/build/utils/core/parsing.d.ts.map +1 -1
  372. package/build/utils/core/parsing.js.map +1 -1
  373. package/build/utils/crypto.d.ts +10 -0
  374. package/build/utils/crypto.d.ts.map +1 -0
  375. package/build/utils/crypto.js +20 -0
  376. package/build/utils/crypto.js.map +1 -0
  377. package/build/utils/ui/interactiveSelector.d.ts +16 -6
  378. package/build/utils/ui/interactiveSelector.d.ts.map +1 -1
  379. package/build/utils/ui/interactiveSelector.js +7 -31
  380. package/build/utils/ui/interactiveSelector.js.map +1 -1
  381. package/build/utils/ui/pagination.d.ts +6 -2
  382. package/build/utils/ui/pagination.d.ts.map +1 -1
  383. package/build/utils/ui/pagination.js.map +1 -1
  384. package/build/utils/ui/printer.d.ts +76 -0
  385. package/build/utils/ui/printer.d.ts.map +1 -0
  386. package/build/utils/ui/printer.js +172 -0
  387. package/build/utils/ui/printer.js.map +1 -0
  388. package/build/utils/ui/spinner.d.ts +19 -0
  389. package/build/utils/ui/spinner.d.ts.map +1 -0
  390. package/build/utils/ui/spinner.js +51 -0
  391. package/build/utils/ui/spinner.js.map +1 -0
  392. package/build/utils/ui/table.d.ts +16 -0
  393. package/build/utils/ui/table.d.ts.map +1 -0
  394. package/build/utils/ui/table.js +70 -0
  395. package/build/utils/ui/table.js.map +1 -0
  396. package/build/utils/validation/validationHelpers.d.ts +7 -3
  397. package/build/utils/validation/validationHelpers.d.ts.map +1 -1
  398. package/build/utils/validation/validationHelpers.js.map +1 -1
  399. package/package.json +2 -1
@@ -1,346 +1,260 @@
1
+ import { createHash } from 'crypto';
1
2
  import { EventEmitter } from 'events';
2
- import fs from 'fs';
3
- import path from 'path';
4
- import { substituteEnvVarsInConfig } from '../config/envProcessor.js';
5
- import { DEFAULT_CONFIG, getGlobalConfigDir, getGlobalConfigPath } from '../constants.js';
6
3
  import { AgentConfigManager } from '../core/server/agentConfig.js';
7
- import { transportConfigSchema } from '../core/types/transport.js';
4
+ import { mcpServerConfigSchema, transportConfigSchema, } from '../core/types/transport.js';
8
5
  import logger, { debugIf } from '../logger/logger.js';
9
- import { ZodError } from 'zod';
10
- /**
11
- * Configuration change types
12
- */
13
- export var ConfigChangeType;
14
- (function (ConfigChangeType) {
15
- ConfigChangeType["ADDED"] = "added";
16
- ConfigChangeType["REMOVED"] = "removed";
17
- ConfigChangeType["MODIFIED"] = "modified";
18
- })(ConfigChangeType || (ConfigChangeType = {}));
19
- /**
20
- * Event constants for better maintainability
21
- */
22
- export const CONFIG_EVENTS = {
23
- CONFIG_CHANGED: 'configChanged',
24
- SERVER_ADDED: 'serverAdded',
25
- SERVER_REMOVED: 'serverRemoved',
26
- METADATA_UPDATED: 'metadataUpdated',
27
- VALIDATION_ERROR: 'validationError',
28
- };
29
- /**
30
- * Unified configuration manager that handles loading, watching, and detecting changes
31
- * Replaces McpConfigManager, ConfigReloadService, SelectiveReloadManager, and ChangeAnalyzer
32
- */
6
+ import { HandlebarsTemplateRenderer } from '../template/handlebarsTemplateRenderer.js';
7
+ import { z } from 'zod';
8
+ import { ConfigChangeDetector } from './configChangeDetector.js';
9
+ import { ConfigLoader } from './configLoader.js';
10
+ import { ConfigWatcher } from './configWatcher.js';
11
+ import { TemplateProcessor } from './templateProcessor.js';
12
+ import { CONFIG_EVENTS, ConfigChangeType } from './types.js';
33
13
  export class ConfigManager extends EventEmitter {
34
14
  static instance;
35
- configWatcher = null;
36
15
  transportConfig = {};
37
- configFilePath;
38
- debounceTimer = null;
39
- lastModified = 0;
16
+ loader;
17
+ templateProcessor;
18
+ watcher;
19
+ changeDetector;
20
+ // Template processing related properties
21
+ templateProcessingErrors = [];
22
+ processedTemplates = {};
23
+ lastContextHash;
24
+ templateRenderer;
40
25
  /**
41
26
  * Private constructor to enforce singleton pattern
42
27
  * @param configFilePath - Optional path to the config file. If not provided, uses global config path
43
28
  */
44
29
  constructor(configFilePath) {
45
30
  super();
46
- this.configFilePath = configFilePath || getGlobalConfigPath();
47
- this.ensureConfigExists();
48
- this.loadConfig();
31
+ this.loader = new ConfigLoader(configFilePath);
32
+ this.templateProcessor = new TemplateProcessor();
33
+ this.watcher = new ConfigWatcher(this.loader.getConfigFilePath(), this.loader);
34
+ this.changeDetector = new ConfigChangeDetector();
35
+ this.setupWatcherEvents();
49
36
  }
50
- /**
51
- * Get the singleton instance of ConfigManager
52
- * @param configFilePath - Optional path to the config file
53
- */
54
37
  static getInstance(configFilePath) {
55
38
  if (!ConfigManager.instance) {
56
39
  ConfigManager.instance = new ConfigManager(configFilePath);
57
40
  }
58
41
  return ConfigManager.instance;
59
42
  }
60
- /**
61
- * Initialize the config manager (start watching if enabled)
62
- */
63
- async initialize() {
64
- this.startWatching();
65
- logger.info('ConfigManager initialized');
66
- }
67
- /**
68
- * Stop the config manager and clean up resources
69
- */
70
- async stop() {
71
- this.stopWatching();
72
- logger.info('ConfigManager stopped');
43
+ setupWatcherEvents() {
44
+ this.watcher.on('reload', () => {
45
+ this.handleConfigChange().catch((error) => {
46
+ logger.error(`Error handling config change: ${error}`);
47
+ });
48
+ });
73
49
  }
74
- /**
75
- * Ensure the config directory and file exist
76
- */
77
- ensureConfigExists() {
50
+ async initialize() {
78
51
  try {
79
- const configDir = getGlobalConfigDir();
80
- if (!fs.existsSync(configDir)) {
81
- fs.mkdirSync(configDir, { recursive: true });
82
- logger.info(`Created config directory: ${configDir}`);
83
- }
84
- if (!fs.existsSync(this.configFilePath)) {
85
- fs.writeFileSync(this.configFilePath, JSON.stringify(DEFAULT_CONFIG, null, 2));
86
- logger.info(`Created default config file: ${this.configFilePath}`);
87
- }
52
+ this.loadConfig();
53
+ this.watcher.startWatching();
54
+ logger.info('ConfigManager initialized');
88
55
  }
89
56
  catch (error) {
90
- logger.error(`Failed to ensure config exists: ${error instanceof Error ? error.message : String(error)}`);
91
- throw error;
57
+ const errorMsg = `Failed to initialize ConfigManager: ${error instanceof Error ? error.message : String(error)}`;
58
+ logger.error(errorMsg);
59
+ throw new Error(errorMsg);
92
60
  }
93
61
  }
94
- /**
95
- * Load the raw configuration from the config file
96
- */
97
- loadRawConfig() {
62
+ async stop() {
63
+ this.watcher.stopWatching();
64
+ logger.info('ConfigManager stopped');
65
+ }
66
+ loadConfig() {
98
67
  try {
99
- const stats = fs.statSync(this.configFilePath);
100
- this.lastModified = stats.mtime.getTime();
101
- const rawConfigData = fs.readFileSync(this.configFilePath, 'utf8');
102
- return JSON.parse(rawConfigData);
68
+ this.transportConfig = this.loader.loadConfigWithEnvSubstitution();
69
+ const agentConfig = AgentConfigManager.getInstance();
70
+ const features = agentConfig.get('features');
71
+ const substitutionStatus = features.envSubstitution ? 'with' : 'without';
72
+ logger.info(`Configuration loaded successfully ${substitutionStatus} environment variable substitution`);
103
73
  }
104
74
  catch (error) {
105
- logger.error(`Failed to load configuration: ${error instanceof Error ? error.message : String(error)}`);
106
- throw error;
75
+ const errorMsg = `Failed to load configuration: ${error instanceof Error ? error.message : String(error)}`;
76
+ logger.error(errorMsg);
77
+ throw new Error(errorMsg);
107
78
  }
108
79
  }
109
80
  /**
110
- * Load configuration with environment variable substitution
81
+ * Load configuration with template processing support
82
+ * @param context - Optional context data for template processing
83
+ * @returns Object with static servers, processed template servers, and any errors
111
84
  */
112
- validateServerConfig(serverName, config) {
85
+ async loadConfigWithTemplates(context) {
86
+ let rawConfig;
87
+ let config;
113
88
  try {
114
- return transportConfigSchema.parse(config);
89
+ rawConfig = this.loadRawConfig();
90
+ // Parse the configuration using the extended schema
91
+ config = mcpServerConfigSchema.parse(rawConfig);
115
92
  }
116
93
  catch (error) {
117
- if (error instanceof ZodError) {
118
- const fieldErrors = error.issues.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
119
- throw new Error(`Invalid configuration for server '${serverName}': ${fieldErrors}`);
120
- }
121
- throw new Error(`Invalid configuration for server '${serverName}': ${error instanceof Error ? error.message : String(error)}`);
94
+ const errorMessage = error instanceof Error ? error.message : String(error);
95
+ logger.error(`Failed to parse configuration: ${errorMessage}`);
96
+ // Return empty config on schema validation errors
97
+ return {
98
+ staticServers: {},
99
+ templateServers: {},
100
+ errors: [`Configuration parsing failed: ${errorMessage}`],
101
+ };
122
102
  }
123
- }
124
- loadConfigWithEnvSubstitution() {
125
- const rawConfig = this.loadRawConfig();
126
- // Apply environment variable substitution if enabled
127
- const agentConfig = AgentConfigManager.getInstance();
128
- const features = agentConfig.get('features');
129
- const processedConfig = features.envSubstitution ? substituteEnvVarsInConfig(rawConfig) : rawConfig;
130
- // Type guard to ensure processedConfig has proper structure
131
- if (!processedConfig || typeof processedConfig !== 'object') {
132
- logger.error('Invalid configuration format');
133
- return {};
134
- }
135
- const configObj = processedConfig;
136
- const mcpServersConfig = configObj.mcpServers || {};
137
- // Validate each server configuration
138
- const validatedConfig = {};
139
- for (const [serverName, serverConfig] of Object.entries(mcpServersConfig)) {
103
+ // Process static servers (existing logic)
104
+ const staticServers = {};
105
+ for (const [serverName, serverConfig] of Object.entries(config.mcpServers)) {
140
106
  try {
141
- validatedConfig[serverName] = this.validateServerConfig(serverName, serverConfig);
142
- debugIf(() => ({
143
- message: `Validated configuration for server: ${serverName}`,
144
- meta: { serverName },
145
- }));
107
+ staticServers[serverName] = this.validateServerConfig(serverName, serverConfig);
146
108
  }
147
109
  catch (error) {
148
- logger.error(`Configuration validation failed: ${error instanceof Error ? error.message : String(error)}`);
149
- // Skip invalid server configurations
150
- continue;
110
+ logger.error(`Static server validation failed for ${serverName}: ${error instanceof Error ? error.message : String(error)}`);
111
+ // Skip invalid static server configurations
151
112
  }
152
113
  }
153
- return validatedConfig;
154
- }
155
- /**
156
- * Load the configuration from the config file
157
- */
158
- loadConfig() {
159
- try {
160
- this.transportConfig = this.loadConfigWithEnvSubstitution();
161
- const agentConfig = AgentConfigManager.getInstance();
162
- const features = agentConfig.get('features');
163
- const substitutionStatus = features.envSubstitution ? 'with' : 'without';
164
- logger.info(`Configuration loaded successfully ${substitutionStatus} environment variable substitution`);
165
- }
166
- catch (error) {
167
- logger.error(`Failed to load configuration: ${error instanceof Error ? error.message : String(error)}`);
168
- this.transportConfig = {};
114
+ // Process templates if context available, otherwise return raw templates
115
+ let templateServers = {};
116
+ let errors = [];
117
+ if (config.mcpTemplates) {
118
+ if (context) {
119
+ // Context available - process templates
120
+ const contextHash = this.hashContext(context);
121
+ // Use cached templates if context hasn't changed and caching is enabled
122
+ if (config.templateSettings?.cacheContext &&
123
+ this.lastContextHash === contextHash &&
124
+ Object.keys(this.processedTemplates).length > 0) {
125
+ templateServers = this.processedTemplates;
126
+ errors = this.templateProcessingErrors;
127
+ }
128
+ else {
129
+ // Process templates with validation
130
+ const result = await this.processTemplates(config.mcpTemplates, context, config.templateSettings);
131
+ templateServers = result.servers;
132
+ errors = result.errors;
133
+ // Cache results if caching is enabled
134
+ if (config.templateSettings?.cacheContext) {
135
+ this.processedTemplates = templateServers;
136
+ this.templateProcessingErrors = errors;
137
+ this.lastContextHash = contextHash;
138
+ }
139
+ }
140
+ }
141
+ else {
142
+ // No context - return empty templateServers object
143
+ // Templates require context to be processed
144
+ templateServers = {};
145
+ }
169
146
  }
170
- }
171
- /**
172
- * Check if reload is enabled via feature flag
173
- */
174
- isReloadEnabled() {
175
- const agentConfig = AgentConfigManager.getInstance();
176
- return agentConfig.get('features').configReload;
177
- }
178
- /**
179
- * Check if the configuration file has been modified
180
- */
181
- checkFileModified() {
182
- try {
183
- const stats = fs.statSync(this.configFilePath);
184
- const currentModified = stats.mtime.getTime();
185
- if (currentModified !== this.lastModified) {
186
- this.lastModified = currentModified;
187
- return true;
147
+ // Filter out static servers that conflict with template servers
148
+ // Template servers take precedence
149
+ const conflictingServers = [];
150
+ for (const staticServerName of Object.keys(staticServers)) {
151
+ if (staticServerName in templateServers) {
152
+ conflictingServers.push(staticServerName);
153
+ delete staticServers[staticServerName];
188
154
  }
189
- return false;
190
155
  }
191
- catch (error) {
192
- logger.error(`Failed to check file modification time: ${error instanceof Error ? error.message : String(error)}`);
193
- return false;
156
+ if (conflictingServers.length > 0) {
157
+ logger.warn(`Ignoring ${conflictingServers.length} static server(s) that conflict with template servers: ${conflictingServers.join(', ')}`);
194
158
  }
159
+ return { staticServers, templateServers, errors };
195
160
  }
196
161
  /**
197
- * Start watching the configuration file for changes
162
+ * Process template configurations with context data
163
+ * @param templates - Template configurations to process
164
+ * @param context - Context data for template substitution
165
+ * @param settings - Template processing settings
166
+ * @returns Object with processed servers and any errors
198
167
  */
199
- startWatching() {
200
- // Check if config reload is enabled
201
- if (!this.isReloadEnabled()) {
202
- logger.info('Configuration hot-reload is disabled, skipping file watcher setup');
203
- return;
204
- }
205
- if (this.configWatcher) {
206
- return;
207
- }
208
- try {
209
- const configDir = path.dirname(this.configFilePath);
210
- const configFileName = path.basename(this.configFilePath);
211
- // Watch the directory instead of the file to handle atomic operations like vim's :x
212
- this.configWatcher = fs.watch(configDir, (eventType, filename) => {
168
+ async processTemplates(templates, context, settings) {
169
+ const errors = [];
170
+ // Initialize template renderer
171
+ this.templateRenderer = new HandlebarsTemplateRenderer();
172
+ const processedServers = {};
173
+ for (const [serverName, templateConfig] of Object.entries(templates)) {
174
+ try {
175
+ const processedConfig = this.templateRenderer.renderTemplate(templateConfig, context);
176
+ processedServers[serverName] = processedConfig;
213
177
  debugIf(() => ({
214
- message: 'Directory change detected',
215
- meta: { eventType, filename, configDir, configFileName },
178
+ message: 'Template processed successfully',
179
+ meta: { serverName },
216
180
  }));
217
- // Check if the change is related to our config file
218
- const isConfigFileEvent = filename === configFileName ||
219
- (filename && filename.startsWith(configFileName)) ||
220
- (eventType === 'rename' && filename && filename.includes(path.parse(configFileName).name));
221
- if (isConfigFileEvent) {
222
- debugIf(() => ({
223
- message: 'Configuration file change detected, checking modification time',
224
- meta: { eventType, filename, isConfigFileEvent },
225
- }));
226
- if (this.checkFileModified()) {
227
- debugIf('File modification confirmed, debouncing reload');
228
- this.debouncedReloadConfig();
229
- }
230
- }
231
- else {
232
- if (this.checkFileModified()) {
233
- debugIf(() => ({
234
- message: 'File was modified but event did not match criteria, debouncing reload anyway',
235
- meta: { eventType, filename, configFileName },
236
- }));
237
- this.debouncedReloadConfig();
238
- }
181
+ }
182
+ catch (error) {
183
+ const errorMsg = `Template processing failed for ${serverName}: ${error instanceof Error ? error.message : String(error)}`;
184
+ errors.push(errorMsg);
185
+ // According to user requirement: Fail fast, log errors, return to client
186
+ logger.error(errorMsg);
187
+ // For graceful mode, include raw config for debugging
188
+ if (settings?.failureMode === 'graceful') {
189
+ processedServers[serverName] = templateConfig;
239
190
  }
240
- });
241
- logger.info(`Started watching configuration directory: ${configDir} for file: ${configFileName}`);
242
- }
243
- catch (error) {
244
- logger.error(`Failed to start watching configuration file: ${error instanceof Error ? error.message : String(error)}`);
191
+ }
245
192
  }
193
+ return { servers: processedServers, errors };
246
194
  }
247
195
  /**
248
- * Stop watching the configuration file
196
+ * Create a hash of context data for caching purposes
197
+ * @param context - Context data to hash
198
+ * @returns SHA-256 hash string
249
199
  */
250
- stopWatching() {
251
- if (this.configWatcher) {
252
- this.configWatcher.close();
253
- this.configWatcher = null;
254
- logger.info('Stopped watching configuration file');
255
- }
256
- // Clear any pending debounce timer
257
- if (this.debounceTimer) {
258
- clearTimeout(this.debounceTimer);
259
- this.debounceTimer = null;
260
- }
200
+ hashContext(context) {
201
+ return createHash('sha256').update(JSON.stringify(context)).digest('hex');
261
202
  }
262
203
  /**
263
- * Debounced configuration reload to prevent excessive reloading
204
+ * Get template processing errors from the last processing run
205
+ * @returns Array of template processing error messages
264
206
  */
265
- debouncedReloadConfig() {
266
- // Clear existing timer
267
- if (this.debounceTimer) {
268
- clearTimeout(this.debounceTimer);
269
- }
270
- // Get debounce delay from config
271
- const agentConfig = AgentConfigManager.getInstance();
272
- const configReload = agentConfig.get('configReload');
273
- const debounceDelayMs = configReload.debounceMs;
274
- // Set new timer
275
- this.debounceTimer = setTimeout(() => {
276
- logger.info('Debounce period completed, reloading configuration...');
277
- this.handleConfigChange();
278
- this.debounceTimer = null;
279
- }, debounceDelayMs);
207
+ getTemplateProcessingErrors() {
208
+ return [...this.templateProcessingErrors];
280
209
  }
281
210
  /**
282
- * Simple deep equality check for objects
211
+ * Check if there are any template processing errors
212
+ * @returns True if there are template processing errors
283
213
  */
284
- deepEqual(obj1, obj2) {
285
- if (obj1 === obj2)
286
- return true;
287
- if (obj1 == null || obj2 == null)
288
- return false;
289
- return JSON.stringify(obj1) === JSON.stringify(obj2);
214
+ hasTemplateProcessingErrors() {
215
+ return this.templateProcessingErrors.length > 0;
290
216
  }
291
217
  /**
292
- * Get the fields that changed between two configurations
218
+ * Clear template cache and force reprocessing on next load
293
219
  */
294
- getChangedFields(oldConfig, newConfig) {
295
- const changed = [];
296
- for (const key of Object.keys(newConfig)) {
297
- if (!(key in oldConfig) || !this.deepEqual(oldConfig[key], newConfig[key])) {
298
- changed.push(key);
299
- }
300
- }
301
- return changed;
220
+ clearTemplateCache() {
221
+ this.processedTemplates = {};
222
+ this.lastContextHash = undefined;
223
+ this.templateProcessingErrors = [];
302
224
  }
303
225
  /**
304
- * Detect changes between old and new configurations
226
+ * Validate server configuration
227
+ * @param serverName - Name of the server
228
+ * @param config - Server configuration to validate
229
+ * @returns Validated server configuration
305
230
  */
306
- detectChanges(oldConfig, newConfig) {
307
- const changes = [];
308
- const oldKeys = new Set(Object.keys(oldConfig));
309
- const newKeys = new Set(Object.keys(newConfig));
310
- // Added servers
311
- for (const name of newKeys) {
312
- if (!oldKeys.has(name)) {
313
- changes.push({ serverName: name, type: ConfigChangeType.ADDED });
314
- }
315
- }
316
- // Removed servers
317
- for (const name of oldKeys) {
318
- if (!newKeys.has(name)) {
319
- changes.push({ serverName: name, type: ConfigChangeType.REMOVED });
320
- }
231
+ validateServerConfig(serverName, config) {
232
+ try {
233
+ return transportConfigSchema.parse(config);
321
234
  }
322
- // Modified servers
323
- for (const name of newKeys) {
324
- if (oldKeys.has(name)) {
325
- const oldServer = oldConfig[name];
326
- const newServer = newConfig[name];
327
- if (!this.deepEqual(oldServer, newServer)) {
328
- const fieldsChanged = this.getChangedFields(oldServer, newServer);
329
- changes.push({
330
- serverName: name,
331
- type: ConfigChangeType.MODIFIED,
332
- fieldsChanged,
333
- });
334
- }
235
+ catch (error) {
236
+ if (error instanceof z.ZodError) {
237
+ const fieldErrors = error.issues.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ');
238
+ throw new Error(`Invalid configuration for server '${serverName}': ${fieldErrors}`);
335
239
  }
240
+ throw new Error(`Invalid configuration for server '${serverName}': ${error instanceof Error ? error.message : String(error)}`);
336
241
  }
337
- return changes;
338
242
  }
339
243
  /**
340
- * Handle configuration changes
244
+ * Load raw configuration from file
245
+ * @returns Parsed raw configuration
341
246
  */
247
+ loadRawConfig() {
248
+ const rawConfig = this.loader.loadRawConfig();
249
+ return rawConfig;
250
+ }
251
+ /**
252
+ * Check if reload is enabled via feature flag
253
+ */
254
+ isReloadEnabled() {
255
+ return this.loader.isReloadEnabled();
256
+ }
342
257
  async handleConfigChange() {
343
- // Check if reload is enabled via feature flag
344
258
  if (!this.isReloadEnabled()) {
345
259
  logger.info('Configuration hot-reload is disabled, ignoring file changes');
346
260
  return;
@@ -348,22 +262,17 @@ export class ConfigManager extends EventEmitter {
348
262
  const oldConfig = { ...this.transportConfig };
349
263
  let newConfig;
350
264
  try {
351
- newConfig = this.loadConfigWithEnvSubstitution();
265
+ newConfig = this.loader.loadConfigWithEnvSubstitution();
352
266
  }
353
267
  catch (error) {
354
268
  logger.error(`Failed to load or validate configuration: ${error instanceof Error ? error.message : String(error)}`);
355
- // Emit validation error event for possible UI handling
356
269
  this.emit(CONFIG_EVENTS.VALIDATION_ERROR, error);
357
270
  return;
358
271
  }
359
- const changes = this.detectChanges(oldConfig, newConfig);
360
- // Update the transport config BEFORE emitting events so handlers get the latest config
272
+ const changes = this.changeDetector.detectChanges(oldConfig, newConfig);
361
273
  this.transportConfig = newConfig;
362
- // Let business logic determine what to do with the changes
363
- // ConfigManager only detects changes and reports them
364
274
  logger.info(`Detected ${changes.length} configuration changes`);
365
275
  this.emit(CONFIG_EVENTS.CONFIG_CHANGED, changes);
366
- // Also emit specific events for easier handling
367
276
  for (const change of changes) {
368
277
  switch (change.type) {
369
278
  case ConfigChangeType.ADDED:
@@ -372,41 +281,19 @@ export class ConfigManager extends EventEmitter {
372
281
  case ConfigChangeType.REMOVED:
373
282
  this.emit(CONFIG_EVENTS.SERVER_REMOVED, change.serverName);
374
283
  break;
375
- case ConfigChangeType.MODIFIED:
376
- // Business logic will determine if this requires restart or just metadata update
377
- break;
378
284
  }
379
285
  }
380
286
  }
381
- /**
382
- * Reload the configuration from the config file
383
- */
384
287
  async reloadConfig() {
385
288
  await this.handleConfigChange();
386
289
  }
387
- /**
388
- * Get the current transport configuration
389
- */
390
290
  getTransportConfig() {
391
- return { ...this.transportConfig };
291
+ return this.loader.getTransportConfig(this.transportConfig);
392
292
  }
393
- /**
394
- * Get all available tags from the configured servers
395
- */
396
293
  getAvailableTags() {
397
- const tags = new Set();
398
- for (const [_serverName, serverParams] of Object.entries(this.transportConfig)) {
399
- // Skip disabled servers
400
- if (serverParams.disabled) {
401
- continue;
402
- }
403
- // Add tags from server configuration
404
- if (serverParams.tags && Array.isArray(serverParams.tags)) {
405
- serverParams.tags.forEach((tag) => tags.add(tag));
406
- }
407
- }
408
- return Array.from(tags).sort();
294
+ return this.loader.getAvailableTags(this.transportConfig);
409
295
  }
410
296
  }
297
+ export { ConfigChangeType, CONFIG_EVENTS };
411
298
  export default ConfigManager;
412
299
  //# sourceMappingURL=configManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"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"}