@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.
- package/build/commands/app/consolidate.js +1 -1
- package/build/commands/app/consolidate.js.map +1 -1
- package/build/commands/mcp/add.js +1 -1
- package/build/commands/mcp/add.js.map +1 -1
- package/build/commands/mcp/enable.js +1 -1
- package/build/commands/mcp/enable.js.map +1 -1
- package/build/commands/mcp/index.d.ts.map +1 -1
- package/build/commands/mcp/index.js +64 -1
- package/build/commands/mcp/index.js.map +1 -1
- package/build/commands/mcp/install.d.ts +28 -0
- package/build/commands/mcp/install.d.ts.map +1 -0
- package/build/commands/mcp/install.js +472 -0
- package/build/commands/mcp/install.js.map +1 -0
- package/build/commands/mcp/list.d.ts +3 -0
- package/build/commands/mcp/list.d.ts.map +1 -1
- package/build/commands/mcp/list.js +49 -4
- package/build/commands/mcp/list.js.map +1 -1
- package/build/commands/mcp/remove.js +1 -1
- package/build/commands/mcp/remove.js.map +1 -1
- package/build/commands/mcp/status.js +1 -1
- package/build/commands/mcp/status.js.map +1 -1
- package/build/commands/mcp/tokens.js +1 -1
- package/build/commands/mcp/tokens.js.map +1 -1
- package/build/commands/mcp/uninstall.d.ts +28 -0
- package/build/commands/mcp/uninstall.d.ts.map +1 -0
- package/build/commands/mcp/uninstall.js +103 -0
- package/build/commands/mcp/uninstall.js.map +1 -0
- package/build/commands/mcp/update.d.ts +16 -1
- package/build/commands/mcp/update.d.ts.map +1 -1
- package/build/commands/mcp/update.js +33 -2
- package/build/commands/mcp/update.js.map +1 -1
- package/build/commands/mcp/utils/installWizard.d.ts +35 -0
- package/build/commands/mcp/utils/installWizard.d.ts.map +1 -0
- package/build/commands/mcp/utils/installWizard.js +137 -0
- package/build/commands/mcp/utils/installWizard.js.map +1 -0
- package/build/commands/mcp/utils/mcpServerConfig.d.ts +31 -0
- package/build/commands/mcp/utils/mcpServerConfig.d.ts.map +1 -0
- package/build/commands/mcp/utils/mcpServerConfig.js +79 -0
- package/build/commands/mcp/utils/mcpServerConfig.js.map +1 -0
- package/build/commands/mcp/utils/serverUtils.d.ts +40 -0
- package/build/commands/mcp/utils/serverUtils.d.ts.map +1 -0
- package/build/commands/mcp/utils/serverUtils.js +103 -0
- package/build/commands/mcp/utils/serverUtils.js.map +1 -0
- package/build/commands/mcp/wizard/components/serverDetailsDisplay.d.ts +14 -0
- package/build/commands/mcp/wizard/components/serverDetailsDisplay.d.ts.map +1 -0
- package/build/commands/mcp/wizard/components/serverDetailsDisplay.js +56 -0
- package/build/commands/mcp/wizard/components/serverDetailsDisplay.js.map +1 -0
- package/build/commands/mcp/wizard/components/stepIndicator.d.ts +11 -0
- package/build/commands/mcp/wizard/components/stepIndicator.d.ts.map +1 -0
- package/build/commands/mcp/wizard/components/stepIndicator.js +38 -0
- package/build/commands/mcp/wizard/components/stepIndicator.js.map +1 -0
- package/build/commands/mcp/wizard/components/welcomeScreen.d.ts +5 -0
- package/build/commands/mcp/wizard/components/welcomeScreen.d.ts.map +1 -0
- package/build/commands/mcp/wizard/components/welcomeScreen.js +25 -0
- package/build/commands/mcp/wizard/components/welcomeScreen.js.map +1 -0
- package/build/commands/mcp/wizard/configuration.d.ts +31 -0
- package/build/commands/mcp/wizard/configuration.d.ts.map +1 -0
- package/build/commands/mcp/wizard/configuration.js +360 -0
- package/build/commands/mcp/wizard/configuration.js.map +1 -0
- package/build/commands/mcp/wizard/display.d.ts +31 -0
- package/build/commands/mcp/wizard/display.d.ts.map +1 -0
- package/build/commands/mcp/wizard/display.js +131 -0
- package/build/commands/mcp/wizard/display.js.map +1 -0
- package/build/commands/mcp/wizard/index.d.ts +8 -0
- package/build/commands/mcp/wizard/index.d.ts.map +1 -0
- package/build/commands/mcp/wizard/index.js +10 -0
- package/build/commands/mcp/wizard/index.js.map +1 -0
- package/build/commands/mcp/wizard/metadata.d.ts +48 -0
- package/build/commands/mcp/wizard/metadata.d.ts.map +1 -0
- package/build/commands/mcp/wizard/metadata.js +126 -0
- package/build/commands/mcp/wizard/metadata.js.map +1 -0
- package/build/commands/mcp/wizard/navigation/keyboardHandler.d.ts +14 -0
- package/build/commands/mcp/wizard/navigation/keyboardHandler.d.ts.map +1 -0
- package/build/commands/mcp/wizard/navigation/keyboardHandler.js +99 -0
- package/build/commands/mcp/wizard/navigation/keyboardHandler.js.map +1 -0
- package/build/commands/mcp/wizard/navigation.d.ts +12 -0
- package/build/commands/mcp/wizard/navigation.d.ts.map +1 -0
- package/build/commands/mcp/wizard/navigation.js +99 -0
- package/build/commands/mcp/wizard/navigation.js.map +1 -0
- package/build/commands/mcp/wizard/search.d.ts +23 -0
- package/build/commands/mcp/wizard/search.d.ts.map +1 -0
- package/build/commands/mcp/wizard/search.js +101 -0
- package/build/commands/mcp/wizard/search.js.map +1 -0
- package/build/commands/mcp/wizard/selection.d.ts +14 -0
- package/build/commands/mcp/wizard/selection.d.ts.map +1 -0
- package/build/commands/mcp/wizard/selection.js +40 -0
- package/build/commands/mcp/wizard/selection.js.map +1 -0
- package/build/commands/registry/search.d.ts +1 -1
- package/build/commands/registry/search.d.ts.map +1 -1
- package/build/commands/registry/search.js +10 -7
- package/build/commands/registry/search.js.map +1 -1
- package/build/commands/serve/index.d.ts +10 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +28 -1
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +2 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +33 -8
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/shared/{configUtils.d.ts ā baseConfigUtils.d.ts} +1 -1
- package/build/commands/shared/baseConfigUtils.d.ts.map +1 -0
- package/build/commands/shared/{configUtils.js ā baseConfigUtils.js} +1 -1
- package/build/commands/shared/baseConfigUtils.js.map +1 -0
- package/build/config/configManager.d.ts +125 -0
- package/build/config/configManager.d.ts.map +1 -0
- package/build/config/configManager.js +412 -0
- package/build/config/configManager.js.map +1 -0
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.js +6 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts +1 -0
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +21 -0
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityManager.d.ts +3 -10
- package/build/core/capabilities/capabilityManager.d.ts.map +1 -1
- package/build/core/capabilities/internal/discoveryTools.d.ts +28 -0
- package/build/core/capabilities/internal/discoveryTools.d.ts.map +1 -0
- package/build/core/capabilities/internal/discoveryTools.js +84 -0
- package/build/core/capabilities/internal/discoveryTools.js.map +1 -0
- package/build/core/capabilities/internal/installationTools.d.ts +20 -0
- package/build/core/capabilities/internal/installationTools.d.ts.map +1 -0
- package/build/core/capabilities/internal/installationTools.js +50 -0
- package/build/core/capabilities/internal/installationTools.js.map +1 -0
- package/build/core/capabilities/internal/managementTools.d.ts +32 -0
- package/build/core/capabilities/internal/managementTools.d.ts.map +1 -0
- package/build/core/capabilities/internal/managementTools.js +94 -0
- package/build/core/capabilities/internal/managementTools.js.map +1 -0
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts +41 -0
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -0
- package/build/core/capabilities/internalCapabilitiesProvider.js +275 -0
- package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -0
- package/build/core/client/clientManager.d.ts +5 -0
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +34 -0
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/configChangeHandler.d.ts +78 -0
- package/build/core/configChangeHandler.d.ts.map +1 -0
- package/build/core/configChangeHandler.js +310 -0
- package/build/core/configChangeHandler.js.map +1 -0
- package/build/core/flags/flagManager.d.ts +90 -0
- package/build/core/flags/flagManager.d.ts.map +1 -0
- package/build/core/flags/flagManager.js +209 -0
- package/build/core/flags/flagManager.js.map +1 -0
- package/build/core/protocol/requestHandlers.d.ts.map +1 -1
- package/build/core/protocol/requestHandlers.js +32 -1
- package/build/core/protocol/requestHandlers.js.map +1 -1
- package/build/core/server/agentConfig.d.ts +20 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +40 -0
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/pidFileManager.d.ts +14 -1
- package/build/core/server/pidFileManager.d.ts.map +1 -1
- package/build/core/server/pidFileManager.js +24 -2
- package/build/core/server/pidFileManager.js.map +1 -1
- package/build/core/server/serverManager.d.ts +46 -1
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +260 -3
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/tools/handlers/searchHandler.js +1 -1
- package/build/core/tools/handlers/searchHandler.js.map +1 -1
- package/build/core/tools/handlers/serverManagementHandler.d.ts +262 -0
- package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -0
- package/build/core/tools/handlers/serverManagementHandler.js +430 -0
- package/build/core/tools/handlers/serverManagementHandler.js.map +1 -0
- package/build/core/tools/internal/adapters/discoveryAdapter.d.ts +148 -0
- package/build/core/tools/internal/adapters/discoveryAdapter.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/discoveryAdapter.js +163 -0
- package/build/core/tools/internal/adapters/discoveryAdapter.js.map +1 -0
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +62 -0
- package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/helpers/configTransformers.js +79 -0
- package/build/core/tools/internal/adapters/helpers/configTransformers.js.map +1 -0
- package/build/core/tools/internal/adapters/index.d.ts +58 -0
- package/build/core/tools/internal/adapters/index.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/index.js +85 -0
- package/build/core/tools/internal/adapters/index.js.map +1 -0
- package/build/core/tools/internal/adapters/installation/directInstallation.d.ts +16 -0
- package/build/core/tools/internal/adapters/installation/directInstallation.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/installation/directInstallation.js +103 -0
- package/build/core/tools/internal/adapters/installation/directInstallation.js.map +1 -0
- package/build/core/tools/internal/adapters/installation/packageResolver.d.ts +7 -0
- package/build/core/tools/internal/adapters/installation/packageResolver.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/installation/packageResolver.js +86 -0
- package/build/core/tools/internal/adapters/installation/packageResolver.js.map +1 -0
- package/build/core/tools/internal/adapters/installation/types.d.ts +100 -0
- package/build/core/tools/internal/adapters/installation/types.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/installation/types.js +2 -0
- package/build/core/tools/internal/adapters/installation/types.js.map +1 -0
- package/build/core/tools/internal/adapters/installationAdapter.d.ts +89 -0
- package/build/core/tools/internal/adapters/installationAdapter.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/installationAdapter.js +335 -0
- package/build/core/tools/internal/adapters/installationAdapter.js.map +1 -0
- package/build/core/tools/internal/adapters/management/index.d.ts +5 -0
- package/build/core/tools/internal/adapters/management/index.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/management/index.js +5 -0
- package/build/core/tools/internal/adapters/management/index.js.map +1 -0
- package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +51 -0
- package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/management/managementAdapter.js +402 -0
- package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -0
- package/build/core/tools/internal/adapters/management/toolHandlers.d.ts +6 -0
- package/build/core/tools/internal/adapters/management/toolHandlers.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/management/toolHandlers.js +154 -0
- package/build/core/tools/internal/adapters/management/toolHandlers.js.map +1 -0
- package/build/core/tools/internal/adapters/management/types.d.ts +179 -0
- package/build/core/tools/internal/adapters/management/types.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/management/types.js +2 -0
- package/build/core/tools/internal/adapters/management/types.js.map +1 -0
- package/build/core/tools/internal/adapters/management/validation.d.ts +9 -0
- package/build/core/tools/internal/adapters/management/validation.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/management/validation.js +204 -0
- package/build/core/tools/internal/adapters/management/validation.js.map +1 -0
- package/build/core/tools/internal/adapters/validation/configValidation.d.ts +22 -0
- package/build/core/tools/internal/adapters/validation/configValidation.d.ts.map +1 -0
- package/build/core/tools/internal/adapters/validation/configValidation.js +185 -0
- package/build/core/tools/internal/adapters/validation/configValidation.js.map +1 -0
- package/build/core/tools/internal/discoveryHandlers.d.ts +26 -0
- package/build/core/tools/internal/discoveryHandlers.d.ts.map +1 -0
- package/build/core/tools/internal/discoveryHandlers.js +283 -0
- package/build/core/tools/internal/discoveryHandlers.js.map +1 -0
- package/build/core/tools/internal/index.d.ts +279 -0
- package/build/core/tools/internal/index.d.ts.map +1 -0
- package/build/core/tools/internal/index.js +236 -0
- package/build/core/tools/internal/index.js.map +1 -0
- package/build/core/tools/internal/installationHandlers.d.ts +18 -0
- package/build/core/tools/internal/installationHandlers.d.ts.map +1 -0
- package/build/core/tools/internal/installationHandlers.js +314 -0
- package/build/core/tools/internal/installationHandlers.js.map +1 -0
- package/build/core/tools/internal/managementHandlers.d.ts +26 -0
- package/build/core/tools/internal/managementHandlers.d.ts.map +1 -0
- package/build/core/tools/internal/managementHandlers.js +306 -0
- package/build/core/tools/internal/managementHandlers.js.map +1 -0
- package/build/core/tools/internal/schemas/discovery.d.ts +233 -0
- package/build/core/tools/internal/schemas/discovery.d.ts.map +1 -0
- package/build/core/tools/internal/schemas/discovery.js +189 -0
- package/build/core/tools/internal/schemas/discovery.js.map +1 -0
- package/build/core/tools/internal/schemas/edit.d.ts +96 -0
- package/build/core/tools/internal/schemas/edit.d.ts.map +1 -0
- package/build/core/tools/internal/schemas/edit.js +76 -0
- package/build/core/tools/internal/schemas/edit.js.map +1 -0
- package/build/core/tools/internal/schemas/index.d.ts +629 -0
- package/build/core/tools/internal/schemas/index.d.ts.map +1 -0
- package/build/core/tools/internal/schemas/index.js +158 -0
- package/build/core/tools/internal/schemas/index.js.map +1 -0
- package/build/core/tools/internal/schemas/installation.d.ts +210 -0
- package/build/core/tools/internal/schemas/installation.d.ts.map +1 -0
- package/build/core/tools/internal/schemas/installation.js +212 -0
- package/build/core/tools/internal/schemas/installation.js.map +1 -0
- package/build/core/tools/internal/schemas/management.d.ts +232 -0
- package/build/core/tools/internal/schemas/management.d.ts.map +1 -0
- package/build/core/tools/internal/schemas/management.js +188 -0
- package/build/core/tools/internal/schemas/management.js.map +1 -0
- package/build/core/tools/internal/toolHandlers.d.ts +7 -0
- package/build/core/tools/internal/toolHandlers.d.ts.map +1 -0
- package/build/core/tools/internal/toolHandlers.js +8 -0
- package/build/core/tools/internal/toolHandlers.js.map +1 -0
- package/build/core/tools/internal/toolSchemas.d.ts +16 -0
- package/build/core/tools/internal/toolSchemas.d.ts.map +1 -0
- package/build/core/tools/internal/toolSchemas.js +22 -0
- package/build/core/tools/internal/toolSchemas.js.map +1 -0
- package/build/domains/installation/configurators/cliArgsConfigurator.d.ts +7 -0
- package/build/domains/installation/configurators/cliArgsConfigurator.d.ts.map +1 -0
- package/build/domains/installation/configurators/cliArgsConfigurator.js +146 -0
- package/build/domains/installation/configurators/cliArgsConfigurator.js.map +1 -0
- package/build/domains/installation/configurators/envVarConfigurator.d.ts +7 -0
- package/build/domains/installation/configurators/envVarConfigurator.d.ts.map +1 -0
- package/build/domains/installation/configurators/envVarConfigurator.js +122 -0
- package/build/domains/installation/configurators/envVarConfigurator.js.map +1 -0
- package/build/domains/installation/configurators/tagsConfigurator.d.ts +23 -0
- package/build/domains/installation/configurators/tagsConfigurator.d.ts.map +1 -0
- package/build/domains/installation/configurators/tagsConfigurator.js +46 -0
- package/build/domains/installation/configurators/tagsConfigurator.js.map +1 -0
- package/build/domains/installation/index.d.ts +12 -0
- package/build/domains/installation/index.d.ts.map +1 -0
- package/build/domains/installation/index.js +16 -0
- package/build/domains/installation/index.js.map +1 -0
- package/build/domains/installation/metadata/defaultsProvider.d.ts +12 -0
- package/build/domains/installation/metadata/defaultsProvider.d.ts.map +1 -0
- package/build/domains/installation/metadata/defaultsProvider.js +43 -0
- package/build/domains/installation/metadata/defaultsProvider.js.map +1 -0
- package/build/domains/installation/metadata/metadataExtractor.d.ts +11 -0
- package/build/domains/installation/metadata/metadataExtractor.d.ts.map +1 -0
- package/build/domains/installation/metadata/metadataExtractor.js +59 -0
- package/build/domains/installation/metadata/metadataExtractor.js.map +1 -0
- package/build/domains/installation/types.d.ts +27 -0
- package/build/domains/installation/types.d.ts.map +1 -0
- package/build/domains/installation/types.js +5 -0
- package/build/domains/installation/types.js.map +1 -0
- package/build/domains/installation/validators/conflictDetector.d.ts +24 -0
- package/build/domains/installation/validators/conflictDetector.d.ts.map +1 -0
- package/build/domains/installation/validators/conflictDetector.js +41 -0
- package/build/domains/installation/validators/conflictDetector.js.map +1 -0
- package/build/domains/installation/validators/serverNameValidator.d.ts +17 -0
- package/build/domains/installation/validators/serverNameValidator.d.ts.map +1 -0
- package/build/domains/installation/validators/serverNameValidator.js +58 -0
- package/build/domains/installation/validators/serverNameValidator.js.map +1 -0
- package/build/domains/registry/formatters/serverDetailFormatter.js +22 -9
- package/build/domains/registry/formatters/serverDetailFormatter.js.map +1 -1
- package/build/domains/registry/mcpRegistryClient.d.ts.map +1 -1
- package/build/domains/registry/mcpRegistryClient.js +46 -18
- package/build/domains/registry/mcpRegistryClient.js.map +1 -1
- package/build/domains/registry/mcpToolSchemas.d.ts +2 -2
- package/build/domains/registry/mcpToolSchemas.d.ts.map +1 -1
- package/build/domains/registry/mcpToolSchemas.js +1 -1
- package/build/domains/registry/mcpToolSchemas.js.map +1 -1
- package/build/domains/registry/types.d.ts +2 -3
- package/build/domains/registry/types.d.ts.map +1 -1
- package/build/domains/server-management/index.d.ts +11 -0
- package/build/domains/server-management/index.d.ts.map +1 -0
- package/build/domains/server-management/index.js +13 -0
- package/build/domains/server-management/index.js.map +1 -0
- package/build/domains/server-management/progressTrackingService.d.ts +49 -0
- package/build/domains/server-management/progressTrackingService.d.ts.map +1 -0
- package/build/domains/server-management/progressTrackingService.js +102 -0
- package/build/domains/server-management/progressTrackingService.js.map +1 -0
- package/build/domains/server-management/serverInstallationService.d.ts +48 -0
- package/build/domains/server-management/serverInstallationService.d.ts.map +1 -0
- package/build/domains/server-management/serverInstallationService.js +299 -0
- package/build/domains/server-management/serverInstallationService.js.map +1 -0
- package/build/domains/server-management/services/versionResolver.d.ts +36 -0
- package/build/domains/server-management/services/versionResolver.d.ts.map +1 -0
- package/build/domains/server-management/services/versionResolver.js +74 -0
- package/build/domains/server-management/services/versionResolver.js.map +1 -0
- package/build/domains/server-management/types.d.ts +215 -0
- package/build/domains/server-management/types.d.ts.map +1 -0
- package/build/domains/server-management/types.js +28 -0
- package/build/domains/server-management/types.js.map +1 -0
- package/build/server.d.ts +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +18 -12
- package/build/server.js.map +1 -1
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js +2 -2
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js.map +1 -1
- package/build/utils/schemaUtils.d.ts +25 -0
- package/build/utils/schemaUtils.d.ts.map +1 -0
- package/build/utils/schemaUtils.js +43 -0
- package/build/utils/schemaUtils.js.map +1 -0
- package/package.json +5 -4
- package/build/application/services/configReloadService.d.ts +0 -55
- package/build/application/services/configReloadService.d.ts.map +0 -1
- package/build/application/services/configReloadService.js +0 -195
- package/build/application/services/configReloadService.js.map +0 -1
- package/build/commands/mcp/utils/configUtils.d.ts +0 -71
- package/build/commands/mcp/utils/configUtils.d.ts.map +0 -1
- package/build/commands/mcp/utils/configUtils.js +0 -326
- package/build/commands/mcp/utils/configUtils.js.map +0 -1
- package/build/commands/shared/configUtils.d.ts.map +0 -1
- 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":"AAEA,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAW9B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,cAAiC,EACjC,iBAAsE,EACtE,iBAIE;IAEF,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,aAAa,GAAqB,EAAE,CAAC;IAEzC,OAAO,IAAI,EAAE,CAAC;QACZ,sBAAsB;QACtB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAElC,kBAAkB;QAClB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;YAChC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrE,OAAO,6BAA6B,CAAC;gBACvC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YACnD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAED,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9C,iBAAiB;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,UAAU,QAAQ,CAAC,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC;gBACjD,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,EAAE;oBACpE,OAAO,EAAE,CAAC;oBACV,WAAW,EAAE,OAAO;oBACpB,WAAW,EAAE,QAAQ;iBACtB,CAAC,CACH,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;oBAC1B,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBACpB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBAC3C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,mCAAmC;YACnC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACzD,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;gBACxB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,SAAS,CAAC,gBAAgB;YAC5B,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,SAAS,CAAC,MAAO,CAAC,IAAI;gBAChC,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,EAAE;gBAC1D,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,KAAK;aACnB,CAAC,CACH,CAAC;YAEF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;gBAC1B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC3B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,mBAAmB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;QACpD,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -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' | '
|
|
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,
|
|
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', '
|
|
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
|
-
'
|
|
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(
|
|
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š”
|
|
167
|
-
console.log(chalk.white(' ā¢
|
|
168
|
-
console.log(chalk.
|
|
169
|
-
console.log(chalk.white(' ā¢
|
|
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:'));
|