@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,49 @@
1
+ import { EventEmitter } from 'events';
2
+ /**
3
+ * Progress tracking service for server management operations
4
+ * Provides step-by-step progress indicators with dynamic progress bars
5
+ */
6
+ export interface OperationProgress {
7
+ operationId: string;
8
+ operationType: string;
9
+ currentStep: number;
10
+ totalSteps: number;
11
+ stepName: string;
12
+ progress: number;
13
+ message?: string;
14
+ startedAt: Date;
15
+ updatedAt: Date;
16
+ }
17
+ export interface OperationResult {
18
+ success: boolean;
19
+ operationId: string;
20
+ duration: number;
21
+ message?: string;
22
+ error?: Error;
23
+ }
24
+ export type OperationType = 'install' | 'update' | 'uninstall' | 'search';
25
+ export declare class ProgressTrackingService extends EventEmitter {
26
+ private operations;
27
+ /**
28
+ * Start tracking an operation
29
+ */
30
+ startOperation(operationId: string, operationType: OperationType, totalSteps?: number): void;
31
+ /**
32
+ * Update progress for an operation
33
+ */
34
+ updateProgress(operationId: string, currentStep: number, stepName: string, message?: string): void;
35
+ /**
36
+ * Complete an operation
37
+ */
38
+ completeOperation(operationId: string, result?: OperationResult): void;
39
+ /**
40
+ * Fail an operation
41
+ */
42
+ failOperation(operationId: string, error: Error): void;
43
+ /**
44
+ * Get operation status
45
+ */
46
+ getOperationStatus(operationId: string): OperationProgress | undefined;
47
+ }
48
+ export declare function getProgressTrackingService(): ProgressTrackingService;
49
+ //# sourceMappingURL=progressTrackingService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressTrackingService.d.ts","sourceRoot":"","sources":["../../../src/domains/server-management/progressTrackingService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1E,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,OAAO,CAAC,UAAU,CAA6C;IAE/D;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAoB/F;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAuBlG;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI;IAsBtE;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAuBtD;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;CAGvE;AAOD,wBAAgB,0BAA0B,IAAI,uBAAuB,CAKpE"}
@@ -0,0 +1,102 @@
1
+ import { EventEmitter } from 'events';
2
+ import logger from '../../logger/logger.js';
3
+ export class ProgressTrackingService extends EventEmitter {
4
+ operations = new Map();
5
+ /**
6
+ * Start tracking an operation
7
+ */
8
+ startOperation(operationId, operationType, totalSteps = 5) {
9
+ const progress = {
10
+ operationId,
11
+ operationType,
12
+ currentStep: 0,
13
+ totalSteps,
14
+ stepName: 'Initializing...',
15
+ progress: 0,
16
+ startedAt: new Date(),
17
+ updatedAt: new Date(),
18
+ };
19
+ this.operations.set(operationId, progress);
20
+ this.emit('operation-started', progress);
21
+ logger.info(`🚀 ${operationType.charAt(0).toUpperCase() + operationType.slice(1)} operation started: ${operationId}`);
22
+ }
23
+ /**
24
+ * Update progress for an operation
25
+ */
26
+ updateProgress(operationId, currentStep, stepName, message) {
27
+ const progress = this.operations.get(operationId);
28
+ if (!progress) {
29
+ logger.warn(`No progress tracked for operation: ${operationId}`);
30
+ return;
31
+ }
32
+ const newProgress = progress.totalSteps > 0 ? Math.round((currentStep / progress.totalSteps) * 100) : 0;
33
+ progress.currentStep = currentStep;
34
+ progress.stepName = stepName;
35
+ progress.progress = Math.max(0, Math.min(100, newProgress));
36
+ progress.message = message;
37
+ progress.updatedAt = new Date();
38
+ this.emit('progress-updated', progress);
39
+ const progressPercentage = Math.max(0, Math.min(100, newProgress));
40
+ const progressBarWidth = Math.floor(progressPercentage / 5);
41
+ const progressBar = '█'.repeat(Math.max(0, progressBarWidth)) + '░'.repeat(Math.max(0, 20 - progressBarWidth));
42
+ logger.info(` [${progressBar}] ${progressPercentage}% - ${stepName}`);
43
+ }
44
+ /**
45
+ * Complete an operation
46
+ */
47
+ completeOperation(operationId, result) {
48
+ const progress = this.operations.get(operationId);
49
+ if (!progress) {
50
+ logger.warn(`No progress tracked for operation: ${operationId}`);
51
+ return;
52
+ }
53
+ const duration = new Date().getTime() - progress.startedAt.getTime();
54
+ const operationResult = {
55
+ success: true,
56
+ operationId,
57
+ duration,
58
+ ...result,
59
+ };
60
+ this.emit('operation-completed', operationResult);
61
+ this.operations.delete(operationId);
62
+ logger.info(`✅ Operation completed in ${duration}ms: ${operationId}`);
63
+ }
64
+ /**
65
+ * Fail an operation
66
+ */
67
+ failOperation(operationId, error) {
68
+ const progress = this.operations.get(operationId);
69
+ if (!progress) {
70
+ logger.warn(`No progress tracked for operation: ${operationId}`);
71
+ return;
72
+ }
73
+ const duration = new Date().getTime() - progress.startedAt.getTime();
74
+ const operationResult = {
75
+ success: false,
76
+ operationId,
77
+ duration,
78
+ error,
79
+ message: error.message,
80
+ };
81
+ this.emit('operation-failed', operationResult);
82
+ this.operations.delete(operationId);
83
+ logger.error(`❌ Operation failed after ${duration}ms: ${operationId} - ${error.message}`);
84
+ }
85
+ /**
86
+ * Get operation status
87
+ */
88
+ getOperationStatus(operationId) {
89
+ return this.operations.get(operationId);
90
+ }
91
+ }
92
+ /**
93
+ * Singleton instance of progress tracking service
94
+ */
95
+ let progressTrackingServiceInstance = null;
96
+ export function getProgressTrackingService() {
97
+ if (!progressTrackingServiceInstance) {
98
+ progressTrackingServiceInstance = new ProgressTrackingService();
99
+ }
100
+ return progressTrackingServiceInstance;
101
+ }
102
+ //# sourceMappingURL=progressTrackingService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressTrackingService.js","sourceRoot":"","sources":["../../../src/domains/server-management/progressTrackingService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { InstallOptions, InstallResult, ListOptions, UninstallOptions, UninstallResult, UpdateCheckResult, UpdateOptions, UpdateResult } from './types.js';
2
+ /**
3
+ * Server installation service
4
+ * Handles install, update, uninstall, and status operations for MCP servers
5
+ */
6
+ export declare class ServerInstallationService {
7
+ private registryClient;
8
+ private progressTracker;
9
+ constructor();
10
+ /**
11
+ * Install a server from the registry
12
+ */
13
+ installServer(serverName: string, version?: string, options?: InstallOptions): Promise<InstallResult>;
14
+ /**
15
+ * Select appropriate installation endpoint (packages first, remotes fallback)
16
+ */
17
+ private selectInstallationEndpoint;
18
+ /**
19
+ * Resolve server ID with fallback mechanism
20
+ * Tries direct lookup first, then search-based resolution if that fails
21
+ */
22
+ private resolveServerById;
23
+ /**
24
+ * Create server configuration from registry data
25
+ */
26
+ private createServerConfig;
27
+ /**
28
+ * Update a server to latest or specific version
29
+ */
30
+ updateServer(serverName: string, version?: string, _options?: UpdateOptions): Promise<UpdateResult>;
31
+ /**
32
+ * Uninstall a server
33
+ */
34
+ uninstallServer(serverName: string, _options?: UninstallOptions): Promise<UninstallResult>;
35
+ /**
36
+ * Check for available updates
37
+ */
38
+ checkForUpdates(_serverNames?: string[]): Promise<UpdateCheckResult[]>;
39
+ /**
40
+ * List installed servers
41
+ */
42
+ listInstalledServers(_options?: ListOptions): Promise<string[]>;
43
+ }
44
+ /**
45
+ * Create a server installation service instance
46
+ */
47
+ export declare function createServerInstallationService(): ServerInstallationService;
48
+ //# sourceMappingURL=serverInstallationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverInstallationService.d.ts","sourceRoot":"","sources":["../../../src/domains/server-management/serverInstallationService.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,cAAc,CAAC;IACvB,OAAO,CAAC,eAAe,CAAC;;IAOxB;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqE3G;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAiClC;;;OAGG;YACW,iBAAiB;IA8C/B;;OAEG;YACW,kBAAkB;IAoChC;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyDzG;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkBhG;;OAEG;IACG,eAAe,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA0C5E;;OAEG;IACG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkBtE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,yBAAyB,CAE3E"}
@@ -0,0 +1,299 @@
1
+ import { getAllServers, getInstallationMetadata, getServer, setServer, } from '../../commands/mcp/utils/mcpServerConfig.js';
2
+ import logger from '../../logger/logger.js';
3
+ import { createRegistryClient } from '../registry/mcpRegistryClient.js';
4
+ import { getProgressTrackingService } from './progressTrackingService.js';
5
+ import { compareVersions, getUpdateType } from './services/versionResolver.js';
6
+ /**
7
+ * Server installation service
8
+ * Handles install, update, uninstall, and status operations for MCP servers
9
+ */
10
+ export class ServerInstallationService {
11
+ registryClient;
12
+ progressTracker;
13
+ constructor() {
14
+ this.registryClient = createRegistryClient();
15
+ this.progressTracker = getProgressTrackingService();
16
+ }
17
+ /**
18
+ * Install a server from the registry
19
+ */
20
+ async installServer(serverName, version, options) {
21
+ const operationId = `op_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
22
+ const warnings = [];
23
+ const errors = [];
24
+ try {
25
+ logger.info(`Starting installation of ${serverName}${version ? `@${version}` : ''}`);
26
+ // Get server information from registry with ID resolution fallback
27
+ const registryServer = await this.resolveServerById(serverName, version);
28
+ if (!registryServer) {
29
+ throw new Error(`Server '${serverName}' not found in registry`);
30
+ }
31
+ // Select appropriate installation method (package first, remote fallback)
32
+ const selectedEndpoint = this.selectInstallationEndpoint(registryServer);
33
+ if (!selectedEndpoint) {
34
+ // Provide comprehensive error message showing what's available
35
+ const packages = registryServer.packages?.map((p) => `${p.registryType}:${p.identifier}`) || [];
36
+ const remotes = registryServer.remotes?.map((r) => r.type) || [];
37
+ const packageList = packages.length > 0 ? `Available packages: ${packages.join(', ')}` : '';
38
+ const remoteList = remotes.length > 0 ? `Available remote types: ${remotes.join(', ')}` : '';
39
+ const combinedList = [packageList, remoteList].filter(Boolean).join(' | ');
40
+ throw new Error(`No compatible installation method found for ${serverName}. ${combinedList || 'No installation methods available'}. This server may not be compatible with your system or installation method.`);
41
+ }
42
+ // Determine the local server name and registry server ID for tagging
43
+ const localServerName = options?.localServerName || serverName;
44
+ const registryServerId = options?.registryServerId || registryServer.name;
45
+ // Generate server configuration with tags
46
+ const _serverConfig = await this.createServerConfig(registryServer, selectedEndpoint, registryServerId, localServerName, options?.tags);
47
+ // Create installation result
48
+ const result = {
49
+ success: true,
50
+ serverName: localServerName,
51
+ version: registryServer.version,
52
+ installedAt: new Date(),
53
+ configPath: '', // Will be set by command handler
54
+ config: _serverConfig,
55
+ backupPath: undefined,
56
+ warnings,
57
+ errors,
58
+ operationId,
59
+ };
60
+ logger.info(`Successfully prepared installation configuration for ${localServerName}`);
61
+ return result;
62
+ }
63
+ catch (error) {
64
+ const errorMessage = error instanceof Error ? error.message : String(error);
65
+ errors.push(errorMessage);
66
+ logger.error(`Installation failed for ${serverName}: ${errorMessage}`);
67
+ throw error;
68
+ }
69
+ }
70
+ /**
71
+ * Select appropriate installation endpoint (packages first, remotes fallback)
72
+ */
73
+ selectInstallationEndpoint(registryServer) {
74
+ // PRIORITY 1: Check for packages first (primary installation method)
75
+ const packages = registryServer.packages || [];
76
+ if (packages.length > 0) {
77
+ // Prefer npm packages for broad compatibility
78
+ const npmPackage = packages.find((p) => p.registryType === 'npm');
79
+ if (npmPackage) {
80
+ return { type: 'npm', url: npmPackage.identifier, isPackage: true };
81
+ }
82
+ // Fallback to first available package type (pypi, docker, etc.)
83
+ const firstPackage = packages[0];
84
+ return { type: firstPackage.registryType, url: firstPackage.identifier, isPackage: true };
85
+ }
86
+ // PRIORITY 2: Fallback to remotes if no packages available
87
+ const remotes = registryServer.remotes || [];
88
+ if (remotes.length > 0) {
89
+ // Prefer streamable-http (npx-based) as most common
90
+ const streamableHttp = remotes.find((r) => r.type === 'streamable-http');
91
+ if (streamableHttp) {
92
+ return { type: streamableHttp.type, url: streamableHttp.url, isPackage: false };
93
+ }
94
+ // Fallback to first available remote
95
+ return { type: remotes[0].type, url: remotes[0].url, isPackage: false };
96
+ }
97
+ return undefined;
98
+ }
99
+ /**
100
+ * Resolve server ID with fallback mechanism
101
+ * Tries direct lookup first, then search-based resolution if that fails
102
+ */
103
+ async resolveServerById(serverName, version) {
104
+ try {
105
+ // Try direct lookup first (for exact registry ID matches)
106
+ return await this.registryClient.getServerById(serverName, version);
107
+ }
108
+ catch (_error) {
109
+ // If direct lookup fails, try search-based resolution
110
+ logger.debug(`Direct lookup failed for ${serverName}, trying search-based resolution`);
111
+ try {
112
+ // Search for servers matching this name
113
+ const searchResults = await this.registryClient.searchServers({
114
+ query: serverName,
115
+ limit: 10,
116
+ });
117
+ // Find exact or partial matches with priority order
118
+ const matchedServer = searchResults.find((server) =>
119
+ // Exact match first
120
+ server.name === serverName ||
121
+ // Then match if it ends with the server name (e.g., "io.github/user/mysql-read-only-server" matches "mysql-read-only-server")
122
+ server.name.endsWith(`/${serverName}`) ||
123
+ // Then match if it contains the server name
124
+ server.name.includes(serverName));
125
+ if (matchedServer) {
126
+ logger.info(`Found server "${serverName}" as "${matchedServer.name}" in registry`);
127
+ return await this.registryClient.getServerById(matchedServer.name, version);
128
+ }
129
+ // If no matches found, provide helpful error message
130
+ throw new Error(`Server '${serverName}' not found in registry. Try searching with '1mcp registry search ${serverName}' to find available servers.`);
131
+ }
132
+ catch (_searchError) {
133
+ // If search also fails, provide more comprehensive error
134
+ throw new Error(`Server '${serverName}' not found in registry. Suggestions:
135
+ 1. Check spelling: ${serverName}
136
+ 2. Search for available servers: 1mcp registry search ${serverName}
137
+ 3. Use interactive mode: 1mcp mcp install --interactive
138
+ 4. Use full registry ID (e.g., 'io.github.username/server-name')`);
139
+ }
140
+ }
141
+ }
142
+ /**
143
+ * Create server configuration from registry data
144
+ */
145
+ async createServerConfig(_registryServer, endpoint, registryServerId, localServerName, existingTags) {
146
+ // Add both local server name and registry ID as default tags
147
+ const defaultTags = [localServerName, registryServerId];
148
+ const tags = existingTags ? [...existingTags, ...defaultTags] : defaultTags;
149
+ // Remove duplicates while preserving order
150
+ const uniqueTags = Array.from(new Set(tags));
151
+ // Handle package-based installation
152
+ if (endpoint.isPackage) {
153
+ const config = {
154
+ type: 'stdio',
155
+ command: 'npx',
156
+ args: [endpoint.url],
157
+ tags: uniqueTags,
158
+ };
159
+ return config;
160
+ }
161
+ // Handle remote-based installation
162
+ const config = {
163
+ type: 'stdio',
164
+ command: endpoint.url,
165
+ tags: uniqueTags,
166
+ };
167
+ return config;
168
+ }
169
+ /**
170
+ * Update a server to latest or specific version
171
+ */
172
+ async updateServer(serverName, version, _options) {
173
+ logger.info(`Updating server ${serverName}${version ? ` to ${version}` : ' to latest'}`);
174
+ const operationId = `op_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
175
+ try {
176
+ // Import config utilities to update configuration
177
+ // Get current configuration first - if server isn't installed, we can't update it
178
+ const currentConfig = getServer(serverName);
179
+ if (!currentConfig) {
180
+ throw new Error(`Server '${serverName}' not found in configuration`);
181
+ }
182
+ // Get latest version from registry if not specified
183
+ const targetVersion = version || 'latest';
184
+ const registryServer = await this.registryClient.getServerById(serverName, targetVersion);
185
+ if (!registryServer) {
186
+ throw new Error(`Server '${serverName}' not found in registry`);
187
+ }
188
+ // Create updated configuration with new version info
189
+ const updatedConfig = {
190
+ ...currentConfig,
191
+ // Store version in metadata (future enhancement)
192
+ };
193
+ // Save updated configuration
194
+ setServer(serverName, updatedConfig);
195
+ return {
196
+ success: true,
197
+ serverName,
198
+ previousVersion: 'unknown',
199
+ newVersion: registryServer.version,
200
+ updatedAt: new Date(),
201
+ warnings: [],
202
+ errors: [],
203
+ operationId,
204
+ };
205
+ }
206
+ catch (error) {
207
+ const errorMessage = error instanceof Error ? error.message : String(error);
208
+ logger.error(`Update failed for ${serverName}: ${errorMessage}`);
209
+ return {
210
+ success: false,
211
+ serverName,
212
+ previousVersion: 'unknown',
213
+ newVersion: version || 'unknown',
214
+ updatedAt: new Date(),
215
+ warnings: [],
216
+ errors: [errorMessage],
217
+ operationId,
218
+ };
219
+ }
220
+ }
221
+ /**
222
+ * Uninstall a server
223
+ */
224
+ async uninstallServer(serverName, _options) {
225
+ logger.info(`Uninstalling server ${serverName}`);
226
+ const operationId = `op_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
227
+ const result = {
228
+ success: true,
229
+ serverName,
230
+ removedAt: new Date(),
231
+ configRemoved: true,
232
+ warnings: [],
233
+ errors: [],
234
+ operationId,
235
+ };
236
+ return result;
237
+ }
238
+ /**
239
+ * Check for available updates
240
+ */
241
+ async checkForUpdates(_serverNames) {
242
+ logger.info(`Checking for updates${_serverNames ? ` for ${_serverNames.length} servers` : ''}`);
243
+ const results = [];
244
+ // Get list of servers to check
245
+ const serversToCheck = _serverNames || (await this.listInstalledServers());
246
+ // Check each server for available updates
247
+ for (const serverName of serversToCheck) {
248
+ try {
249
+ // Get current installed version
250
+ const metadata = getInstallationMetadata(serverName);
251
+ const currentVersion = metadata?.version || 'unknown';
252
+ // Fetch latest version from registry
253
+ const latestServer = await this.registryClient.getServerById(serverName);
254
+ if (latestServer) {
255
+ // Compare versions using semantic versioning
256
+ const hasUpdate = currentVersion !== 'unknown' && compareVersions(latestServer.version, currentVersion) > 0;
257
+ const updateType = currentVersion !== 'unknown' ? getUpdateType(currentVersion, latestServer.version) : undefined;
258
+ results.push({
259
+ serverName,
260
+ currentVersion,
261
+ latestVersion: latestServer.version,
262
+ hasUpdate,
263
+ updateAvailable: hasUpdate,
264
+ updateType,
265
+ });
266
+ }
267
+ }
268
+ catch (error) {
269
+ // Silently skip servers that can't be checked
270
+ logger.debug(`Could not check updates for ${serverName}: ${error}`);
271
+ }
272
+ }
273
+ return results;
274
+ }
275
+ /**
276
+ * List installed servers
277
+ */
278
+ async listInstalledServers(_options) {
279
+ logger.info('Listing installed servers');
280
+ // Import config utilities dynamically to avoid circular dependencies
281
+ // Get all servers from configuration
282
+ const allServers = getAllServers();
283
+ // Extract server names
284
+ const serverNames = Object.keys(allServers);
285
+ // Apply filters if options provided
286
+ if (_options?.filterActive) {
287
+ // Filter to only non-disabled servers
288
+ return serverNames.filter((name) => !allServers[name]?.disabled);
289
+ }
290
+ return serverNames;
291
+ }
292
+ }
293
+ /**
294
+ * Create a server installation service instance
295
+ */
296
+ export function createServerInstallationService() {
297
+ return new ServerInstallationService();
298
+ }
299
+ //# sourceMappingURL=serverInstallationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverInstallationService.js","sourceRoot":"","sources":["../../../src/domains/server-management/serverInstallationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Version parsing, comparison, and resolution utilities
3
+ */
4
+ export interface ParsedVersion {
5
+ major: number;
6
+ minor: number;
7
+ patch: number;
8
+ }
9
+ export type UpdateType = 'major' | 'minor' | 'patch';
10
+ /**
11
+ * Parse semantic version string into components
12
+ */
13
+ export declare function parseVersion(version: string): ParsedVersion | null;
14
+ /**
15
+ * Compare two semantic versions
16
+ * Returns: 1 if v1 > v2, -1 if v1 < v2, 0 if equal
17
+ */
18
+ export declare function compareVersions(v1: string, v2: string): number;
19
+ /**
20
+ * Determine update type based on version comparison
21
+ * Returns the type of update (major/minor/patch) if newVersion > currentVersion, undefined otherwise
22
+ */
23
+ export declare function getUpdateType(currentVersion: string, newVersion: string): UpdateType | undefined;
24
+ /**
25
+ * Check if a version is valid semver
26
+ */
27
+ export declare function isValidVersion(version: string): boolean;
28
+ /**
29
+ * Clean version string (remove 'v' prefix, etc.)
30
+ */
31
+ export declare function cleanVersion(version: string): string | null;
32
+ /**
33
+ * Check if version1 is greater than version2
34
+ */
35
+ export declare function isNewerVersion(v1: string, v2: string): boolean;
36
+ //# sourceMappingURL=versionResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionResolver.d.ts","sourceRoot":"","sources":["../../../../src/domains/server-management/services/versionResolver.ts"],"names":[],"mappings":"AAEA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAErD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAWlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAU9D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CA6BhG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9D"}
@@ -0,0 +1,74 @@
1
+ import semver from 'semver';
2
+ /**
3
+ * Parse semantic version string into components
4
+ */
5
+ export function parseVersion(version) {
6
+ const parsed = semver.parse(version);
7
+ if (!parsed) {
8
+ return null;
9
+ }
10
+ return {
11
+ major: parsed.major,
12
+ minor: parsed.minor,
13
+ patch: parsed.patch,
14
+ };
15
+ }
16
+ /**
17
+ * Compare two semantic versions
18
+ * Returns: 1 if v1 > v2, -1 if v1 < v2, 0 if equal
19
+ */
20
+ export function compareVersions(v1, v2) {
21
+ // Clean versions to handle 'v' prefix and other formats
22
+ const clean1 = semver.clean(v1);
23
+ const clean2 = semver.clean(v2);
24
+ if (!clean1 || !clean2) {
25
+ return 0;
26
+ }
27
+ return semver.compare(clean1, clean2);
28
+ }
29
+ /**
30
+ * Determine update type based on version comparison
31
+ * Returns the type of update (major/minor/patch) if newVersion > currentVersion, undefined otherwise
32
+ */
33
+ export function getUpdateType(currentVersion, newVersion) {
34
+ const clean1 = semver.clean(currentVersion);
35
+ const clean2 = semver.clean(newVersion);
36
+ if (!clean1 || !clean2) {
37
+ return undefined;
38
+ }
39
+ // First check if new version is actually greater
40
+ if (!semver.gt(clean2, clean1)) {
41
+ return undefined;
42
+ }
43
+ // Now determine the type of update
44
+ const diff = semver.diff(clean1, clean2);
45
+ if (diff === 'major' || diff === 'premajor') {
46
+ return 'major';
47
+ }
48
+ if (diff === 'minor' || diff === 'preminor') {
49
+ return 'minor';
50
+ }
51
+ if (diff === 'patch' || diff === 'prepatch') {
52
+ return 'patch';
53
+ }
54
+ return undefined;
55
+ }
56
+ /**
57
+ * Check if a version is valid semver
58
+ */
59
+ export function isValidVersion(version) {
60
+ return semver.valid(version) !== null;
61
+ }
62
+ /**
63
+ * Clean version string (remove 'v' prefix, etc.)
64
+ */
65
+ export function cleanVersion(version) {
66
+ return semver.clean(version);
67
+ }
68
+ /**
69
+ * Check if version1 is greater than version2
70
+ */
71
+ export function isNewerVersion(v1, v2) {
72
+ return compareVersions(v1, v2) > 0;
73
+ }
74
+ //# sourceMappingURL=versionResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionResolver.js","sourceRoot":"","sources":["../../../../src/domains/server-management/services/versionResolver.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAc5B;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU,EAAE,EAAU;IACpD,wDAAwD;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,cAAsB,EAAE,UAAkB;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,iDAAiD;IACjD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mCAAmC;IACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU,EAAE,EAAU;IACnD,OAAO,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}