@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,310 @@
|
|
|
1
|
+
import { CONFIG_EVENTS, ConfigChangeType, ConfigManager } from '../config/configManager.js';
|
|
2
|
+
import { ServerManager } from '../core/server/serverManager.js';
|
|
3
|
+
import logger, { debugIf } from '../logger/logger.js';
|
|
4
|
+
/**
|
|
5
|
+
* ConfigChangeHandler implements business logic for configuration changes
|
|
6
|
+
* It listens to ConfigManager events and decides what actions to take
|
|
7
|
+
*/
|
|
8
|
+
export class ConfigChangeHandler {
|
|
9
|
+
static instance;
|
|
10
|
+
configManager;
|
|
11
|
+
/**
|
|
12
|
+
* Private constructor to enforce singleton pattern
|
|
13
|
+
*/
|
|
14
|
+
constructor(configManager) {
|
|
15
|
+
this.configManager = configManager || ConfigManager.getInstance();
|
|
16
|
+
// Listen to config changes
|
|
17
|
+
this.configManager.on(CONFIG_EVENTS.CONFIG_CHANGED, this.handleConfigChanges.bind(this));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get the ServerManager instance lazily
|
|
21
|
+
*/
|
|
22
|
+
getServerManager() {
|
|
23
|
+
return ServerManager.current;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the singleton instance of ConfigChangeHandler
|
|
27
|
+
*/
|
|
28
|
+
static getInstance(configManager) {
|
|
29
|
+
if (!ConfigChangeHandler.instance) {
|
|
30
|
+
ConfigChangeHandler.instance = new ConfigChangeHandler(configManager);
|
|
31
|
+
}
|
|
32
|
+
return ConfigChangeHandler.instance;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize the handler
|
|
36
|
+
*/
|
|
37
|
+
async initialize() {
|
|
38
|
+
// Ensure ConfigManager is initialized
|
|
39
|
+
if (!this.configManager) {
|
|
40
|
+
this.configManager = ConfigManager.getInstance();
|
|
41
|
+
}
|
|
42
|
+
logger.info('ConfigChangeHandler initialized');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Handle configuration changes with business logic
|
|
46
|
+
*/
|
|
47
|
+
async handleConfigChanges(changes) {
|
|
48
|
+
if (changes.length === 0) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
logger.info(`Processing ${changes.length} configuration changes`);
|
|
52
|
+
// Get the latest configuration for all operations
|
|
53
|
+
const newConfig = this.configManager.getTransportConfig();
|
|
54
|
+
for (const change of changes) {
|
|
55
|
+
try {
|
|
56
|
+
await this.processChange(change, newConfig);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
logger.error(`Failed to process change for server ${change.serverName}: ${error}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Notify clients if capabilities changed
|
|
63
|
+
await this.notifyClientsIfNeeded(changes, newConfig);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Process a single configuration change
|
|
67
|
+
*/
|
|
68
|
+
async processChange(change, newConfig) {
|
|
69
|
+
debugIf(() => ({
|
|
70
|
+
message: `Processing ${change.type} change for server ${change.serverName}`,
|
|
71
|
+
meta: { change, fieldsChanged: change.fieldsChanged },
|
|
72
|
+
}));
|
|
73
|
+
switch (change.type) {
|
|
74
|
+
case ConfigChangeType.ADDED:
|
|
75
|
+
await this.handleServerAdded(change.serverName, newConfig[change.serverName]);
|
|
76
|
+
break;
|
|
77
|
+
case ConfigChangeType.REMOVED:
|
|
78
|
+
await this.handleServerRemoved(change.serverName);
|
|
79
|
+
break;
|
|
80
|
+
case ConfigChangeType.MODIFIED:
|
|
81
|
+
await this.handleServerModified(change.serverName, newConfig[change.serverName], change.fieldsChanged);
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
logger.warn(`Unknown change type: ${String(change.type)}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Handle server addition
|
|
89
|
+
*/
|
|
90
|
+
async handleServerAdded(serverName, config) {
|
|
91
|
+
logger.info(`Starting new server: ${serverName}`);
|
|
92
|
+
await this.getServerManager().startServer(serverName, config);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Handle server removal
|
|
96
|
+
*/
|
|
97
|
+
async handleServerRemoved(serverName) {
|
|
98
|
+
logger.info(`Stopping server: ${serverName}`);
|
|
99
|
+
await this.getServerManager().stopServer(serverName);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Handle server modification
|
|
103
|
+
*/
|
|
104
|
+
async handleServerModified(serverName, config, fieldsChanged) {
|
|
105
|
+
// Check if disabled field changed
|
|
106
|
+
const disabledChanged = fieldsChanged?.includes('disabled');
|
|
107
|
+
if (config.disabled) {
|
|
108
|
+
// Server was disabled
|
|
109
|
+
logger.info(`Stopping server (disabled): ${serverName}`);
|
|
110
|
+
await this.getServerManager().stopServer(serverName);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (disabledChanged && !config.disabled) {
|
|
114
|
+
// Server was re-enabled
|
|
115
|
+
logger.info(`Starting server (re-enabled): ${serverName}`, {
|
|
116
|
+
config: {
|
|
117
|
+
command: config.command,
|
|
118
|
+
url: config.url,
|
|
119
|
+
type: config.type,
|
|
120
|
+
args: config.args,
|
|
121
|
+
disabled: config.disabled,
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
await this.getServerManager().startServer(serverName, config);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
// Business logic: determine if this requires server restart
|
|
128
|
+
if (this.requiresServerRestart(fieldsChanged)) {
|
|
129
|
+
logger.info(`Restarting server (functional changes): ${serverName}`);
|
|
130
|
+
await this.getServerManager().restartServer(serverName, config);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Only tags changed - update metadata without restart
|
|
134
|
+
logger.info(`Updating server metadata only (no restart needed): ${serverName}`);
|
|
135
|
+
await this.updateServerMetadata(serverName, config);
|
|
136
|
+
await this.notifyClientsOfMetadataChange(serverName);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Determine if a server restart is required based on changed fields
|
|
141
|
+
*/
|
|
142
|
+
requiresServerRestart(fieldsChanged) {
|
|
143
|
+
if (!fieldsChanged || fieldsChanged.length === 0) {
|
|
144
|
+
return true; // Conservative approach - restart if we don't know what changed
|
|
145
|
+
}
|
|
146
|
+
// Only restart if non-tag fields changed
|
|
147
|
+
const nonTagFields = fieldsChanged.filter((field) => field !== 'tags');
|
|
148
|
+
return nonTagFields.length > 0;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Update server metadata without restarting
|
|
152
|
+
*/
|
|
153
|
+
async updateServerMetadata(serverName, config) {
|
|
154
|
+
try {
|
|
155
|
+
debugIf(() => ({
|
|
156
|
+
message: `Updating metadata for server ${serverName}`,
|
|
157
|
+
meta: { newTags: config.tags },
|
|
158
|
+
}));
|
|
159
|
+
// Update server metadata in ServerManager if server is running
|
|
160
|
+
if (this.getServerManager().isMcpServerRunning(serverName)) {
|
|
161
|
+
await this.updateServerMetadataInServerManager(serverName, config);
|
|
162
|
+
}
|
|
163
|
+
// Update any outbound connections if they exist
|
|
164
|
+
this.updateOutboundConnectionMetadata(serverName, config);
|
|
165
|
+
// Emit event for other components that might need to update their state
|
|
166
|
+
this.configManager.emit(CONFIG_EVENTS.METADATA_UPDATED, { serverName, config });
|
|
167
|
+
debugIf(() => ({
|
|
168
|
+
message: `Successfully updated metadata for server ${serverName}`,
|
|
169
|
+
meta: { newTags: config.tags },
|
|
170
|
+
}));
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
logger.error(`Failed to update metadata for server ${serverName}:`, error);
|
|
174
|
+
throw error;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Update metadata in ServerManager for a running server
|
|
179
|
+
*/
|
|
180
|
+
async updateServerMetadataInServerManager(serverName, config) {
|
|
181
|
+
try {
|
|
182
|
+
// Use ServerManager's dedicated metadata update method
|
|
183
|
+
await this.getServerManager().updateServerMetadata(serverName, config);
|
|
184
|
+
debugIf(() => ({
|
|
185
|
+
message: `Successfully updated metadata in ServerManager for server ${serverName}`,
|
|
186
|
+
meta: { newConfig: config },
|
|
187
|
+
}));
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
logger.warn(`Failed to update server metadata in ServerManager for ${serverName}:`, error);
|
|
191
|
+
// Don't throw here, metadata updates should be non-critical
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Update metadata in outbound connections (tags, etc.)
|
|
196
|
+
*/
|
|
197
|
+
updateOutboundConnectionMetadata(serverName, config) {
|
|
198
|
+
try {
|
|
199
|
+
// Update tags in existing outbound connections if they exist
|
|
200
|
+
const outboundConns = this.getServerManager().getClients();
|
|
201
|
+
const connection = outboundConns.get(serverName);
|
|
202
|
+
if (connection) {
|
|
203
|
+
// Update transport metadata if supported
|
|
204
|
+
if (connection.transport && 'tags' in connection.transport) {
|
|
205
|
+
// Update tags on transport if it supports it
|
|
206
|
+
connection.transport.tags = config.tags;
|
|
207
|
+
}
|
|
208
|
+
debugIf(() => ({
|
|
209
|
+
message: `Updated outbound connection metadata for server ${serverName}`,
|
|
210
|
+
meta: { connectionName: connection.name, newTags: config.tags },
|
|
211
|
+
}));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
logger.warn(`Failed to update outbound connection metadata for ${serverName}:`, error);
|
|
216
|
+
// Don't throw here, metadata updates should be non-critical
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Notify clients about metadata changes (e.g., tag changes)
|
|
221
|
+
*/
|
|
222
|
+
async notifyClientsOfMetadataChange(serverName) {
|
|
223
|
+
try {
|
|
224
|
+
// Send listChanged notifications since capabilities might have changed due to tag modifications
|
|
225
|
+
await this.sendListChangedNotifications();
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
logger.error(`Failed to notify clients of metadata change for ${serverName}: ${error}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Notify clients of capability changes if needed
|
|
233
|
+
*/
|
|
234
|
+
async notifyClientsIfNeeded(changes, _newConfig) {
|
|
235
|
+
// Check if any functional changes occurred (not just tag changes)
|
|
236
|
+
const hasFunctionalChanges = changes.some((change) => {
|
|
237
|
+
if (change.type === ConfigChangeType.ADDED || change.type === ConfigChangeType.REMOVED) {
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
if (change.type === ConfigChangeType.MODIFIED && this.requiresServerRestart(change.fieldsChanged)) {
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
return false;
|
|
244
|
+
});
|
|
245
|
+
if (hasFunctionalChanges) {
|
|
246
|
+
await this.sendListChangedNotifications();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Send listChanged notifications to all connected clients
|
|
251
|
+
*/
|
|
252
|
+
async sendListChangedNotifications() {
|
|
253
|
+
try {
|
|
254
|
+
const { AgentConfigManager } = await import('../core/server/agentConfig.js');
|
|
255
|
+
const { NotificationManager } = await import('../core/notifications/notificationManager.js');
|
|
256
|
+
const { CapabilityAggregator } = await import('../core/capabilities/capabilityAggregator.js');
|
|
257
|
+
const agentConfig = AgentConfigManager.getInstance();
|
|
258
|
+
if (!agentConfig.get('features').clientNotifications) {
|
|
259
|
+
debugIf('Client notifications disabled, skipping listChanged notifications');
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const inboundConnections = this.getServerManager().getInboundConnections();
|
|
263
|
+
const outboundConnections = this.getServerManager().getClients();
|
|
264
|
+
// Calculate new capabilities
|
|
265
|
+
const capabilityAggregator = new CapabilityAggregator(outboundConnections);
|
|
266
|
+
const changes = await capabilityAggregator.updateCapabilities();
|
|
267
|
+
if (changes.hasChanges) {
|
|
268
|
+
debugIf(() => ({
|
|
269
|
+
message: 'Sending listChanged notifications to clients',
|
|
270
|
+
meta: {
|
|
271
|
+
toolsChanged: changes.current.tools.length > 0,
|
|
272
|
+
resourcesChanged: changes.current.resources.length > 0,
|
|
273
|
+
promptsChanged: changes.current.prompts.length > 0,
|
|
274
|
+
},
|
|
275
|
+
}));
|
|
276
|
+
// Send notifications to all inbound connections
|
|
277
|
+
for (const [sessionId, inboundConnection] of inboundConnections) {
|
|
278
|
+
try {
|
|
279
|
+
const notificationManager = new NotificationManager(inboundConnection);
|
|
280
|
+
notificationManager.handleCapabilityChanges({
|
|
281
|
+
toolsChanged: changes.current.tools.length > 0,
|
|
282
|
+
resourcesChanged: changes.current.resources.length > 0,
|
|
283
|
+
promptsChanged: changes.current.prompts.length > 0,
|
|
284
|
+
hasChanges: true,
|
|
285
|
+
addedServers: changes.addedServers,
|
|
286
|
+
removedServers: changes.removedServers,
|
|
287
|
+
current: changes.current,
|
|
288
|
+
previous: changes.previous,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
logger.error(`Failed to send listChanged notification for session ${sessionId}: ${error}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
logger.error(`Failed to send listChanged notifications: ${error}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Stop the handler and clean up resources
|
|
303
|
+
*/
|
|
304
|
+
async stop() {
|
|
305
|
+
// Remove event listeners
|
|
306
|
+
this.configManager.removeAllListeners(CONFIG_EVENTS.CONFIG_CHANGED);
|
|
307
|
+
logger.info('ConfigChangeHandler stopped');
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=configChangeHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configChangeHandler.js","sourceRoot":"","sources":["../../src/core/configChangeHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
/**
|
|
3
|
+
* Tool category definition - simplified structure
|
|
4
|
+
*/
|
|
5
|
+
export interface ToolCategory {
|
|
6
|
+
category: string;
|
|
7
|
+
description: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Flag change notification event
|
|
11
|
+
*/
|
|
12
|
+
export interface FlagChangeEvent {
|
|
13
|
+
category: string;
|
|
14
|
+
subcategory?: string;
|
|
15
|
+
tool?: string;
|
|
16
|
+
oldValue: boolean;
|
|
17
|
+
newValue: boolean;
|
|
18
|
+
source: 'cli' | 'config' | 'runtime';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Flag validation result
|
|
22
|
+
*/
|
|
23
|
+
export interface FlagValidationResult {
|
|
24
|
+
valid: boolean;
|
|
25
|
+
errors: string[];
|
|
26
|
+
warnings: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* FlagManager provides simplified management for feature flags
|
|
30
|
+
*
|
|
31
|
+
* This class manages the simplified flag structure for internal tools,
|
|
32
|
+
* providing basic flag checking without complex hierarchy or dependencies.
|
|
33
|
+
*/
|
|
34
|
+
export declare class FlagManager extends EventEmitter {
|
|
35
|
+
private static instance;
|
|
36
|
+
private readonly toolCategories;
|
|
37
|
+
private constructor();
|
|
38
|
+
/**
|
|
39
|
+
* Get singleton instance
|
|
40
|
+
*/
|
|
41
|
+
static getInstance(): FlagManager;
|
|
42
|
+
/**
|
|
43
|
+
* Check if a specific tool is enabled
|
|
44
|
+
*/
|
|
45
|
+
isToolEnabled(category: string, subcategory?: string, tool?: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check if an entire category is enabled
|
|
48
|
+
*/
|
|
49
|
+
isCategoryEnabled(category: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Get enabled tools for a category (simplified)
|
|
52
|
+
*/
|
|
53
|
+
getEnabledTools(category: string): string[];
|
|
54
|
+
/**
|
|
55
|
+
* Parse comma-separated tools list and resolve categories
|
|
56
|
+
*/
|
|
57
|
+
parseToolsList(toolsString: string): string[];
|
|
58
|
+
/**
|
|
59
|
+
* Get enabled tools based on custom tools list
|
|
60
|
+
*/
|
|
61
|
+
getEnabledToolsFromList(category: string, toolsList: string[]): string[];
|
|
62
|
+
/**
|
|
63
|
+
* Get all available tools and categories for help
|
|
64
|
+
*/
|
|
65
|
+
getAvailableToolsAndCategories(): {
|
|
66
|
+
tools: string[];
|
|
67
|
+
categories: string[];
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Get tool categories information
|
|
71
|
+
*/
|
|
72
|
+
getToolCategories(): ToolCategory[];
|
|
73
|
+
/**
|
|
74
|
+
* Validate flag configuration (simplified)
|
|
75
|
+
*/
|
|
76
|
+
validateFlags(): FlagValidationResult;
|
|
77
|
+
/**
|
|
78
|
+
* Get flag status summary (simplified)
|
|
79
|
+
*/
|
|
80
|
+
getFlagSummary(): Record<string, unknown>;
|
|
81
|
+
/**
|
|
82
|
+
* Set up configuration change watcher
|
|
83
|
+
*/
|
|
84
|
+
private setupConfigWatcher;
|
|
85
|
+
/**
|
|
86
|
+
* Emit flag change event (used by config system when flags change)
|
|
87
|
+
*/
|
|
88
|
+
emitFlagChange(event: FlagChangeEvent): void;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=flagManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flagManager.d.ts","sourceRoot":"","sources":["../../../src/core/flags/flagManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsDD;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IAGrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,OAAO;IAKP;;OAEG;WACW,WAAW,IAAI,WAAW;IAOxC;;OAEG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO;IAKpF;;OAEG;IACI,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAInD;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAalD;;OAEG;IACI,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAyCpD;;OAEG;IACI,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAS/E;;OAEG;IACI,8BAA8B,IAAI;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;IAOlF;;OAEG;IACI,iBAAiB,IAAI,YAAY,EAAE;IAI1C;;OAEG;IACI,aAAa,IAAI,oBAAoB;IAY5C;;OAEG;IACI,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQhD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAS1B;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;CAQpD"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { AgentConfigManager } from '../../core/server/agentConfig.js';
|
|
3
|
+
import { debugIf } from '../../logger/logger.js';
|
|
4
|
+
/**
|
|
5
|
+
* Tool mapping for internal MCP tools
|
|
6
|
+
*/
|
|
7
|
+
const TOOL_MAPPING = {
|
|
8
|
+
// Individual tools (short name -> MCP tool name)
|
|
9
|
+
search: 'search',
|
|
10
|
+
registry_status: 'registry_status',
|
|
11
|
+
registry_info: 'registry_info',
|
|
12
|
+
registry_list: 'registry_list',
|
|
13
|
+
info: 'info',
|
|
14
|
+
edit: 'edit',
|
|
15
|
+
list: 'list',
|
|
16
|
+
status: 'status',
|
|
17
|
+
enable: 'enable',
|
|
18
|
+
disable: 'disable',
|
|
19
|
+
reload: 'reload',
|
|
20
|
+
install: 'install',
|
|
21
|
+
uninstall: 'uninstall',
|
|
22
|
+
update: 'update',
|
|
23
|
+
// Category shortcuts (category -> array of tool names)
|
|
24
|
+
discovery: ['search', 'registry_status', 'registry_info', 'registry_list', 'info'],
|
|
25
|
+
management: ['list', 'status', 'enable', 'disable', 'reload', 'edit'],
|
|
26
|
+
installation: ['install', 'uninstall', 'update'],
|
|
27
|
+
safe: ['search', 'registry_info', 'registry_list', 'info', 'list', 'status'],
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* All available internal tool names for validation
|
|
31
|
+
*/
|
|
32
|
+
const ALL_AVAILABLE_TOOLS = [
|
|
33
|
+
'search',
|
|
34
|
+
'registry_status',
|
|
35
|
+
'registry_info',
|
|
36
|
+
'registry_list',
|
|
37
|
+
'info',
|
|
38
|
+
'edit',
|
|
39
|
+
'list',
|
|
40
|
+
'status',
|
|
41
|
+
'enable',
|
|
42
|
+
'disable',
|
|
43
|
+
'reload',
|
|
44
|
+
'install',
|
|
45
|
+
'uninstall',
|
|
46
|
+
'update',
|
|
47
|
+
];
|
|
48
|
+
/**
|
|
49
|
+
* All available categories for validation
|
|
50
|
+
*/
|
|
51
|
+
const ALL_AVAILABLE_CATEGORIES = ['discovery', 'management', 'installation', 'safe'];
|
|
52
|
+
/**
|
|
53
|
+
* FlagManager provides simplified management for feature flags
|
|
54
|
+
*
|
|
55
|
+
* This class manages the simplified flag structure for internal tools,
|
|
56
|
+
* providing basic flag checking without complex hierarchy or dependencies.
|
|
57
|
+
*/
|
|
58
|
+
export class FlagManager extends EventEmitter {
|
|
59
|
+
static instance;
|
|
60
|
+
// Simplified tool categories
|
|
61
|
+
toolCategories = [
|
|
62
|
+
{ category: 'internalTools', description: 'Internal MCP management tools' },
|
|
63
|
+
];
|
|
64
|
+
constructor() {
|
|
65
|
+
super();
|
|
66
|
+
this.setupConfigWatcher();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get singleton instance
|
|
70
|
+
*/
|
|
71
|
+
static getInstance() {
|
|
72
|
+
if (!FlagManager.instance) {
|
|
73
|
+
FlagManager.instance = new FlagManager();
|
|
74
|
+
}
|
|
75
|
+
return FlagManager.instance;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check if a specific tool is enabled
|
|
79
|
+
*/
|
|
80
|
+
isToolEnabled(category, subcategory, tool) {
|
|
81
|
+
const configManager = AgentConfigManager.getInstance();
|
|
82
|
+
return configManager.isToolEnabled(category, subcategory, tool);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check if an entire category is enabled
|
|
86
|
+
*/
|
|
87
|
+
isCategoryEnabled(category) {
|
|
88
|
+
return this.isToolEnabled(category);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get enabled tools for a category (simplified)
|
|
92
|
+
*/
|
|
93
|
+
getEnabledTools(category) {
|
|
94
|
+
if (!this.isCategoryEnabled(category)) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
// For simplified structure, if category is enabled, all tools are enabled
|
|
98
|
+
if (category === 'internalTools') {
|
|
99
|
+
return ALL_AVAILABLE_TOOLS;
|
|
100
|
+
}
|
|
101
|
+
return [];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Parse comma-separated tools list and resolve categories
|
|
105
|
+
*/
|
|
106
|
+
parseToolsList(toolsString) {
|
|
107
|
+
if (!toolsString || typeof toolsString !== 'string') {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
// Split by comma and trim whitespace
|
|
111
|
+
const requestedTools = toolsString
|
|
112
|
+
.split(',')
|
|
113
|
+
.map((tool) => tool.trim().toLowerCase())
|
|
114
|
+
.filter(Boolean);
|
|
115
|
+
const resolvedTools = [];
|
|
116
|
+
const errors = [];
|
|
117
|
+
for (const tool of requestedTools) {
|
|
118
|
+
// Check if it's a category shortcut
|
|
119
|
+
if (ALL_AVAILABLE_CATEGORIES.includes(tool)) {
|
|
120
|
+
const categoryTools = TOOL_MAPPING[tool];
|
|
121
|
+
if (Array.isArray(categoryTools)) {
|
|
122
|
+
resolvedTools.push(...categoryTools);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Check if it's an individual tool
|
|
126
|
+
else if (ALL_AVAILABLE_TOOLS.includes(tool)) {
|
|
127
|
+
resolvedTools.push(tool);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
errors.push(`Unknown tool or category: "${tool}"`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Remove duplicates and return
|
|
134
|
+
const uniqueTools = [...new Set(resolvedTools)];
|
|
135
|
+
if (errors.length > 0) {
|
|
136
|
+
throw new Error(`Invalid tools list: ${errors.join(', ')}. Available tools: ${ALL_AVAILABLE_TOOLS.join(', ')}. Available categories: ${ALL_AVAILABLE_CATEGORIES.join(', ')}`);
|
|
137
|
+
}
|
|
138
|
+
return uniqueTools;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get enabled tools based on custom tools list
|
|
142
|
+
*/
|
|
143
|
+
getEnabledToolsFromList(category, toolsList) {
|
|
144
|
+
if (category !== 'internalTools' || !toolsList || toolsList.length === 0) {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
// Filter out any invalid tools and return valid ones
|
|
148
|
+
return toolsList.filter((tool) => ALL_AVAILABLE_TOOLS.includes(tool));
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Get all available tools and categories for help
|
|
152
|
+
*/
|
|
153
|
+
getAvailableToolsAndCategories() {
|
|
154
|
+
return {
|
|
155
|
+
tools: [...ALL_AVAILABLE_TOOLS],
|
|
156
|
+
categories: [...ALL_AVAILABLE_CATEGORIES],
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get tool categories information
|
|
161
|
+
*/
|
|
162
|
+
getToolCategories() {
|
|
163
|
+
return [...this.toolCategories];
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Validate flag configuration (simplified)
|
|
167
|
+
*/
|
|
168
|
+
validateFlags() {
|
|
169
|
+
// Simplified validation - no complex dependencies to check
|
|
170
|
+
const configManager = AgentConfigManager.getInstance();
|
|
171
|
+
configManager.areInternalToolsEnabled();
|
|
172
|
+
return {
|
|
173
|
+
valid: true,
|
|
174
|
+
errors: [],
|
|
175
|
+
warnings: [],
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get flag status summary (simplified)
|
|
180
|
+
*/
|
|
181
|
+
getFlagSummary() {
|
|
182
|
+
const configManager = AgentConfigManager.getInstance();
|
|
183
|
+
return {
|
|
184
|
+
internalTools: configManager.areInternalToolsEnabled(),
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Set up configuration change watcher
|
|
189
|
+
*/
|
|
190
|
+
setupConfigWatcher() {
|
|
191
|
+
// Watch for configuration changes and emit events
|
|
192
|
+
// This would integrate with the existing config reload system
|
|
193
|
+
debugIf(() => ({
|
|
194
|
+
message: 'FlagManager initialized and watching for configuration changes',
|
|
195
|
+
meta: { categoryCount: this.toolCategories.length },
|
|
196
|
+
}));
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Emit flag change event (used by config system when flags change)
|
|
200
|
+
*/
|
|
201
|
+
emitFlagChange(event) {
|
|
202
|
+
debugIf(() => ({
|
|
203
|
+
message: `Flag changed: ${event.category}${event.subcategory ? '.' + event.subcategory : ''}${event.tool ? '.' + event.tool : ''} from ${event.oldValue} to ${event.newValue}`,
|
|
204
|
+
meta: { source: event.source },
|
|
205
|
+
}));
|
|
206
|
+
this.emit('flagChanged', event);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=flagManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flagManager.js","sourceRoot":"","sources":["../../../src/core/flags/flagManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../../../src/core/protocol/requestHandlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"requestHandlers.d.ts","sourceRoot":"","sources":["../../../src/core/protocol/requestHandlers.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAgB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AA2DhG;;;;;;GAMG;AAEH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,GAAG,IAAI,CA6ChH"}
|