@1mcp/agent 0.27.4 → 0.28.1

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 (352) hide show
  1. package/build/commands/app/consolidate.js +1 -1
  2. package/build/commands/app/consolidate.js.map +1 -1
  3. package/build/commands/mcp/add.js +1 -1
  4. package/build/commands/mcp/add.js.map +1 -1
  5. package/build/commands/mcp/enable.js +1 -1
  6. package/build/commands/mcp/enable.js.map +1 -1
  7. package/build/commands/mcp/index.d.ts.map +1 -1
  8. package/build/commands/mcp/index.js +64 -1
  9. package/build/commands/mcp/index.js.map +1 -1
  10. package/build/commands/mcp/install.d.ts +28 -0
  11. package/build/commands/mcp/install.d.ts.map +1 -0
  12. package/build/commands/mcp/install.js +472 -0
  13. package/build/commands/mcp/install.js.map +1 -0
  14. package/build/commands/mcp/list.d.ts +3 -0
  15. package/build/commands/mcp/list.d.ts.map +1 -1
  16. package/build/commands/mcp/list.js +49 -4
  17. package/build/commands/mcp/list.js.map +1 -1
  18. package/build/commands/mcp/remove.js +1 -1
  19. package/build/commands/mcp/remove.js.map +1 -1
  20. package/build/commands/mcp/status.js +1 -1
  21. package/build/commands/mcp/status.js.map +1 -1
  22. package/build/commands/mcp/tokens.js +1 -1
  23. package/build/commands/mcp/tokens.js.map +1 -1
  24. package/build/commands/mcp/uninstall.d.ts +28 -0
  25. package/build/commands/mcp/uninstall.d.ts.map +1 -0
  26. package/build/commands/mcp/uninstall.js +103 -0
  27. package/build/commands/mcp/uninstall.js.map +1 -0
  28. package/build/commands/mcp/update.d.ts +16 -1
  29. package/build/commands/mcp/update.d.ts.map +1 -1
  30. package/build/commands/mcp/update.js +33 -2
  31. package/build/commands/mcp/update.js.map +1 -1
  32. package/build/commands/mcp/utils/installWizard.d.ts +35 -0
  33. package/build/commands/mcp/utils/installWizard.d.ts.map +1 -0
  34. package/build/commands/mcp/utils/installWizard.js +137 -0
  35. package/build/commands/mcp/utils/installWizard.js.map +1 -0
  36. package/build/commands/mcp/utils/mcpServerConfig.d.ts +31 -0
  37. package/build/commands/mcp/utils/mcpServerConfig.d.ts.map +1 -0
  38. package/build/commands/mcp/utils/mcpServerConfig.js +79 -0
  39. package/build/commands/mcp/utils/mcpServerConfig.js.map +1 -0
  40. package/build/commands/mcp/utils/serverUtils.d.ts +40 -0
  41. package/build/commands/mcp/utils/serverUtils.d.ts.map +1 -0
  42. package/build/commands/mcp/utils/serverUtils.js +103 -0
  43. package/build/commands/mcp/utils/serverUtils.js.map +1 -0
  44. package/build/commands/mcp/wizard/components/serverDetailsDisplay.d.ts +14 -0
  45. package/build/commands/mcp/wizard/components/serverDetailsDisplay.d.ts.map +1 -0
  46. package/build/commands/mcp/wizard/components/serverDetailsDisplay.js +56 -0
  47. package/build/commands/mcp/wizard/components/serverDetailsDisplay.js.map +1 -0
  48. package/build/commands/mcp/wizard/components/stepIndicator.d.ts +11 -0
  49. package/build/commands/mcp/wizard/components/stepIndicator.d.ts.map +1 -0
  50. package/build/commands/mcp/wizard/components/stepIndicator.js +38 -0
  51. package/build/commands/mcp/wizard/components/stepIndicator.js.map +1 -0
  52. package/build/commands/mcp/wizard/components/welcomeScreen.d.ts +5 -0
  53. package/build/commands/mcp/wizard/components/welcomeScreen.d.ts.map +1 -0
  54. package/build/commands/mcp/wizard/components/welcomeScreen.js +25 -0
  55. package/build/commands/mcp/wizard/components/welcomeScreen.js.map +1 -0
  56. package/build/commands/mcp/wizard/configuration.d.ts +31 -0
  57. package/build/commands/mcp/wizard/configuration.d.ts.map +1 -0
  58. package/build/commands/mcp/wizard/configuration.js +360 -0
  59. package/build/commands/mcp/wizard/configuration.js.map +1 -0
  60. package/build/commands/mcp/wizard/display.d.ts +31 -0
  61. package/build/commands/mcp/wizard/display.d.ts.map +1 -0
  62. package/build/commands/mcp/wizard/display.js +131 -0
  63. package/build/commands/mcp/wizard/display.js.map +1 -0
  64. package/build/commands/mcp/wizard/index.d.ts +8 -0
  65. package/build/commands/mcp/wizard/index.d.ts.map +1 -0
  66. package/build/commands/mcp/wizard/index.js +10 -0
  67. package/build/commands/mcp/wizard/index.js.map +1 -0
  68. package/build/commands/mcp/wizard/metadata.d.ts +48 -0
  69. package/build/commands/mcp/wizard/metadata.d.ts.map +1 -0
  70. package/build/commands/mcp/wizard/metadata.js +126 -0
  71. package/build/commands/mcp/wizard/metadata.js.map +1 -0
  72. package/build/commands/mcp/wizard/navigation/keyboardHandler.d.ts +14 -0
  73. package/build/commands/mcp/wizard/navigation/keyboardHandler.d.ts.map +1 -0
  74. package/build/commands/mcp/wizard/navigation/keyboardHandler.js +99 -0
  75. package/build/commands/mcp/wizard/navigation/keyboardHandler.js.map +1 -0
  76. package/build/commands/mcp/wizard/navigation.d.ts +12 -0
  77. package/build/commands/mcp/wizard/navigation.d.ts.map +1 -0
  78. package/build/commands/mcp/wizard/navigation.js +99 -0
  79. package/build/commands/mcp/wizard/navigation.js.map +1 -0
  80. package/build/commands/mcp/wizard/search.d.ts +23 -0
  81. package/build/commands/mcp/wizard/search.d.ts.map +1 -0
  82. package/build/commands/mcp/wizard/search.js +101 -0
  83. package/build/commands/mcp/wizard/search.js.map +1 -0
  84. package/build/commands/mcp/wizard/selection.d.ts +14 -0
  85. package/build/commands/mcp/wizard/selection.d.ts.map +1 -0
  86. package/build/commands/mcp/wizard/selection.js +40 -0
  87. package/build/commands/mcp/wizard/selection.js.map +1 -0
  88. package/build/commands/registry/search.d.ts +1 -1
  89. package/build/commands/registry/search.d.ts.map +1 -1
  90. package/build/commands/registry/search.js +10 -7
  91. package/build/commands/registry/search.js.map +1 -1
  92. package/build/commands/serve/index.d.ts +10 -0
  93. package/build/commands/serve/index.d.ts.map +1 -1
  94. package/build/commands/serve/index.js +28 -1
  95. package/build/commands/serve/index.js.map +1 -1
  96. package/build/commands/serve/serve.d.ts +2 -0
  97. package/build/commands/serve/serve.d.ts.map +1 -1
  98. package/build/commands/serve/serve.js +33 -8
  99. package/build/commands/serve/serve.js.map +1 -1
  100. package/build/commands/shared/{configUtils.d.ts → baseConfigUtils.d.ts} +1 -1
  101. package/build/commands/shared/baseConfigUtils.d.ts.map +1 -0
  102. package/build/commands/shared/{configUtils.js → baseConfigUtils.js} +1 -1
  103. package/build/commands/shared/baseConfigUtils.js.map +1 -0
  104. package/build/config/configManager.d.ts +125 -0
  105. package/build/config/configManager.d.ts.map +1 -0
  106. package/build/config/configManager.js +412 -0
  107. package/build/config/configManager.js.map +1 -0
  108. package/build/constants/mcp.d.ts +1 -1
  109. package/build/constants/mcp.js +1 -1
  110. package/build/core/capabilities/asyncLoadingOrchestrator.d.ts +1 -1
  111. package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
  112. package/build/core/capabilities/asyncLoadingOrchestrator.js +6 -1
  113. package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
  114. package/build/core/capabilities/capabilityAggregator.d.ts +1 -0
  115. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  116. package/build/core/capabilities/capabilityAggregator.js +21 -0
  117. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  118. package/build/core/capabilities/capabilityManager.d.ts +3 -10
  119. package/build/core/capabilities/capabilityManager.d.ts.map +1 -1
  120. package/build/core/capabilities/internal/discoveryTools.d.ts +28 -0
  121. package/build/core/capabilities/internal/discoveryTools.d.ts.map +1 -0
  122. package/build/core/capabilities/internal/discoveryTools.js +84 -0
  123. package/build/core/capabilities/internal/discoveryTools.js.map +1 -0
  124. package/build/core/capabilities/internal/installationTools.d.ts +20 -0
  125. package/build/core/capabilities/internal/installationTools.d.ts.map +1 -0
  126. package/build/core/capabilities/internal/installationTools.js +50 -0
  127. package/build/core/capabilities/internal/installationTools.js.map +1 -0
  128. package/build/core/capabilities/internal/managementTools.d.ts +32 -0
  129. package/build/core/capabilities/internal/managementTools.d.ts.map +1 -0
  130. package/build/core/capabilities/internal/managementTools.js +94 -0
  131. package/build/core/capabilities/internal/managementTools.js.map +1 -0
  132. package/build/core/capabilities/internalCapabilitiesProvider.d.ts +41 -0
  133. package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -0
  134. package/build/core/capabilities/internalCapabilitiesProvider.js +275 -0
  135. package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -0
  136. package/build/core/client/clientManager.d.ts +5 -0
  137. package/build/core/client/clientManager.d.ts.map +1 -1
  138. package/build/core/client/clientManager.js +34 -0
  139. package/build/core/client/clientManager.js.map +1 -1
  140. package/build/core/configChangeHandler.d.ts +78 -0
  141. package/build/core/configChangeHandler.d.ts.map +1 -0
  142. package/build/core/configChangeHandler.js +310 -0
  143. package/build/core/configChangeHandler.js.map +1 -0
  144. package/build/core/flags/flagManager.d.ts +90 -0
  145. package/build/core/flags/flagManager.d.ts.map +1 -0
  146. package/build/core/flags/flagManager.js +209 -0
  147. package/build/core/flags/flagManager.js.map +1 -0
  148. package/build/core/protocol/requestHandlers.d.ts.map +1 -1
  149. package/build/core/protocol/requestHandlers.js +32 -1
  150. package/build/core/protocol/requestHandlers.js.map +1 -1
  151. package/build/core/server/agentConfig.d.ts +20 -0
  152. package/build/core/server/agentConfig.d.ts.map +1 -1
  153. package/build/core/server/agentConfig.js +40 -0
  154. package/build/core/server/agentConfig.js.map +1 -1
  155. package/build/core/server/pidFileManager.d.ts +14 -1
  156. package/build/core/server/pidFileManager.d.ts.map +1 -1
  157. package/build/core/server/pidFileManager.js +24 -2
  158. package/build/core/server/pidFileManager.js.map +1 -1
  159. package/build/core/server/serverManager.d.ts +46 -1
  160. package/build/core/server/serverManager.d.ts.map +1 -1
  161. package/build/core/server/serverManager.js +260 -3
  162. package/build/core/server/serverManager.js.map +1 -1
  163. package/build/core/tools/handlers/searchHandler.js +1 -1
  164. package/build/core/tools/handlers/searchHandler.js.map +1 -1
  165. package/build/core/tools/handlers/serverManagementHandler.d.ts +262 -0
  166. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -0
  167. package/build/core/tools/handlers/serverManagementHandler.js +430 -0
  168. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -0
  169. package/build/core/tools/internal/adapters/discoveryAdapter.d.ts +148 -0
  170. package/build/core/tools/internal/adapters/discoveryAdapter.d.ts.map +1 -0
  171. package/build/core/tools/internal/adapters/discoveryAdapter.js +163 -0
  172. package/build/core/tools/internal/adapters/discoveryAdapter.js.map +1 -0
  173. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +62 -0
  174. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -0
  175. package/build/core/tools/internal/adapters/helpers/configTransformers.js +79 -0
  176. package/build/core/tools/internal/adapters/helpers/configTransformers.js.map +1 -0
  177. package/build/core/tools/internal/adapters/index.d.ts +58 -0
  178. package/build/core/tools/internal/adapters/index.d.ts.map +1 -0
  179. package/build/core/tools/internal/adapters/index.js +85 -0
  180. package/build/core/tools/internal/adapters/index.js.map +1 -0
  181. package/build/core/tools/internal/adapters/installation/directInstallation.d.ts +16 -0
  182. package/build/core/tools/internal/adapters/installation/directInstallation.d.ts.map +1 -0
  183. package/build/core/tools/internal/adapters/installation/directInstallation.js +103 -0
  184. package/build/core/tools/internal/adapters/installation/directInstallation.js.map +1 -0
  185. package/build/core/tools/internal/adapters/installation/packageResolver.d.ts +7 -0
  186. package/build/core/tools/internal/adapters/installation/packageResolver.d.ts.map +1 -0
  187. package/build/core/tools/internal/adapters/installation/packageResolver.js +86 -0
  188. package/build/core/tools/internal/adapters/installation/packageResolver.js.map +1 -0
  189. package/build/core/tools/internal/adapters/installation/types.d.ts +100 -0
  190. package/build/core/tools/internal/adapters/installation/types.d.ts.map +1 -0
  191. package/build/core/tools/internal/adapters/installation/types.js +2 -0
  192. package/build/core/tools/internal/adapters/installation/types.js.map +1 -0
  193. package/build/core/tools/internal/adapters/installationAdapter.d.ts +89 -0
  194. package/build/core/tools/internal/adapters/installationAdapter.d.ts.map +1 -0
  195. package/build/core/tools/internal/adapters/installationAdapter.js +335 -0
  196. package/build/core/tools/internal/adapters/installationAdapter.js.map +1 -0
  197. package/build/core/tools/internal/adapters/management/index.d.ts +5 -0
  198. package/build/core/tools/internal/adapters/management/index.d.ts.map +1 -0
  199. package/build/core/tools/internal/adapters/management/index.js +5 -0
  200. package/build/core/tools/internal/adapters/management/index.js.map +1 -0
  201. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +51 -0
  202. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -0
  203. package/build/core/tools/internal/adapters/management/managementAdapter.js +402 -0
  204. package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -0
  205. package/build/core/tools/internal/adapters/management/toolHandlers.d.ts +6 -0
  206. package/build/core/tools/internal/adapters/management/toolHandlers.d.ts.map +1 -0
  207. package/build/core/tools/internal/adapters/management/toolHandlers.js +154 -0
  208. package/build/core/tools/internal/adapters/management/toolHandlers.js.map +1 -0
  209. package/build/core/tools/internal/adapters/management/types.d.ts +179 -0
  210. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -0
  211. package/build/core/tools/internal/adapters/management/types.js +2 -0
  212. package/build/core/tools/internal/adapters/management/types.js.map +1 -0
  213. package/build/core/tools/internal/adapters/management/validation.d.ts +9 -0
  214. package/build/core/tools/internal/adapters/management/validation.d.ts.map +1 -0
  215. package/build/core/tools/internal/adapters/management/validation.js +204 -0
  216. package/build/core/tools/internal/adapters/management/validation.js.map +1 -0
  217. package/build/core/tools/internal/adapters/validation/configValidation.d.ts +22 -0
  218. package/build/core/tools/internal/adapters/validation/configValidation.d.ts.map +1 -0
  219. package/build/core/tools/internal/adapters/validation/configValidation.js +185 -0
  220. package/build/core/tools/internal/adapters/validation/configValidation.js.map +1 -0
  221. package/build/core/tools/internal/discoveryHandlers.d.ts +26 -0
  222. package/build/core/tools/internal/discoveryHandlers.d.ts.map +1 -0
  223. package/build/core/tools/internal/discoveryHandlers.js +283 -0
  224. package/build/core/tools/internal/discoveryHandlers.js.map +1 -0
  225. package/build/core/tools/internal/index.d.ts +279 -0
  226. package/build/core/tools/internal/index.d.ts.map +1 -0
  227. package/build/core/tools/internal/index.js +236 -0
  228. package/build/core/tools/internal/index.js.map +1 -0
  229. package/build/core/tools/internal/installationHandlers.d.ts +18 -0
  230. package/build/core/tools/internal/installationHandlers.d.ts.map +1 -0
  231. package/build/core/tools/internal/installationHandlers.js +314 -0
  232. package/build/core/tools/internal/installationHandlers.js.map +1 -0
  233. package/build/core/tools/internal/managementHandlers.d.ts +26 -0
  234. package/build/core/tools/internal/managementHandlers.d.ts.map +1 -0
  235. package/build/core/tools/internal/managementHandlers.js +306 -0
  236. package/build/core/tools/internal/managementHandlers.js.map +1 -0
  237. package/build/core/tools/internal/schemas/discovery.d.ts +233 -0
  238. package/build/core/tools/internal/schemas/discovery.d.ts.map +1 -0
  239. package/build/core/tools/internal/schemas/discovery.js +189 -0
  240. package/build/core/tools/internal/schemas/discovery.js.map +1 -0
  241. package/build/core/tools/internal/schemas/edit.d.ts +96 -0
  242. package/build/core/tools/internal/schemas/edit.d.ts.map +1 -0
  243. package/build/core/tools/internal/schemas/edit.js +76 -0
  244. package/build/core/tools/internal/schemas/edit.js.map +1 -0
  245. package/build/core/tools/internal/schemas/index.d.ts +629 -0
  246. package/build/core/tools/internal/schemas/index.d.ts.map +1 -0
  247. package/build/core/tools/internal/schemas/index.js +158 -0
  248. package/build/core/tools/internal/schemas/index.js.map +1 -0
  249. package/build/core/tools/internal/schemas/installation.d.ts +210 -0
  250. package/build/core/tools/internal/schemas/installation.d.ts.map +1 -0
  251. package/build/core/tools/internal/schemas/installation.js +212 -0
  252. package/build/core/tools/internal/schemas/installation.js.map +1 -0
  253. package/build/core/tools/internal/schemas/management.d.ts +232 -0
  254. package/build/core/tools/internal/schemas/management.d.ts.map +1 -0
  255. package/build/core/tools/internal/schemas/management.js +188 -0
  256. package/build/core/tools/internal/schemas/management.js.map +1 -0
  257. package/build/core/tools/internal/toolHandlers.d.ts +7 -0
  258. package/build/core/tools/internal/toolHandlers.d.ts.map +1 -0
  259. package/build/core/tools/internal/toolHandlers.js +8 -0
  260. package/build/core/tools/internal/toolHandlers.js.map +1 -0
  261. package/build/core/tools/internal/toolSchemas.d.ts +16 -0
  262. package/build/core/tools/internal/toolSchemas.d.ts.map +1 -0
  263. package/build/core/tools/internal/toolSchemas.js +22 -0
  264. package/build/core/tools/internal/toolSchemas.js.map +1 -0
  265. package/build/domains/installation/configurators/cliArgsConfigurator.d.ts +7 -0
  266. package/build/domains/installation/configurators/cliArgsConfigurator.d.ts.map +1 -0
  267. package/build/domains/installation/configurators/cliArgsConfigurator.js +146 -0
  268. package/build/domains/installation/configurators/cliArgsConfigurator.js.map +1 -0
  269. package/build/domains/installation/configurators/envVarConfigurator.d.ts +7 -0
  270. package/build/domains/installation/configurators/envVarConfigurator.d.ts.map +1 -0
  271. package/build/domains/installation/configurators/envVarConfigurator.js +122 -0
  272. package/build/domains/installation/configurators/envVarConfigurator.js.map +1 -0
  273. package/build/domains/installation/configurators/tagsConfigurator.d.ts +23 -0
  274. package/build/domains/installation/configurators/tagsConfigurator.d.ts.map +1 -0
  275. package/build/domains/installation/configurators/tagsConfigurator.js +46 -0
  276. package/build/domains/installation/configurators/tagsConfigurator.js.map +1 -0
  277. package/build/domains/installation/index.d.ts +12 -0
  278. package/build/domains/installation/index.d.ts.map +1 -0
  279. package/build/domains/installation/index.js +16 -0
  280. package/build/domains/installation/index.js.map +1 -0
  281. package/build/domains/installation/metadata/defaultsProvider.d.ts +12 -0
  282. package/build/domains/installation/metadata/defaultsProvider.d.ts.map +1 -0
  283. package/build/domains/installation/metadata/defaultsProvider.js +43 -0
  284. package/build/domains/installation/metadata/defaultsProvider.js.map +1 -0
  285. package/build/domains/installation/metadata/metadataExtractor.d.ts +11 -0
  286. package/build/domains/installation/metadata/metadataExtractor.d.ts.map +1 -0
  287. package/build/domains/installation/metadata/metadataExtractor.js +59 -0
  288. package/build/domains/installation/metadata/metadataExtractor.js.map +1 -0
  289. package/build/domains/installation/types.d.ts +27 -0
  290. package/build/domains/installation/types.d.ts.map +1 -0
  291. package/build/domains/installation/types.js +5 -0
  292. package/build/domains/installation/types.js.map +1 -0
  293. package/build/domains/installation/validators/conflictDetector.d.ts +24 -0
  294. package/build/domains/installation/validators/conflictDetector.d.ts.map +1 -0
  295. package/build/domains/installation/validators/conflictDetector.js +41 -0
  296. package/build/domains/installation/validators/conflictDetector.js.map +1 -0
  297. package/build/domains/installation/validators/serverNameValidator.d.ts +17 -0
  298. package/build/domains/installation/validators/serverNameValidator.d.ts.map +1 -0
  299. package/build/domains/installation/validators/serverNameValidator.js +58 -0
  300. package/build/domains/installation/validators/serverNameValidator.js.map +1 -0
  301. package/build/domains/registry/formatters/serverDetailFormatter.js +22 -9
  302. package/build/domains/registry/formatters/serverDetailFormatter.js.map +1 -1
  303. package/build/domains/registry/mcpRegistryClient.d.ts.map +1 -1
  304. package/build/domains/registry/mcpRegistryClient.js +46 -18
  305. package/build/domains/registry/mcpRegistryClient.js.map +1 -1
  306. package/build/domains/registry/mcpToolSchemas.d.ts +2 -2
  307. package/build/domains/registry/mcpToolSchemas.d.ts.map +1 -1
  308. package/build/domains/registry/mcpToolSchemas.js +1 -1
  309. package/build/domains/registry/mcpToolSchemas.js.map +1 -1
  310. package/build/domains/registry/types.d.ts +2 -3
  311. package/build/domains/registry/types.d.ts.map +1 -1
  312. package/build/domains/server-management/index.d.ts +11 -0
  313. package/build/domains/server-management/index.d.ts.map +1 -0
  314. package/build/domains/server-management/index.js +13 -0
  315. package/build/domains/server-management/index.js.map +1 -0
  316. package/build/domains/server-management/progressTrackingService.d.ts +49 -0
  317. package/build/domains/server-management/progressTrackingService.d.ts.map +1 -0
  318. package/build/domains/server-management/progressTrackingService.js +102 -0
  319. package/build/domains/server-management/progressTrackingService.js.map +1 -0
  320. package/build/domains/server-management/serverInstallationService.d.ts +48 -0
  321. package/build/domains/server-management/serverInstallationService.d.ts.map +1 -0
  322. package/build/domains/server-management/serverInstallationService.js +299 -0
  323. package/build/domains/server-management/serverInstallationService.js.map +1 -0
  324. package/build/domains/server-management/services/versionResolver.d.ts +36 -0
  325. package/build/domains/server-management/services/versionResolver.d.ts.map +1 -0
  326. package/build/domains/server-management/services/versionResolver.js +74 -0
  327. package/build/domains/server-management/services/versionResolver.js.map +1 -0
  328. package/build/domains/server-management/types.d.ts +215 -0
  329. package/build/domains/server-management/types.d.ts.map +1 -0
  330. package/build/domains/server-management/types.js +28 -0
  331. package/build/domains/server-management/types.js.map +1 -0
  332. package/build/server.d.ts +1 -1
  333. package/build/server.d.ts.map +1 -1
  334. package/build/server.js +18 -12
  335. package/build/server.js.map +1 -1
  336. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js +2 -2
  337. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js.map +1 -1
  338. package/build/utils/schemaUtils.d.ts +25 -0
  339. package/build/utils/schemaUtils.d.ts.map +1 -0
  340. package/build/utils/schemaUtils.js +43 -0
  341. package/build/utils/schemaUtils.js.map +1 -0
  342. package/package.json +5 -4
  343. package/build/application/services/configReloadService.d.ts +0 -55
  344. package/build/application/services/configReloadService.d.ts.map +0 -1
  345. package/build/application/services/configReloadService.js +0 -195
  346. package/build/application/services/configReloadService.js.map +0 -1
  347. package/build/commands/mcp/utils/configUtils.d.ts +0 -71
  348. package/build/commands/mcp/utils/configUtils.d.ts.map +0 -1
  349. package/build/commands/mcp/utils/configUtils.js +0 -326
  350. package/build/commands/mcp/utils/configUtils.js.map +0 -1
  351. package/build/commands/shared/configUtils.d.ts.map +0 -1
  352. package/build/commands/shared/configUtils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolHandlers.js","sourceRoot":"","sources":["../../../../../../src/core/tools/internal/adapters/management/toolHandlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Management server types
3
+ */
4
+ import { MCPServerParams } from '../../../../../core/types/index.js';
5
+ /**
6
+ * Management adapter interface
7
+ */
8
+ export interface ManagementAdapter {
9
+ listServers(options?: ManagementListOptions): Promise<ServerInfo[]>;
10
+ getServerStatus(serverName?: string): Promise<ServerStatusInfo>;
11
+ enableServer(serverName: string, options?: EnableServerOptions): Promise<EnableServerResult>;
12
+ disableServer(serverName: string, options?: DisableServerOptions): Promise<DisableServerResult>;
13
+ reloadConfiguration(options?: ReloadOptions): Promise<ReloadResult>;
14
+ updateServerConfig(serverName: string, config: Partial<MCPServerParams & {
15
+ newName?: string;
16
+ }>): Promise<UpdateConfigResult>;
17
+ validateServerConfig(serverName: string, config: Partial<MCPServerParams & {
18
+ newName?: string;
19
+ }>): Promise<ValidationResult>;
20
+ getServerUrl(options?: {
21
+ port?: number;
22
+ host?: string;
23
+ }): Promise<string>;
24
+ }
25
+ /**
26
+ * Server information structure
27
+ */
28
+ export interface ServerInfo {
29
+ name: string;
30
+ config: MCPServerParams;
31
+ status: 'enabled' | 'disabled' | 'unknown';
32
+ transport?: 'stdio' | 'sse' | 'http';
33
+ url?: string;
34
+ healthStatus?: 'healthy' | 'unhealthy' | 'unknown';
35
+ lastChecked?: Date;
36
+ metadata?: {
37
+ installedAt?: string;
38
+ version?: string;
39
+ source?: string;
40
+ tags?: string[];
41
+ };
42
+ }
43
+ /**
44
+ * Server status information
45
+ */
46
+ export interface ServerStatusInfo {
47
+ timestamp: string;
48
+ servers: Array<{
49
+ name: string;
50
+ status: 'enabled' | 'disabled' | 'unknown';
51
+ transport?: string;
52
+ url?: string;
53
+ healthStatus?: string;
54
+ lastChecked?: string;
55
+ errors?: string[];
56
+ }>;
57
+ totalServers: number;
58
+ enabledServers: number;
59
+ disabledServers: number;
60
+ unhealthyServers: number;
61
+ }
62
+ /**
63
+ * Options for listing servers
64
+ */
65
+ export interface ManagementListOptions {
66
+ /** Filter by status */
67
+ status?: 'enabled' | 'disabled' | 'all';
68
+ /** Filter by transport type */
69
+ transport?: 'stdio' | 'sse' | 'http';
70
+ /** Include detailed information */
71
+ detailed?: boolean;
72
+ /** Filter by tags */
73
+ tags?: string[];
74
+ }
75
+ /**
76
+ * Options for enabling servers
77
+ */
78
+ export interface EnableServerOptions {
79
+ /** Restart server after enabling */
80
+ restart?: boolean;
81
+ /** Enable only for specific tags */
82
+ tags?: string[];
83
+ /** Enable with grace period */
84
+ graceful?: boolean;
85
+ /** Timeout in seconds */
86
+ timeout?: number;
87
+ }
88
+ /**
89
+ * Result of enabling a server
90
+ */
91
+ export interface EnableServerResult {
92
+ success: boolean;
93
+ serverName: string;
94
+ enabled: boolean;
95
+ restarted?: boolean;
96
+ warnings?: string[];
97
+ errors?: string[];
98
+ }
99
+ /**
100
+ * Options for disabling servers
101
+ */
102
+ export interface DisableServerOptions {
103
+ /** Gracefully shutdown server */
104
+ graceful?: boolean;
105
+ /** Timeout in seconds */
106
+ timeout?: number;
107
+ /** Disable only for specific tags */
108
+ tags?: string[];
109
+ /** Force disable even if in use */
110
+ force?: boolean;
111
+ }
112
+ /**
113
+ * Result of disabling a server
114
+ */
115
+ export interface DisableServerResult {
116
+ success: boolean;
117
+ serverName: string;
118
+ disabled: boolean;
119
+ gracefulShutdown?: boolean;
120
+ warnings?: string[];
121
+ errors?: string[];
122
+ }
123
+ /**
124
+ * Options for reloading configuration
125
+ */
126
+ export interface ReloadOptions {
127
+ /** Reload specific server */
128
+ server?: string;
129
+ /** Reload configuration only (no restart) */
130
+ configOnly?: boolean;
131
+ /** Force reload even if no changes */
132
+ force?: boolean;
133
+ /** Timeout in seconds */
134
+ timeout?: number;
135
+ }
136
+ /**
137
+ * Result of reload operation
138
+ */
139
+ export interface ReloadResult {
140
+ success: boolean;
141
+ target: string;
142
+ action: string;
143
+ timestamp: string;
144
+ reloadedServers?: string[];
145
+ warnings?: string[];
146
+ errors?: string[];
147
+ }
148
+ /**
149
+ * Configuration change tracking
150
+ */
151
+ export interface ConfigChange {
152
+ field: string;
153
+ oldValue?: unknown;
154
+ newValue?: unknown;
155
+ }
156
+ /**
157
+ * Result of updating server configuration
158
+ */
159
+ export interface UpdateConfigResult {
160
+ success: boolean;
161
+ serverName: string;
162
+ previousConfig: MCPServerParams;
163
+ newConfig: MCPServerParams;
164
+ updated: boolean;
165
+ changes?: ConfigChange[];
166
+ backupPath?: string;
167
+ warnings?: string[];
168
+ errors?: string[];
169
+ }
170
+ /**
171
+ * Validation result
172
+ */
173
+ export interface ValidationResult {
174
+ valid: boolean;
175
+ errors: string[];
176
+ warnings: string[];
177
+ suggestions?: string[];
178
+ }
179
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/core/tools/internal/adapters/management/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/core/tools/internal/adapters/management/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { MCPServerParams } from '../../../../../core/types/index.js';
2
+ import { ValidationResult } from './types.js';
3
+ /**
4
+ * Validate server configuration
5
+ */
6
+ export declare function validateServerConfig(serverName: string, config: Partial<MCPServerParams & {
7
+ newName?: string;
8
+ }>): Promise<ValidationResult>;
9
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../../../src/core/tools/internal/adapters/management/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAI3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GACtD,OAAO,CAAC,gBAAgB,CAAC,CAsM3B"}
@@ -0,0 +1,204 @@
1
+ import { getAllServers } from '../../../../../commands/mcp/utils/mcpServerConfig.js';
2
+ import logger, { debugIf } from '../../../../../logger/logger.js';
3
+ import { validateServer1mcpUrl } from '../../../../../utils/validation/urlDetection.js';
4
+ /**
5
+ * Validate server configuration
6
+ */
7
+ export async function validateServerConfig(serverName, config) {
8
+ debugIf(() => ({
9
+ message: 'Adapter: Validating server config',
10
+ meta: { serverName, config },
11
+ }));
12
+ try {
13
+ const errors = [];
14
+ const warnings = [];
15
+ const suggestions = [];
16
+ // Get all servers for duplicate name checking
17
+ const allServers = getAllServers();
18
+ // Name validation (for server renaming)
19
+ if (config.newName !== undefined) {
20
+ const newName = config.newName;
21
+ if (!newName || newName.trim().length === 0) {
22
+ errors.push('Server name cannot be empty');
23
+ }
24
+ else if (newName !== serverName && allServers[newName]) {
25
+ errors.push(`Server name '${newName}' already exists`);
26
+ }
27
+ else if (!/^[a-zA-Z0-9_-]+$/.test(newName)) {
28
+ errors.push('Server name can only contain letters, numbers, hyphens, and underscores');
29
+ }
30
+ else if (newName.length > 100) {
31
+ errors.push('Server name cannot exceed 100 characters');
32
+ }
33
+ }
34
+ // Timeout validation
35
+ const timeoutFields = ['timeout', 'connectionTimeout', 'requestTimeout'];
36
+ for (const field of timeoutFields) {
37
+ if (field in config && config[field] !== undefined) {
38
+ const value = config[field];
39
+ if (typeof value !== 'number' || value < 0) {
40
+ errors.push(`${field} must be a positive number`);
41
+ }
42
+ else if (value > 300000) {
43
+ // 5 minutes
44
+ warnings.push(`${field} value (${value}ms) is very high and may cause issues`);
45
+ }
46
+ }
47
+ }
48
+ // Basic transport validation
49
+ if (!config.command && !config.url) {
50
+ errors.push('Server must have either a command or URL');
51
+ }
52
+ if (config.url !== undefined) {
53
+ if (!config.url) {
54
+ errors.push('URL cannot be empty');
55
+ }
56
+ else {
57
+ try {
58
+ new URL(config.url); // Basic URL validation
59
+ const urlValidation = await validateServer1mcpUrl(config.url);
60
+ if (!urlValidation.valid) {
61
+ errors.push(`Invalid URL: ${urlValidation.error}`);
62
+ }
63
+ }
64
+ catch {
65
+ errors.push('Invalid URL format');
66
+ }
67
+ }
68
+ }
69
+ // Command and arguments validation
70
+ if (config.command !== undefined) {
71
+ if (!config.command) {
72
+ errors.push('Command cannot be empty');
73
+ }
74
+ else if (config.command.length > 1000) {
75
+ errors.push('Command cannot exceed 1000 characters');
76
+ }
77
+ }
78
+ if (config.args !== undefined) {
79
+ if (!Array.isArray(config.args)) {
80
+ errors.push('Arguments must be an array');
81
+ }
82
+ else if (config.args.some((arg) => typeof arg !== 'string')) {
83
+ errors.push('All arguments must be strings');
84
+ }
85
+ }
86
+ // Working directory validation
87
+ if (config.cwd !== undefined) {
88
+ if (config.cwd && !config.cwd.startsWith('/')) {
89
+ warnings.push('Working directory should be an absolute path');
90
+ }
91
+ }
92
+ // Environment variables validation
93
+ if (config.env !== undefined) {
94
+ if (typeof config.env !== 'object' || config.env === null) {
95
+ errors.push('Environment variables must be an object');
96
+ }
97
+ else {
98
+ const envArray = Array.isArray(config.env);
99
+ const envObject = typeof config.env === 'object' && !envArray;
100
+ if (envArray) {
101
+ errors.push('Environment variables array format is not supported - use object format');
102
+ }
103
+ else if (envObject) {
104
+ const env = config.env;
105
+ for (const [key, value] of Object.entries(env)) {
106
+ if (!key || typeof key !== 'string') {
107
+ errors.push('Environment variable keys must be non-empty strings');
108
+ }
109
+ else if (typeof value !== 'string') {
110
+ errors.push(`Environment variable ${key} must be a string`);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
116
+ // Restart parameters validation
117
+ const restartFields = ['maxRestarts', 'restartDelay'];
118
+ for (const field of restartFields) {
119
+ if (field in config && config[field] !== undefined) {
120
+ const value = config[field];
121
+ if (typeof value !== 'number' || value < 0) {
122
+ errors.push(`${field} must be a non-negative number`);
123
+ }
124
+ }
125
+ }
126
+ // Tags validation
127
+ if (config.tags !== undefined) {
128
+ if (!Array.isArray(config.tags)) {
129
+ errors.push('Tags must be an array');
130
+ }
131
+ else if (config.tags.some((tag) => typeof tag !== 'string')) {
132
+ errors.push('All tags must be strings');
133
+ }
134
+ else {
135
+ const invalidTags = config.tags.filter((tag) => !tag || tag.length > 50 || !/^[a-zA-Z0-9_-]+$/.test(tag));
136
+ if (invalidTags.length > 0) {
137
+ errors.push(`Invalid tags: ${invalidTags.join(', ')}`);
138
+ }
139
+ }
140
+ }
141
+ // Headers validation
142
+ if (config.headers !== undefined) {
143
+ if (typeof config.headers !== 'object' || config.headers === null || Array.isArray(config.headers)) {
144
+ errors.push('Headers must be an object');
145
+ }
146
+ else {
147
+ for (const [key, value] of Object.entries(config.headers)) {
148
+ if (!key || typeof key !== 'string') {
149
+ errors.push('Header keys must be non-empty strings');
150
+ }
151
+ else if (typeof value !== 'string') {
152
+ errors.push(`Header ${key} must be a string`);
153
+ }
154
+ }
155
+ }
156
+ }
157
+ // OAuth validation
158
+ if (config.oauth !== undefined) {
159
+ if (typeof config.oauth !== 'object' || config.oauth === null || Array.isArray(config.oauth)) {
160
+ errors.push('OAuth configuration must be an object');
161
+ }
162
+ else {
163
+ const oauth = config.oauth;
164
+ if (oauth.clientId !== undefined && typeof oauth.clientId !== 'string') {
165
+ errors.push('OAuth client ID must be a string');
166
+ }
167
+ if (oauth.clientSecret !== undefined && typeof oauth.clientSecret !== 'string') {
168
+ errors.push('OAuth client secret must be a string');
169
+ }
170
+ if (oauth.scopes !== undefined) {
171
+ if (!Array.isArray(oauth.scopes) || oauth.scopes.some((scope) => typeof scope !== 'string')) {
172
+ errors.push('OAuth scopes must be an array of strings');
173
+ }
174
+ }
175
+ }
176
+ }
177
+ // Warnings and suggestions
178
+ if (config.command && config.url) {
179
+ warnings.push('Both command and URL specified - URL will take precedence');
180
+ }
181
+ if (config.command && !config.url && config.url === undefined) {
182
+ suggestions.push('Consider using URL-based transport for better compatibility');
183
+ }
184
+ if (config.timeout !== undefined) {
185
+ warnings.push('Using deprecated timeout field - consider using connectionTimeout and requestTimeout instead');
186
+ }
187
+ return {
188
+ valid: errors.length === 0,
189
+ errors,
190
+ warnings,
191
+ suggestions,
192
+ };
193
+ }
194
+ catch (error) {
195
+ const errorMessage = error instanceof Error ? error.message : String(error);
196
+ logger.error('Server config validation failed', { error: errorMessage, serverName });
197
+ return {
198
+ valid: false,
199
+ errors: [errorMessage],
200
+ warnings: [],
201
+ };
202
+ }
203
+ }
204
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../../../src/core/tools/internal/adapters/management/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Server configuration validation utilities
3
+ *
4
+ * Extracted from managementAdapter.ts to improve maintainability
5
+ */
6
+ import { MCPServerParams } from '../../../../../core/types/index.js';
7
+ /**
8
+ * Validation result
9
+ */
10
+ export interface ValidationResult {
11
+ valid: boolean;
12
+ errors: string[];
13
+ warnings: string[];
14
+ suggestions?: string[];
15
+ }
16
+ /**
17
+ * Validate server configuration
18
+ */
19
+ export declare function validateServerConfig(serverName: string, config: Partial<MCPServerParams & {
20
+ newName?: string;
21
+ }>, allServers: Record<string, MCPServerParams>): Promise<ValidationResult>;
22
+ //# sourceMappingURL=configValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configValidation.d.ts","sourceRoot":"","sources":["../../../../../../src/core/tools/internal/adapters/validation/configValidation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,CAAC,eAAe,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACvD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CAoL3B"}
@@ -0,0 +1,185 @@
1
+ import { validateServer1mcpUrl } from '../../../../../utils/validation/urlDetection.js';
2
+ /**
3
+ * Validate server configuration
4
+ */
5
+ export async function validateServerConfig(serverName, config, allServers) {
6
+ const errors = [];
7
+ const warnings = [];
8
+ const suggestions = [];
9
+ // Name validation (for server renaming)
10
+ if (config.newName !== undefined) {
11
+ const newName = config.newName;
12
+ if (!newName || newName.trim().length === 0) {
13
+ errors.push('Server name cannot be empty');
14
+ }
15
+ else if (newName !== serverName && allServers[newName]) {
16
+ errors.push(`Server name '${newName}' already exists`);
17
+ }
18
+ else if (!/^[a-zA-Z0-9_-]+$/.test(newName)) {
19
+ errors.push('Server name can only contain letters, numbers, hyphens, and underscores');
20
+ }
21
+ else if (newName.length > 100) {
22
+ errors.push('Server name cannot exceed 100 characters');
23
+ }
24
+ }
25
+ // Timeout validation
26
+ const timeoutFields = ['timeout', 'connectionTimeout', 'requestTimeout'];
27
+ for (const field of timeoutFields) {
28
+ if (field in config && config[field] !== undefined) {
29
+ const value = config[field];
30
+ if (typeof value !== 'number' || value < 0) {
31
+ errors.push(`${field} must be a positive number`);
32
+ }
33
+ else if (value > 300000) {
34
+ // 5 minutes
35
+ warnings.push(`${field} value (${value}ms) is very high and may cause issues`);
36
+ }
37
+ }
38
+ }
39
+ // Basic transport validation
40
+ if (!config.command && !config.url) {
41
+ errors.push('Server must have either a command or URL');
42
+ }
43
+ if (config.url !== undefined) {
44
+ if (!config.url) {
45
+ errors.push('URL cannot be empty');
46
+ }
47
+ else {
48
+ try {
49
+ new URL(config.url); // Basic URL validation
50
+ const urlValidation = await validateServer1mcpUrl(config.url);
51
+ if (!urlValidation.valid) {
52
+ errors.push(`Invalid URL: ${urlValidation.error}`);
53
+ }
54
+ }
55
+ catch {
56
+ errors.push('Invalid URL format');
57
+ }
58
+ }
59
+ }
60
+ // Command and arguments validation
61
+ if (config.command !== undefined) {
62
+ if (!config.command) {
63
+ errors.push('Command cannot be empty');
64
+ }
65
+ else if (config.command.length > 1000) {
66
+ errors.push('Command cannot exceed 1000 characters');
67
+ }
68
+ }
69
+ if (config.args !== undefined) {
70
+ if (!Array.isArray(config.args)) {
71
+ errors.push('Arguments must be an array');
72
+ }
73
+ else if (config.args.some((arg) => typeof arg !== 'string')) {
74
+ errors.push('All arguments must be strings');
75
+ }
76
+ }
77
+ // Working directory validation
78
+ if (config.cwd !== undefined) {
79
+ if (config.cwd && !config.cwd.startsWith('/')) {
80
+ warnings.push('Working directory should be an absolute path');
81
+ }
82
+ }
83
+ // Environment variables validation
84
+ if (config.env !== undefined) {
85
+ if (typeof config.env !== 'object' || config.env === null) {
86
+ errors.push('Environment variables must be an object');
87
+ }
88
+ else {
89
+ const envArray = Array.isArray(config.env);
90
+ const envObject = typeof config.env === 'object' && !envArray;
91
+ if (envArray) {
92
+ errors.push('Environment variables array format is not supported - use object format');
93
+ }
94
+ else if (envObject) {
95
+ const env = config.env;
96
+ for (const [key, value] of Object.entries(env)) {
97
+ if (!key || typeof key !== 'string') {
98
+ errors.push('Environment variable keys must be non-empty strings');
99
+ }
100
+ else if (typeof value !== 'string') {
101
+ errors.push(`Environment variable ${key} must be a string`);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
107
+ // Restart parameters validation
108
+ const restartFields = ['maxRestarts', 'restartDelay'];
109
+ for (const field of restartFields) {
110
+ if (field in config && config[field] !== undefined) {
111
+ const value = config[field];
112
+ if (typeof value !== 'number' || value < 0) {
113
+ errors.push(`${field} must be a non-negative number`);
114
+ }
115
+ }
116
+ }
117
+ // Tags validation
118
+ if (config.tags !== undefined) {
119
+ if (!Array.isArray(config.tags)) {
120
+ errors.push('Tags must be an array');
121
+ }
122
+ else if (config.tags.some((tag) => typeof tag !== 'string')) {
123
+ errors.push('All tags must be strings');
124
+ }
125
+ else {
126
+ const invalidTags = config.tags.filter((tag) => !tag || tag.length > 50 || !/^[a-zA-Z0-9_-]+$/.test(tag));
127
+ if (invalidTags.length > 0) {
128
+ errors.push(`Invalid tags: ${invalidTags.join(', ')}`);
129
+ }
130
+ }
131
+ }
132
+ // Headers validation
133
+ if (config.headers !== undefined) {
134
+ if (typeof config.headers !== 'object' || config.headers === null || Array.isArray(config.headers)) {
135
+ errors.push('Headers must be an object');
136
+ }
137
+ else {
138
+ for (const [key, value] of Object.entries(config.headers)) {
139
+ if (!key || typeof key !== 'string') {
140
+ errors.push('Header keys must be non-empty strings');
141
+ }
142
+ else if (typeof value !== 'string') {
143
+ errors.push(`Header ${key} must be a string`);
144
+ }
145
+ }
146
+ }
147
+ }
148
+ // OAuth validation
149
+ if (config.oauth !== undefined) {
150
+ if (typeof config.oauth !== 'object' || config.oauth === null || Array.isArray(config.oauth)) {
151
+ errors.push('OAuth configuration must be an object');
152
+ }
153
+ else {
154
+ const oauth = config.oauth;
155
+ if (oauth.clientId !== undefined && typeof oauth.clientId !== 'string') {
156
+ errors.push('OAuth client ID must be a string');
157
+ }
158
+ if (oauth.clientSecret !== undefined && typeof oauth.clientSecret !== 'string') {
159
+ errors.push('OAuth client secret must be a string');
160
+ }
161
+ if (oauth.scopes !== undefined) {
162
+ if (!Array.isArray(oauth.scopes) || oauth.scopes.some((scope) => typeof scope !== 'string')) {
163
+ errors.push('OAuth scopes must be an array of strings');
164
+ }
165
+ }
166
+ }
167
+ }
168
+ // Warnings and suggestions
169
+ if (config.command && config.url) {
170
+ warnings.push('Both command and URL specified - URL will take precedence');
171
+ }
172
+ if (config.command && !config.url && config.url === undefined) {
173
+ suggestions.push('Consider using URL-based transport for better compatibility');
174
+ }
175
+ if (config.timeout !== undefined) {
176
+ warnings.push('Using deprecated timeout field - consider using connectionTimeout and requestTimeout instead');
177
+ }
178
+ return {
179
+ valid: errors.length === 0,
180
+ errors,
181
+ warnings,
182
+ suggestions,
183
+ };
184
+ }
185
+ //# sourceMappingURL=configValidation.js.map