@1mcp/agent 0.27.4 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) 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/internal/discoveryTools.d.ts +28 -0
  119. package/build/core/capabilities/internal/discoveryTools.d.ts.map +1 -0
  120. package/build/core/capabilities/internal/discoveryTools.js +59 -0
  121. package/build/core/capabilities/internal/discoveryTools.js.map +1 -0
  122. package/build/core/capabilities/internal/installationTools.d.ts +20 -0
  123. package/build/core/capabilities/internal/installationTools.d.ts.map +1 -0
  124. package/build/core/capabilities/internal/installationTools.js +36 -0
  125. package/build/core/capabilities/internal/installationTools.js.map +1 -0
  126. package/build/core/capabilities/internal/managementTools.d.ts +32 -0
  127. package/build/core/capabilities/internal/managementTools.d.ts.map +1 -0
  128. package/build/core/capabilities/internal/managementTools.js +69 -0
  129. package/build/core/capabilities/internal/managementTools.js.map +1 -0
  130. package/build/core/capabilities/internalCapabilitiesProvider.d.ts +41 -0
  131. package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -0
  132. package/build/core/capabilities/internalCapabilitiesProvider.js +275 -0
  133. package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -0
  134. package/build/core/client/clientManager.d.ts +5 -0
  135. package/build/core/client/clientManager.d.ts.map +1 -1
  136. package/build/core/client/clientManager.js +34 -0
  137. package/build/core/client/clientManager.js.map +1 -1
  138. package/build/core/configChangeHandler.d.ts +78 -0
  139. package/build/core/configChangeHandler.d.ts.map +1 -0
  140. package/build/core/configChangeHandler.js +310 -0
  141. package/build/core/configChangeHandler.js.map +1 -0
  142. package/build/core/flags/flagManager.d.ts +90 -0
  143. package/build/core/flags/flagManager.d.ts.map +1 -0
  144. package/build/core/flags/flagManager.js +209 -0
  145. package/build/core/flags/flagManager.js.map +1 -0
  146. package/build/core/protocol/requestHandlers.d.ts.map +1 -1
  147. package/build/core/protocol/requestHandlers.js +32 -1
  148. package/build/core/protocol/requestHandlers.js.map +1 -1
  149. package/build/core/server/agentConfig.d.ts +20 -0
  150. package/build/core/server/agentConfig.d.ts.map +1 -1
  151. package/build/core/server/agentConfig.js +40 -0
  152. package/build/core/server/agentConfig.js.map +1 -1
  153. package/build/core/server/pidFileManager.d.ts +14 -1
  154. package/build/core/server/pidFileManager.d.ts.map +1 -1
  155. package/build/core/server/pidFileManager.js +24 -2
  156. package/build/core/server/pidFileManager.js.map +1 -1
  157. package/build/core/server/serverManager.d.ts +46 -1
  158. package/build/core/server/serverManager.d.ts.map +1 -1
  159. package/build/core/server/serverManager.js +260 -3
  160. package/build/core/server/serverManager.js.map +1 -1
  161. package/build/core/tools/handlers/searchHandler.js +1 -1
  162. package/build/core/tools/handlers/searchHandler.js.map +1 -1
  163. package/build/core/tools/handlers/serverManagementHandler.d.ts +262 -0
  164. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -0
  165. package/build/core/tools/handlers/serverManagementHandler.js +430 -0
  166. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -0
  167. package/build/core/tools/internal/adapters/discoveryAdapter.d.ts +148 -0
  168. package/build/core/tools/internal/adapters/discoveryAdapter.d.ts.map +1 -0
  169. package/build/core/tools/internal/adapters/discoveryAdapter.js +163 -0
  170. package/build/core/tools/internal/adapters/discoveryAdapter.js.map +1 -0
  171. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +62 -0
  172. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -0
  173. package/build/core/tools/internal/adapters/helpers/configTransformers.js +79 -0
  174. package/build/core/tools/internal/adapters/helpers/configTransformers.js.map +1 -0
  175. package/build/core/tools/internal/adapters/index.d.ts +58 -0
  176. package/build/core/tools/internal/adapters/index.d.ts.map +1 -0
  177. package/build/core/tools/internal/adapters/index.js +85 -0
  178. package/build/core/tools/internal/adapters/index.js.map +1 -0
  179. package/build/core/tools/internal/adapters/installation/directInstallation.d.ts +16 -0
  180. package/build/core/tools/internal/adapters/installation/directInstallation.d.ts.map +1 -0
  181. package/build/core/tools/internal/adapters/installation/directInstallation.js +103 -0
  182. package/build/core/tools/internal/adapters/installation/directInstallation.js.map +1 -0
  183. package/build/core/tools/internal/adapters/installation/packageResolver.d.ts +7 -0
  184. package/build/core/tools/internal/adapters/installation/packageResolver.d.ts.map +1 -0
  185. package/build/core/tools/internal/adapters/installation/packageResolver.js +86 -0
  186. package/build/core/tools/internal/adapters/installation/packageResolver.js.map +1 -0
  187. package/build/core/tools/internal/adapters/installation/types.d.ts +100 -0
  188. package/build/core/tools/internal/adapters/installation/types.d.ts.map +1 -0
  189. package/build/core/tools/internal/adapters/installation/types.js +2 -0
  190. package/build/core/tools/internal/adapters/installation/types.js.map +1 -0
  191. package/build/core/tools/internal/adapters/installationAdapter.d.ts +89 -0
  192. package/build/core/tools/internal/adapters/installationAdapter.d.ts.map +1 -0
  193. package/build/core/tools/internal/adapters/installationAdapter.js +335 -0
  194. package/build/core/tools/internal/adapters/installationAdapter.js.map +1 -0
  195. package/build/core/tools/internal/adapters/management/index.d.ts +5 -0
  196. package/build/core/tools/internal/adapters/management/index.d.ts.map +1 -0
  197. package/build/core/tools/internal/adapters/management/index.js +5 -0
  198. package/build/core/tools/internal/adapters/management/index.js.map +1 -0
  199. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +51 -0
  200. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -0
  201. package/build/core/tools/internal/adapters/management/managementAdapter.js +402 -0
  202. package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -0
  203. package/build/core/tools/internal/adapters/management/toolHandlers.d.ts +6 -0
  204. package/build/core/tools/internal/adapters/management/toolHandlers.d.ts.map +1 -0
  205. package/build/core/tools/internal/adapters/management/toolHandlers.js +154 -0
  206. package/build/core/tools/internal/adapters/management/toolHandlers.js.map +1 -0
  207. package/build/core/tools/internal/adapters/management/types.d.ts +179 -0
  208. package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -0
  209. package/build/core/tools/internal/adapters/management/types.js +2 -0
  210. package/build/core/tools/internal/adapters/management/types.js.map +1 -0
  211. package/build/core/tools/internal/adapters/management/validation.d.ts +9 -0
  212. package/build/core/tools/internal/adapters/management/validation.d.ts.map +1 -0
  213. package/build/core/tools/internal/adapters/management/validation.js +204 -0
  214. package/build/core/tools/internal/adapters/management/validation.js.map +1 -0
  215. package/build/core/tools/internal/adapters/validation/configValidation.d.ts +22 -0
  216. package/build/core/tools/internal/adapters/validation/configValidation.d.ts.map +1 -0
  217. package/build/core/tools/internal/adapters/validation/configValidation.js +185 -0
  218. package/build/core/tools/internal/adapters/validation/configValidation.js.map +1 -0
  219. package/build/core/tools/internal/discoveryHandlers.d.ts +26 -0
  220. package/build/core/tools/internal/discoveryHandlers.d.ts.map +1 -0
  221. package/build/core/tools/internal/discoveryHandlers.js +283 -0
  222. package/build/core/tools/internal/discoveryHandlers.js.map +1 -0
  223. package/build/core/tools/internal/index.d.ts +279 -0
  224. package/build/core/tools/internal/index.d.ts.map +1 -0
  225. package/build/core/tools/internal/index.js +236 -0
  226. package/build/core/tools/internal/index.js.map +1 -0
  227. package/build/core/tools/internal/installationHandlers.d.ts +18 -0
  228. package/build/core/tools/internal/installationHandlers.d.ts.map +1 -0
  229. package/build/core/tools/internal/installationHandlers.js +314 -0
  230. package/build/core/tools/internal/installationHandlers.js.map +1 -0
  231. package/build/core/tools/internal/managementHandlers.d.ts +26 -0
  232. package/build/core/tools/internal/managementHandlers.d.ts.map +1 -0
  233. package/build/core/tools/internal/managementHandlers.js +306 -0
  234. package/build/core/tools/internal/managementHandlers.js.map +1 -0
  235. package/build/core/tools/internal/schemas/discovery.d.ts +233 -0
  236. package/build/core/tools/internal/schemas/discovery.d.ts.map +1 -0
  237. package/build/core/tools/internal/schemas/discovery.js +189 -0
  238. package/build/core/tools/internal/schemas/discovery.js.map +1 -0
  239. package/build/core/tools/internal/schemas/edit.d.ts +96 -0
  240. package/build/core/tools/internal/schemas/edit.d.ts.map +1 -0
  241. package/build/core/tools/internal/schemas/edit.js +76 -0
  242. package/build/core/tools/internal/schemas/edit.js.map +1 -0
  243. package/build/core/tools/internal/schemas/index.d.ts +629 -0
  244. package/build/core/tools/internal/schemas/index.d.ts.map +1 -0
  245. package/build/core/tools/internal/schemas/index.js +158 -0
  246. package/build/core/tools/internal/schemas/index.js.map +1 -0
  247. package/build/core/tools/internal/schemas/installation.d.ts +210 -0
  248. package/build/core/tools/internal/schemas/installation.d.ts.map +1 -0
  249. package/build/core/tools/internal/schemas/installation.js +212 -0
  250. package/build/core/tools/internal/schemas/installation.js.map +1 -0
  251. package/build/core/tools/internal/schemas/management.d.ts +232 -0
  252. package/build/core/tools/internal/schemas/management.d.ts.map +1 -0
  253. package/build/core/tools/internal/schemas/management.js +188 -0
  254. package/build/core/tools/internal/schemas/management.js.map +1 -0
  255. package/build/core/tools/internal/toolHandlers.d.ts +7 -0
  256. package/build/core/tools/internal/toolHandlers.d.ts.map +1 -0
  257. package/build/core/tools/internal/toolHandlers.js +8 -0
  258. package/build/core/tools/internal/toolHandlers.js.map +1 -0
  259. package/build/core/tools/internal/toolSchemas.d.ts +16 -0
  260. package/build/core/tools/internal/toolSchemas.d.ts.map +1 -0
  261. package/build/core/tools/internal/toolSchemas.js +22 -0
  262. package/build/core/tools/internal/toolSchemas.js.map +1 -0
  263. package/build/domains/installation/configurators/cliArgsConfigurator.d.ts +7 -0
  264. package/build/domains/installation/configurators/cliArgsConfigurator.d.ts.map +1 -0
  265. package/build/domains/installation/configurators/cliArgsConfigurator.js +146 -0
  266. package/build/domains/installation/configurators/cliArgsConfigurator.js.map +1 -0
  267. package/build/domains/installation/configurators/envVarConfigurator.d.ts +7 -0
  268. package/build/domains/installation/configurators/envVarConfigurator.d.ts.map +1 -0
  269. package/build/domains/installation/configurators/envVarConfigurator.js +122 -0
  270. package/build/domains/installation/configurators/envVarConfigurator.js.map +1 -0
  271. package/build/domains/installation/configurators/tagsConfigurator.d.ts +23 -0
  272. package/build/domains/installation/configurators/tagsConfigurator.d.ts.map +1 -0
  273. package/build/domains/installation/configurators/tagsConfigurator.js +46 -0
  274. package/build/domains/installation/configurators/tagsConfigurator.js.map +1 -0
  275. package/build/domains/installation/index.d.ts +12 -0
  276. package/build/domains/installation/index.d.ts.map +1 -0
  277. package/build/domains/installation/index.js +16 -0
  278. package/build/domains/installation/index.js.map +1 -0
  279. package/build/domains/installation/metadata/defaultsProvider.d.ts +12 -0
  280. package/build/domains/installation/metadata/defaultsProvider.d.ts.map +1 -0
  281. package/build/domains/installation/metadata/defaultsProvider.js +43 -0
  282. package/build/domains/installation/metadata/defaultsProvider.js.map +1 -0
  283. package/build/domains/installation/metadata/metadataExtractor.d.ts +11 -0
  284. package/build/domains/installation/metadata/metadataExtractor.d.ts.map +1 -0
  285. package/build/domains/installation/metadata/metadataExtractor.js +59 -0
  286. package/build/domains/installation/metadata/metadataExtractor.js.map +1 -0
  287. package/build/domains/installation/types.d.ts +27 -0
  288. package/build/domains/installation/types.d.ts.map +1 -0
  289. package/build/domains/installation/types.js +5 -0
  290. package/build/domains/installation/types.js.map +1 -0
  291. package/build/domains/installation/validators/conflictDetector.d.ts +24 -0
  292. package/build/domains/installation/validators/conflictDetector.d.ts.map +1 -0
  293. package/build/domains/installation/validators/conflictDetector.js +41 -0
  294. package/build/domains/installation/validators/conflictDetector.js.map +1 -0
  295. package/build/domains/installation/validators/serverNameValidator.d.ts +17 -0
  296. package/build/domains/installation/validators/serverNameValidator.d.ts.map +1 -0
  297. package/build/domains/installation/validators/serverNameValidator.js +58 -0
  298. package/build/domains/installation/validators/serverNameValidator.js.map +1 -0
  299. package/build/domains/registry/formatters/serverDetailFormatter.js +22 -9
  300. package/build/domains/registry/formatters/serverDetailFormatter.js.map +1 -1
  301. package/build/domains/registry/mcpRegistryClient.d.ts.map +1 -1
  302. package/build/domains/registry/mcpRegistryClient.js +46 -18
  303. package/build/domains/registry/mcpRegistryClient.js.map +1 -1
  304. package/build/domains/registry/mcpToolSchemas.d.ts +2 -2
  305. package/build/domains/registry/mcpToolSchemas.d.ts.map +1 -1
  306. package/build/domains/registry/mcpToolSchemas.js +1 -1
  307. package/build/domains/registry/mcpToolSchemas.js.map +1 -1
  308. package/build/domains/registry/types.d.ts +2 -3
  309. package/build/domains/registry/types.d.ts.map +1 -1
  310. package/build/domains/server-management/index.d.ts +11 -0
  311. package/build/domains/server-management/index.d.ts.map +1 -0
  312. package/build/domains/server-management/index.js +13 -0
  313. package/build/domains/server-management/index.js.map +1 -0
  314. package/build/domains/server-management/progressTrackingService.d.ts +49 -0
  315. package/build/domains/server-management/progressTrackingService.d.ts.map +1 -0
  316. package/build/domains/server-management/progressTrackingService.js +102 -0
  317. package/build/domains/server-management/progressTrackingService.js.map +1 -0
  318. package/build/domains/server-management/serverInstallationService.d.ts +48 -0
  319. package/build/domains/server-management/serverInstallationService.d.ts.map +1 -0
  320. package/build/domains/server-management/serverInstallationService.js +299 -0
  321. package/build/domains/server-management/serverInstallationService.js.map +1 -0
  322. package/build/domains/server-management/services/versionResolver.d.ts +36 -0
  323. package/build/domains/server-management/services/versionResolver.d.ts.map +1 -0
  324. package/build/domains/server-management/services/versionResolver.js +74 -0
  325. package/build/domains/server-management/services/versionResolver.js.map +1 -0
  326. package/build/domains/server-management/types.d.ts +215 -0
  327. package/build/domains/server-management/types.d.ts.map +1 -0
  328. package/build/domains/server-management/types.js +28 -0
  329. package/build/domains/server-management/types.js.map +1 -0
  330. package/build/server.d.ts +1 -1
  331. package/build/server.d.ts.map +1 -1
  332. package/build/server.js +18 -12
  333. package/build/server.js.map +1 -1
  334. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js +2 -2
  335. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js.map +1 -1
  336. package/build/utils/schemaUtils.d.ts +25 -0
  337. package/build/utils/schemaUtils.d.ts.map +1 -0
  338. package/build/utils/schemaUtils.js +43 -0
  339. package/build/utils/schemaUtils.js.map +1 -0
  340. package/package.json +3 -2
  341. package/build/application/services/configReloadService.d.ts +0 -55
  342. package/build/application/services/configReloadService.d.ts.map +0 -1
  343. package/build/application/services/configReloadService.js +0 -195
  344. package/build/application/services/configReloadService.js.map +0 -1
  345. package/build/commands/mcp/utils/configUtils.d.ts +0 -71
  346. package/build/commands/mcp/utils/configUtils.d.ts.map +0 -1
  347. package/build/commands/mcp/utils/configUtils.js +0 -326
  348. package/build/commands/mcp/utils/configUtils.js.map +0 -1
  349. package/build/commands/shared/configUtils.d.ts.map +0 -1
  350. package/build/commands/shared/configUtils.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Derive local server name from registry ID
3
+ */
4
+ export function deriveLocalName(registryId) {
5
+ // Extract the last part after the slash, or use the full ID if no slash
6
+ const lastPart = registryId.includes('/') ? registryId.split('/').pop() : registryId;
7
+ // If it already starts with a letter and only contains valid chars, use it as-is
8
+ const localNameRegex = /^[a-zA-Z][a-zA-Z0-9_-]*$/;
9
+ if (localNameRegex.test(lastPart) && lastPart.length <= 50) {
10
+ return lastPart;
11
+ }
12
+ // Otherwise, sanitize it
13
+ let sanitized = lastPart.replace(/[^a-zA-Z0-9_-]/g, '_');
14
+ // Ensure it starts with a letter
15
+ if (!/^[a-zA-Z]/.test(sanitized)) {
16
+ sanitized = `server_${sanitized}`;
17
+ }
18
+ // Truncate to 50 characters if longer
19
+ if (sanitized.length > 50) {
20
+ sanitized = sanitized.substring(0, 50);
21
+ }
22
+ // Ensure it's not empty after sanitization
23
+ if (sanitized.length === 0) {
24
+ sanitized = 'server';
25
+ }
26
+ return sanitized;
27
+ }
28
+ /**
29
+ * Extract all environment variables with metadata from server
30
+ */
31
+ export function extractEnvVarMetadata(server) {
32
+ const envVars = [];
33
+ const seen = new Set();
34
+ if (server.packages && server.packages.length > 0) {
35
+ for (const pkg of server.packages) {
36
+ if (pkg.environmentVariables && Array.isArray(pkg.environmentVariables)) {
37
+ for (const envVar of pkg.environmentVariables) {
38
+ // Use 'name' or 'value' field for the environment variable key
39
+ const key = envVar.name || envVar.value;
40
+ if (key && !seen.has(key)) {
41
+ seen.add(key);
42
+ envVars.push({
43
+ key,
44
+ description: envVar.description,
45
+ default: envVar.default,
46
+ isRequired: envVar.isRequired,
47
+ isSecret: envVar.isSecret,
48
+ });
49
+ }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ return envVars;
55
+ }
56
+ /**
57
+ * Extract default environment variables from server metadata
58
+ */
59
+ export function extractDefaultEnvVars(server) {
60
+ const envVars = {};
61
+ // Check packages for environment variables
62
+ if (server.packages && server.packages.length > 0) {
63
+ for (const pkg of server.packages) {
64
+ if (pkg.environmentVariables && Array.isArray(pkg.environmentVariables)) {
65
+ for (const envVar of pkg.environmentVariables) {
66
+ if (envVar.value) {
67
+ // Use the variable name from the value field or description
68
+ const key = envVar.value.toUpperCase().replace(/[^A-Z0-9_]/g, '_');
69
+ envVars[key] = envVar.default || '';
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ return envVars;
76
+ }
77
+ /**
78
+ * Extract all runtime arguments with metadata from server
79
+ */
80
+ export function extractArgMetadata(server) {
81
+ const args = [];
82
+ const seen = new Set();
83
+ if (server.packages && server.packages.length > 0) {
84
+ for (const pkg of server.packages) {
85
+ // Check both packageArguments and runtimeArguments
86
+ const argSources = [...(pkg.packageArguments || []), ...(pkg.runtimeArguments || [])];
87
+ for (const arg of argSources) {
88
+ const name = arg.name;
89
+ if (name && !seen.has(name)) {
90
+ seen.add(name);
91
+ args.push({
92
+ name: arg.name,
93
+ description: arg.description,
94
+ default: arg.default,
95
+ isRequired: arg.isRequired,
96
+ isSecret: arg.isSecret,
97
+ type: arg.type,
98
+ choices: arg.choices,
99
+ valueHint: arg.valueHint,
100
+ });
101
+ }
102
+ }
103
+ }
104
+ }
105
+ return args;
106
+ }
107
+ /**
108
+ * Extract default arguments from server metadata
109
+ */
110
+ export function extractDefaultArgs(server) {
111
+ const args = [];
112
+ // Check packages for runtime arguments
113
+ if (server.packages && server.packages.length > 0) {
114
+ for (const pkg of server.packages) {
115
+ if (pkg.runtimeArguments && Array.isArray(pkg.runtimeArguments)) {
116
+ for (const arg of pkg.runtimeArguments) {
117
+ if (arg.default) {
118
+ args.push(arg.default);
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
124
+ return args;
125
+ }
126
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../src/commands/mcp/wizard/metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Keyboard input handling for wizard navigation
3
+ */
4
+ export type KeyPress = 'up' | 'down' | 'left' | 'right' | 'space' | 'enter' | 'escape' | 'unknown';
5
+ /**
6
+ * Get single key input for navigation
7
+ */
8
+ export declare function getKeyInput(): Promise<KeyPress>;
9
+ /**
10
+ * Cleanup keyboard input resources
11
+ * Removes listeners and resets stdin to prevent process hanging
12
+ */
13
+ export declare function cleanupKeyboardInput(): void;
14
+ //# sourceMappingURL=keyboardHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboardHandler.d.ts","sourceRoot":"","sources":["../../../../../src/commands/mcp/wizard/navigation/keyboardHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnG;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,CAuDrD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CA6B3C"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Keyboard input handling for wizard navigation
3
+ */
4
+ /**
5
+ * Get single key input for navigation
6
+ */
7
+ export async function getKeyInput() {
8
+ return new Promise((resolve) => {
9
+ const stdin = process.stdin;
10
+ // Ensure stdin is in the right mode
11
+ if (!stdin.isTTY) {
12
+ resolve('escape');
13
+ return;
14
+ }
15
+ try {
16
+ stdin.setRawMode(true);
17
+ stdin.resume();
18
+ stdin.setEncoding('utf8');
19
+ }
20
+ catch (_error) {
21
+ resolve('escape');
22
+ return;
23
+ }
24
+ const onKeypress = (key) => {
25
+ try {
26
+ if (stdin.isTTY) {
27
+ stdin.setRawMode(false);
28
+ }
29
+ stdin.pause();
30
+ stdin.removeListener('data', onKeypress);
31
+ }
32
+ catch {
33
+ // Ignore cleanup errors
34
+ }
35
+ let keyStr;
36
+ if (Buffer.isBuffer(key)) {
37
+ keyStr = key.toString('utf8');
38
+ }
39
+ else if (typeof key === 'string') {
40
+ keyStr = key;
41
+ }
42
+ else {
43
+ keyStr = '';
44
+ }
45
+ // Handle escape sequences for arrow keys
46
+ if (keyStr === '\u001b[A')
47
+ resolve('up');
48
+ else if (keyStr === '\u001b[B')
49
+ resolve('down');
50
+ else if (keyStr === '\u001b[D')
51
+ resolve('left');
52
+ else if (keyStr === '\u001b[C')
53
+ resolve('right');
54
+ else if (keyStr === ' ')
55
+ resolve('space');
56
+ else if (keyStr === '\r' || keyStr === '\n')
57
+ resolve('enter');
58
+ else if (keyStr === '\u001b' || keyStr === '\u0003') {
59
+ // ESC or Ctrl+C - ensure cleanup before resolving
60
+ cleanupKeyboardInput();
61
+ resolve('escape');
62
+ }
63
+ else
64
+ resolve('unknown');
65
+ };
66
+ stdin.on('data', onKeypress);
67
+ });
68
+ }
69
+ /**
70
+ * Cleanup keyboard input resources
71
+ * Removes listeners and resets stdin to prevent process hanging
72
+ */
73
+ export function cleanupKeyboardInput() {
74
+ const stdin = process.stdin;
75
+ try {
76
+ // Remove all listeners to prevent leaks
77
+ stdin.removeAllListeners('data');
78
+ stdin.removeAllListeners('keypress');
79
+ stdin.removeAllListeners('readable');
80
+ stdin.removeAllListeners('end');
81
+ if (stdin.isTTY && stdin.setRawMode) {
82
+ stdin.setRawMode(false);
83
+ }
84
+ // Pause stdin
85
+ stdin.pause();
86
+ // Destroy any pipes
87
+ if (stdin.unpipe) {
88
+ stdin.unpipe();
89
+ }
90
+ // Unref to allow process to exit even if stdin has pending operations
91
+ if (stdin.unref) {
92
+ stdin.unref();
93
+ }
94
+ }
95
+ catch {
96
+ // Ignore errors during cleanup - best effort
97
+ }
98
+ }
99
+ //# sourceMappingURL=keyboardHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboardHandler.js","sourceRoot":"","sources":["../../../../../src/commands/mcp/wizard/navigation/keyboardHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Keyboard navigation and input handling utilities for the wizard
3
+ */
4
+ /**
5
+ * Cleanup stdin resources
6
+ */
7
+ export declare function cleanup(): void;
8
+ /**
9
+ * Get single key input for navigation
10
+ */
11
+ export declare function getKeyInput(): Promise<string>;
12
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/commands/mcp/wizard/navigation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CA8B9B;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAuDnD"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Keyboard navigation and input handling utilities for the wizard
3
+ */
4
+ /**
5
+ * Cleanup stdin resources
6
+ */
7
+ export function cleanup() {
8
+ // Ensure stdin is properly cleaned up
9
+ const stdin = process.stdin;
10
+ try {
11
+ // Remove all listeners to prevent leaks
12
+ stdin.removeAllListeners('data');
13
+ stdin.removeAllListeners('keypress');
14
+ stdin.removeAllListeners('readable');
15
+ stdin.removeAllListeners('end');
16
+ if (stdin.isTTY && stdin.setRawMode) {
17
+ stdin.setRawMode(false);
18
+ }
19
+ // Pause stdin
20
+ stdin.pause();
21
+ // Destroy any pipes
22
+ if (stdin.unpipe) {
23
+ stdin.unpipe();
24
+ }
25
+ // Unref to allow process to exit even if stdin has pending operations
26
+ if (stdin.unref) {
27
+ stdin.unref();
28
+ }
29
+ }
30
+ catch {
31
+ // Ignore errors during cleanup - best effort
32
+ }
33
+ }
34
+ /**
35
+ * Get single key input for navigation
36
+ */
37
+ export async function getKeyInput() {
38
+ return new Promise((resolve) => {
39
+ const stdin = process.stdin;
40
+ // Ensure stdin is in the right mode
41
+ if (!stdin.isTTY) {
42
+ resolve('escape');
43
+ return;
44
+ }
45
+ try {
46
+ stdin.setRawMode(true);
47
+ stdin.resume();
48
+ stdin.setEncoding('utf8');
49
+ }
50
+ catch (_error) {
51
+ resolve('escape');
52
+ return;
53
+ }
54
+ const onKeypress = (key) => {
55
+ try {
56
+ if (stdin.isTTY) {
57
+ stdin.setRawMode(false);
58
+ }
59
+ stdin.pause();
60
+ stdin.removeListener('data', onKeypress);
61
+ }
62
+ catch {
63
+ // Ignore cleanup errors
64
+ }
65
+ let keyStr;
66
+ if (Buffer.isBuffer(key)) {
67
+ keyStr = key.toString('utf8');
68
+ }
69
+ else if (typeof key === 'string') {
70
+ keyStr = key;
71
+ }
72
+ else {
73
+ keyStr = '';
74
+ }
75
+ // Handle escape sequences for arrow keys
76
+ if (keyStr === '\u001b[A')
77
+ resolve('up');
78
+ else if (keyStr === '\u001b[B')
79
+ resolve('down');
80
+ else if (keyStr === '\u001b[D')
81
+ resolve('left');
82
+ else if (keyStr === '\u001b[C')
83
+ resolve('right');
84
+ else if (keyStr === ' ')
85
+ resolve('space');
86
+ else if (keyStr === '\r' || keyStr === '\n')
87
+ resolve('enter');
88
+ else if (keyStr === '\u001b' || keyStr === '\u0003') {
89
+ // ESC or Ctrl+C - ensure cleanup before resolving
90
+ cleanup();
91
+ resolve('escape');
92
+ }
93
+ else
94
+ resolve('unknown');
95
+ };
96
+ stdin.on('data', onKeypress);
97
+ });
98
+ }
99
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/commands/mcp/wizard/navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { MCPRegistryClient } from '../../../domains/registry/mcpRegistryClient.js';
2
+ import { RegistryServer } from '../../../domains/registry/types.js';
3
+ /**
4
+ * Search result from server search
5
+ */
6
+ export interface SearchResult {
7
+ serverId: string;
8
+ server?: RegistryServer;
9
+ cancelled: boolean;
10
+ }
11
+ /**
12
+ * Search for servers interactively
13
+ */
14
+ export declare function searchServers(registryClient: MCPRegistryClient, showStepIndicator: (step: number, total: number, name: string) => void, selectFromResults: (results: RegistryServer[]) => Promise<{
15
+ server?: RegistryServer;
16
+ goBack: boolean;
17
+ cancelled: boolean;
18
+ }>): Promise<SearchResult>;
19
+ /**
20
+ * Confirm a provided server ID
21
+ */
22
+ export declare function confirmServerId(serverId: string): Promise<boolean>;
23
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/commands/mcp/wizard/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAOhE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,cAAc,EAAE,iBAAiB,EACjC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EACtE,iBAAiB,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC;IACxD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,GACD,OAAO,CAAC,YAAY,CAAC,CAgGvB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASxE"}
@@ -0,0 +1,101 @@
1
+ import logger from '../../../logger/logger.js';
2
+ import boxen from 'boxen';
3
+ import chalk from 'chalk';
4
+ import prompts from 'prompts';
5
+ /**
6
+ * Search for servers interactively
7
+ */
8
+ export async function searchServers(registryClient, showStepIndicator, selectFromResults) {
9
+ let searchTerm = '';
10
+ let searchResults = [];
11
+ while (true) {
12
+ // Show step indicator
13
+ console.clear();
14
+ showStepIndicator(1, 5, 'Search');
15
+ // Get search term
16
+ const searchInput = await prompts({
17
+ type: 'text',
18
+ name: 'query',
19
+ message: 'Enter server name to search:',
20
+ initial: searchTerm,
21
+ validate: (value) => {
22
+ if (!value || typeof value !== 'string' || value.trim().length === 0) {
23
+ return 'Search term cannot be empty';
24
+ }
25
+ return true;
26
+ },
27
+ });
28
+ if (!searchInput.query || searchInput.query === '') {
29
+ return { serverId: '', cancelled: true };
30
+ }
31
+ searchTerm = String(searchInput.query).trim();
32
+ // Perform search
33
+ console.log(chalk.cyan(`\nšŸ” Searching for "${searchTerm}"...\n`));
34
+ try {
35
+ searchResults = await registryClient.searchServers({
36
+ query: searchTerm,
37
+ limit: 20,
38
+ });
39
+ if (searchResults.length === 0) {
40
+ console.log(boxen(chalk.yellow.bold('āš ļø No servers found matching your search'), {
41
+ padding: 1,
42
+ borderStyle: 'round',
43
+ borderColor: 'yellow',
44
+ }));
45
+ const retry = await prompts({
46
+ type: 'confirm',
47
+ name: 'continue',
48
+ message: 'Try another search?',
49
+ initial: true,
50
+ });
51
+ if (!retry.continue) {
52
+ return { serverId: '', cancelled: true };
53
+ }
54
+ continue;
55
+ }
56
+ // Show results and let user select
57
+ const selection = await selectFromResults(searchResults);
58
+ if (selection.cancelled) {
59
+ return { serverId: '', cancelled: true };
60
+ }
61
+ if (selection.goBack) {
62
+ continue; // Refine search
63
+ }
64
+ return {
65
+ serverId: selection.server.name,
66
+ server: selection.server,
67
+ cancelled: false,
68
+ };
69
+ }
70
+ catch (error) {
71
+ logger.error('Search failed', { searchTerm, error });
72
+ console.log(boxen(chalk.red.bold('āŒ Search failed - please try again'), {
73
+ padding: 1,
74
+ borderStyle: 'round',
75
+ borderColor: 'red',
76
+ }));
77
+ const retry = await prompts({
78
+ type: 'confirm',
79
+ name: 'continue',
80
+ message: 'Try again?',
81
+ initial: true,
82
+ });
83
+ if (!retry.continue) {
84
+ return { serverId: '', cancelled: true };
85
+ }
86
+ }
87
+ }
88
+ }
89
+ /**
90
+ * Confirm a provided server ID
91
+ */
92
+ export async function confirmServerId(serverId) {
93
+ const result = await prompts({
94
+ type: 'confirm',
95
+ name: 'confirmed',
96
+ message: `Install server '${chalk.cyan(serverId)}'?`,
97
+ initial: true,
98
+ });
99
+ return Boolean(result.confirmed);
100
+ }
101
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/commands/mcp/wizard/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { RegistryServer } from '../../../domains/registry/types.js';
2
+ /**
3
+ * Selection result from server selection
4
+ */
5
+ export interface SelectionResult {
6
+ server?: RegistryServer;
7
+ goBack: boolean;
8
+ cancelled: boolean;
9
+ }
10
+ /**
11
+ * Select a server from search results with arrow key navigation
12
+ */
13
+ export declare function selectFromResults(results: RegistryServer[]): Promise<SelectionResult>;
14
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../../src/commands/mcp/wizard/selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAKhE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CA2C3F"}
@@ -0,0 +1,40 @@
1
+ import { renderResultsList, showServerDetails } from './display.js';
2
+ import { getKeyInput } from './navigation.js';
3
+ /**
4
+ * Select a server from search results with arrow key navigation
5
+ */
6
+ export async function selectFromResults(results) {
7
+ let currentIndex = 0;
8
+ let showingDetails = false;
9
+ while (true) {
10
+ console.clear();
11
+ if (showingDetails) {
12
+ // Show detail view
13
+ await showServerDetails(results[currentIndex], getKeyInput);
14
+ showingDetails = false;
15
+ continue;
16
+ }
17
+ // Show results list
18
+ renderResultsList(results, currentIndex);
19
+ // Get key input
20
+ const action = await getKeyInput();
21
+ switch (action) {
22
+ case 'up':
23
+ currentIndex = Math.max(0, currentIndex - 1);
24
+ break;
25
+ case 'down':
26
+ currentIndex = Math.min(results.length - 1, currentIndex + 1);
27
+ break;
28
+ case 'right':
29
+ showingDetails = true;
30
+ break;
31
+ case 'left':
32
+ return { goBack: true, cancelled: false };
33
+ case 'enter':
34
+ return { server: results[currentIndex], goBack: false, cancelled: false };
35
+ case 'escape':
36
+ return { cancelled: true, goBack: false };
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/commands/mcp/wizard/selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAW9C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAyB;IAC/D,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,OAAO,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,IAAI,cAAc,EAAE,CAAC;YACnB,mBAAmB;YACnB,MAAM,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;YAC5D,cAAc,GAAG,KAAK,CAAC;YACvB,SAAS;QACX,CAAC;QAED,oBAAoB;QACpB,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEzC,gBAAgB;QAChB,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QAEnC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,IAAI;gBACP,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC7C,MAAM;YAER,KAAK,MAAM;gBACT,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC9D,MAAM;YAER,KAAK,OAAO;gBACV,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;YAER,KAAK,MAAM;gBACT,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAE5C,KAAK,OAAO;gBACV,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAE5E,KAAK,QAAQ;gBACX,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -5,7 +5,7 @@ export interface SearchCommandArgs extends Arguments, GlobalOptions, RegistryYar
5
5
  query?: string;
6
6
  status?: 'active' | 'archived' | 'deprecated' | 'all';
7
7
  type?: 'npm' | 'pypi' | 'docker';
8
- transport?: 'stdio' | 'sse' | 'webhook';
8
+ transport?: 'stdio' | 'sse' | 'http';
9
9
  limit?: number;
10
10
  cursor?: string;
11
11
  format?: 'table' | 'list' | 'json';
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/registry/search.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,SAAS,EAAE,aAAa,EAAE,oBAAoB;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC;IACtD,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAgD1D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD1E"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/registry/search.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,SAAS,EAAE,aAAa,EAAE,oBAAoB;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC;IACtD,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAgD1D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD1E"}
@@ -27,7 +27,7 @@ export function buildSearchCommand(searchYargs) {
27
27
  transport: {
28
28
  describe: 'Filter by transport method',
29
29
  type: 'string',
30
- choices: ['stdio', 'sse', 'webhook'],
30
+ choices: ['stdio', 'sse', 'http'],
31
31
  },
32
32
  limit: {
33
33
  describe: 'Maximum number of results to return',
@@ -126,7 +126,7 @@ function displayTableFormat(results, searchArgs) {
126
126
  Description: truncateString(server.description, 45),
127
127
  Status: (server._meta?.[OFFICIAL_REGISTRY_KEY]?.status || server.status || 'unknown').toUpperCase(),
128
128
  Version: server.version,
129
- 'Server ID': server._meta?.[OFFICIAL_REGISTRY_KEY]?.serverId || server.name,
129
+ 'Registry ID': server.name,
130
130
  'Registry Type': formatRegistryTypesPlain(server.packages),
131
131
  Transport: formatTransportTypesPlain(server.packages),
132
132
  'Last Updated': formatDate(server._meta?.[OFFICIAL_REGISTRY_KEY]?.updatedAt),
@@ -151,7 +151,7 @@ function displayListFormat(results, searchArgs) {
151
151
  console.log(`${chalk.gray((index + 1).toString().padStart(2))}. ${chalk.cyan.bold(server.name)}`);
152
152
  console.log(` ${chalk.white(truncateString(server.description, 70))}`);
153
153
  console.log(` ${chalk.green('Status:')} ${formatStatus(server._meta?.[OFFICIAL_REGISTRY_KEY]?.status || server.status || 'unknown')} ${chalk.blue('Version:')} ${server.version}`);
154
- console.log(` ${chalk.yellow('ID:')} ${chalk.gray(meta?.serverId || server.name)}`);
154
+ console.log(` ${chalk.yellow('Registry ID:')} ${chalk.gray(server.name)} ${chalk.dim('(use this for installation)')}`);
155
155
  console.log(` ${chalk.magenta('Transport:')} ${formatTransportTypesPlain(server.packages)} • ${chalk.red('Type:')} ${formatRegistryTypesPlain(server.packages)}`);
156
156
  console.log(` ${chalk.gray('Updated:')} ${formatDate(meta?.updatedAt)}`);
157
157
  console.log(); // Empty line between entries
@@ -163,10 +163,13 @@ function displayListFormat(results, searchArgs) {
163
163
  function displayFooter(results, searchArgs) {
164
164
  const resultsCount = results.servers.length;
165
165
  // Enhanced usage instructions with colors
166
- console.log(chalk.cyan.bold('\nšŸ’” Next Steps:'));
167
- console.log(chalk.white(' • View detailed information: ') + chalk.yellow('1mcp registry show <server-id>'));
168
- console.log(chalk.white(' • List all versions: ') + chalk.yellow('1mcp registry versions <server-id>'));
169
- console.log(chalk.white(' • Get full Server IDs: ') + chalk.yellow('1mcp registry search --json'));
166
+ console.log(chalk.cyan.bold('\nšŸ’” Installation:'));
167
+ console.log(chalk.white(' • Install server: ') + chalk.yellow('1mcp mcp install <registry-id>'));
168
+ console.log(chalk.gray(' Use the exact Registry ID shown above'));
169
+ console.log(chalk.white(' • Interactive mode: ') + chalk.yellow('1mcp mcp install --interactive'));
170
+ console.log(chalk.white(' • Server details: ') + chalk.yellow('1mcp registry show <registry-id>'));
171
+ console.log(chalk.white(' • List versions: ') + chalk.yellow('1mcp registry versions <registry-id>'));
172
+ console.log(chalk.white(' • Get JSON output: ') + chalk.yellow('1mcp registry search --json'));
170
173
  // Show search tips if results are limited
171
174
  if (resultsCount >= 20) {
172
175
  console.log(chalk.cyan.bold('\nšŸ” Search Tips:'));