@ibm/ibmi-mcp-server 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -0
- package/dist/config/index.d.ts +100 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +463 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/resolver.d.ts +32 -0
- package/dist/config/resolver.d.ts.map +1 -0
- package/dist/config/resolver.js +60 -0
- package/dist/config/resolver.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/crypto.d.ts +11 -0
- package/dist/ibmi-mcp-server/auth/crypto.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/crypto.js +100 -0
- package/dist/ibmi-mcp-server/auth/crypto.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts +28 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js +243 -0
- package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/index.d.ts +9 -0
- package/dist/ibmi-mcp-server/auth/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/index.js +8 -0
- package/dist/ibmi-mcp-server/auth/index.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.d.ts +86 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.js +214 -0
- package/dist/ibmi-mcp-server/auth/tokenManager.js.map +1 -0
- package/dist/ibmi-mcp-server/auth/types.d.ts +31 -0
- package/dist/ibmi-mcp-server/auth/types.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/auth/types.js +5 -0
- package/dist/ibmi-mcp-server/auth/types.js.map +1 -0
- package/dist/ibmi-mcp-server/index.d.ts +8 -0
- package/dist/ibmi-mcp-server/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/index.js +126 -0
- package/dist/ibmi-mcp-server/index.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts +7 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js +7 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts +106 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js +145 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts +16 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js +110 -0
- package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/common.d.ts +174 -0
- package/dist/ibmi-mcp-server/schemas/common.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/common.js +119 -0
- package/dist/ibmi-mcp-server/schemas/common.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/config.d.ts +858 -0
- package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/config.js +248 -0
- package/dist/ibmi-mcp-server/schemas/config.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/index.d.ts +12 -0
- package/dist/ibmi-mcp-server/schemas/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/index.js +20 -0
- package/dist/ibmi-mcp-server/schemas/index.js.map +1 -0
- package/dist/ibmi-mcp-server/schemas/tools.d.ts +287 -0
- package/dist/ibmi-mcp-server/schemas/tools.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/schemas/tools.js +167 -0
- package/dist/ibmi-mcp-server/schemas/tools.js.map +1 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +82 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +262 -0
- package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +130 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js +431 -0
- package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -0
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts +60 -0
- package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/connectionPool.js +153 -0
- package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -0
- package/dist/ibmi-mcp-server/services/securityValidation.d.ts +35 -0
- package/dist/ibmi-mcp-server/services/securityValidation.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/securityValidation.js +93 -0
- package/dist/ibmi-mcp-server/services/securityValidation.js.map +1 -0
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts +82 -0
- package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/services/sourceManager.js +151 -0
- package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +9 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.js +9 -0
- package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +51 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js +179 -0
- package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +52 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js +161 -0
- package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +13 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.js +13 -0
- package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +64 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js +190 -0
- package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +18 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js +64 -0
- package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts +42 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.js +156 -0
- package/dist/ibmi-mcp-server/utils/cli/argumentParser.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/index.d.ts +6 -0
- package/dist/ibmi-mcp-server/utils/cli/index.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/cli/index.js +6 -0
- package/dist/ibmi-mcp-server/utils/cli/index.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +77 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.js +309 -0
- package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts +143 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +665 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts +71 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js +158 -0
- package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +206 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +236 -0
- package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +65 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js +236 -0
- package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts +175 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.js +460 -0
- package/dist/ibmi-mcp-server/utils/config/toolProcessor.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +126 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +240 -0
- package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/types.d.ts +74 -0
- package/dist/ibmi-mcp-server/utils/config/types.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/config/types.js +8 -0
- package/dist/ibmi-mcp-server/utils/config/types.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +116 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +426 -0
- package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts +182 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js +726 -0
- package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts +90 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts.map +1 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js +187 -0
- package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +270 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/constants.d.ts +13 -0
- package/dist/mcp-server/constants.d.ts.map +1 -0
- package/dist/mcp-server/constants.js +13 -0
- package/dist/mcp-server/constants.js.map +1 -0
- package/dist/mcp-server/logging/index.d.ts +8 -0
- package/dist/mcp-server/logging/index.d.ts.map +1 -0
- package/dist/mcp-server/logging/index.js +8 -0
- package/dist/mcp-server/logging/index.js.map +1 -0
- package/dist/mcp-server/logging/setLevelHandler.d.ts +38 -0
- package/dist/mcp-server/logging/setLevelHandler.d.ts.map +1 -0
- package/dist/mcp-server/logging/setLevelHandler.js +83 -0
- package/dist/mcp-server/logging/setLevelHandler.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/index.d.ts +14 -0
- package/dist/mcp-server/resources/echoResource/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/index.js +14 -0
- package/dist/mcp-server/resources/echoResource/index.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/logic.d.ts +37 -0
- package/dist/mcp-server/resources/echoResource/logic.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/logic.js +46 -0
- package/dist/mcp-server/resources/echoResource/logic.js.map +1 -0
- package/dist/mcp-server/resources/echoResource/registration.d.ts +7 -0
- package/dist/mcp-server/resources/echoResource/registration.d.ts.map +1 -0
- package/dist/mcp-server/resources/echoResource/registration.js +51 -0
- package/dist/mcp-server/resources/echoResource/registration.js.map +1 -0
- package/dist/mcp-server/resources/index.d.ts +10 -0
- package/dist/mcp-server/resources/index.d.ts.map +1 -0
- package/dist/mcp-server/resources/index.js +19 -0
- package/dist/mcp-server/resources/index.js.map +1 -0
- package/dist/mcp-server/resources/utils/resource-utils.d.ts +43 -0
- package/dist/mcp-server/resources/utils/resource-utils.d.ts.map +1 -0
- package/dist/mcp-server/resources/utils/resource-utils.js +44 -0
- package/dist/mcp-server/resources/utils/resource-utils.js.map +1 -0
- package/dist/mcp-server/server.d.ts +23 -0
- package/dist/mcp-server/server.d.ts.map +1 -0
- package/dist/mcp-server/server.js +114 -0
- package/dist/mcp-server/server.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts +8 -0
- package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/index.js +8 -0
- package/dist/mcp-server/tools/catFactFetcher/index.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +52 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.js +95 -0
- package/dist/mcp-server/tools/catFactFetcher/logic.js.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +9 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.js +43 -0
- package/dist/mcp-server/tools/catFactFetcher/registration.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/index.d.ts +13 -0
- package/dist/mcp-server/tools/echoTool/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/index.js +13 -0
- package/dist/mcp-server/tools/echoTool/index.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/logic.d.ts +69 -0
- package/dist/mcp-server/tools/echoTool/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/logic.js +119 -0
- package/dist/mcp-server/tools/echoTool/logic.js.map +1 -0
- package/dist/mcp-server/tools/echoTool/registration.d.ts +9 -0
- package/dist/mcp-server/tools/echoTool/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/echoTool/registration.js +45 -0
- package/dist/mcp-server/tools/echoTool/registration.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/index.d.ts +7 -0
- package/dist/mcp-server/tools/imageTest/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/index.js +7 -0
- package/dist/mcp-server/tools/imageTest/index.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/logic.d.ts +27 -0
- package/dist/mcp-server/tools/imageTest/logic.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/logic.js +44 -0
- package/dist/mcp-server/tools/imageTest/logic.js.map +1 -0
- package/dist/mcp-server/tools/imageTest/registration.d.ts +9 -0
- package/dist/mcp-server/tools/imageTest/registration.d.ts.map +1 -0
- package/dist/mcp-server/tools/imageTest/registration.js +49 -0
- package/dist/mcp-server/tools/imageTest/registration.js.map +1 -0
- package/dist/mcp-server/tools/index.d.ts +4 -0
- package/dist/mcp-server/tools/index.d.ts.map +1 -0
- package/dist/mcp-server/tools/index.js +13 -0
- package/dist/mcp-server/tools/index.js.map +1 -0
- package/dist/mcp-server/tools/utils/tool-utils.d.ts +43 -0
- package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/tool-utils.js +44 -0
- package/dist/mcp-server/tools/utils/tool-utils.js.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
- package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authFactory.js +46 -0
- package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts +20 -0
- package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js +58 -0
- package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/auth/index.d.ts +14 -0
- package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/index.js +12 -0
- package/dist/mcp-server/transports/auth/index.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
- package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
- package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +15 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js +9 -0
- package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +19 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js +53 -0
- package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
- package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts +21 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js +64 -0
- package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +118 -0
- package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +8 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +118 -0
- package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
- package/dist/mcp-server/transports/core/autoTransportManager.d.ts +48 -0
- package/dist/mcp-server/transports/core/autoTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/autoTransportManager.js +57 -0
- package/dist/mcp-server/transports/core/autoTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts +17 -0
- package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js +20 -0
- package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts +27 -0
- package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/headerUtils.js +53 -0
- package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +77 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js +150 -0
- package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +81 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js +326 -0
- package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +57 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js +151 -0
- package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
- package/dist/mcp-server/transports/core/transportRequest.d.ts +9 -0
- package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportRequest.js +2 -0
- package/dist/mcp-server/transports/core/transportRequest.js.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts +112 -0
- package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/core/transportTypes.js +15 -0
- package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js +86 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts +27 -0
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTransport.js +407 -0
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
- package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/httpTypes.js +6 -0
- package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
- package/dist/mcp-server/transports/http/index.d.ts +8 -0
- package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/index.js +7 -0
- package/dist/mcp-server/transports/http/index.js.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +21 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +54 -0
- package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
- package/dist/mcp-server/transports/stdio/index.d.ts +6 -0
- package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/index.js +6 -0
- package/dist/mcp-server/transports/stdio/index.js.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +43 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js +71 -0
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
- package/dist/services/duck-db/duckDBConnectionManager.d.ts +55 -0
- package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBConnectionManager.js +184 -0
- package/dist/services/duck-db/duckDBConnectionManager.js.map +1 -0
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts +18 -0
- package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBQueryExecutor.js +115 -0
- package/dist/services/duck-db/duckDBQueryExecutor.js.map +1 -0
- package/dist/services/duck-db/duckDBService.d.ts +27 -0
- package/dist/services/duck-db/duckDBService.d.ts.map +1 -0
- package/dist/services/duck-db/duckDBService.js +151 -0
- package/dist/services/duck-db/duckDBService.js.map +1 -0
- package/dist/services/duck-db/types.d.ts +135 -0
- package/dist/services/duck-db/types.d.ts.map +1 -0
- package/dist/services/duck-db/types.js +6 -0
- package/dist/services/duck-db/types.js.map +1 -0
- package/dist/services/llm-providers/openRouterProvider.d.ts +36 -0
- package/dist/services/llm-providers/openRouterProvider.d.ts.map +1 -0
- package/dist/services/llm-providers/openRouterProvider.js +235 -0
- package/dist/services/llm-providers/openRouterProvider.js.map +1 -0
- package/dist/services/supabase/supabaseClient.d.ts +25 -0
- package/dist/services/supabase/supabaseClient.d.ts.map +1 -0
- package/dist/services/supabase/supabaseClient.js +68 -0
- package/dist/services/supabase/supabaseClient.js.map +1 -0
- package/dist/storage/duckdbExample.d.ts +8 -0
- package/dist/storage/duckdbExample.d.ts.map +1 -0
- package/dist/storage/duckdbExample.js +197 -0
- package/dist/storage/duckdbExample.js.map +1 -0
- package/dist/types-global/errors.d.ts +101 -0
- package/dist/types-global/errors.d.ts.map +1 -0
- package/dist/types-global/errors.js +109 -0
- package/dist/types-global/errors.js.map +1 -0
- package/dist/utils/formatting/index.d.ts +10 -0
- package/dist/utils/formatting/index.d.ts.map +1 -0
- package/dist/utils/formatting/index.js +10 -0
- package/dist/utils/formatting/index.js.map +1 -0
- package/dist/utils/formatting/markdownBuilder.d.ts +348 -0
- package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
- package/dist/utils/formatting/markdownBuilder.js +501 -0
- package/dist/utils/formatting/markdownBuilder.js.map +1 -0
- package/dist/utils/formatting/sqlFormattingUtils.d.ts +69 -0
- package/dist/utils/formatting/sqlFormattingUtils.d.ts.map +1 -0
- package/dist/utils/formatting/sqlFormattingUtils.js +131 -0
- package/dist/utils/formatting/sqlFormattingUtils.js.map +1 -0
- package/dist/utils/formatting/tableFormatter.d.ts +268 -0
- package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
- package/dist/utils/formatting/tableFormatter.js +550 -0
- package/dist/utils/formatting/tableFormatter.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/internal/asyncContext.d.ts +35 -0
- package/dist/utils/internal/asyncContext.d.ts.map +1 -0
- package/dist/utils/internal/asyncContext.js +38 -0
- package/dist/utils/internal/asyncContext.js.map +1 -0
- package/dist/utils/internal/errorHandler.d.ts +95 -0
- package/dist/utils/internal/errorHandler.d.ts.map +1 -0
- package/dist/utils/internal/errorHandler.js +210 -0
- package/dist/utils/internal/errorHandler.js.map +1 -0
- package/dist/utils/internal/index.d.ts +12 -0
- package/dist/utils/internal/index.d.ts.map +1 -0
- package/dist/utils/internal/index.js +12 -0
- package/dist/utils/internal/index.js.map +1 -0
- package/dist/utils/internal/logger.d.ts +30 -0
- package/dist/utils/internal/logger.d.ts.map +1 -0
- package/dist/utils/internal/logger.js +228 -0
- package/dist/utils/internal/logger.js.map +1 -0
- package/dist/utils/internal/logging-helpers.d.ts +49 -0
- package/dist/utils/internal/logging-helpers.d.ts.map +1 -0
- package/dist/utils/internal/logging-helpers.js +60 -0
- package/dist/utils/internal/logging-helpers.js.map +1 -0
- package/dist/utils/internal/performance.d.ts +19 -0
- package/dist/utils/internal/performance.d.ts.map +1 -0
- package/dist/utils/internal/performance.js +110 -0
- package/dist/utils/internal/performance.js.map +1 -0
- package/dist/utils/internal/requestContext.d.ts +41 -0
- package/dist/utils/internal/requestContext.d.ts.map +1 -0
- package/dist/utils/internal/requestContext.js +47 -0
- package/dist/utils/internal/requestContext.js.map +1 -0
- package/dist/utils/metrics/index.d.ts +8 -0
- package/dist/utils/metrics/index.d.ts.map +1 -0
- package/dist/utils/metrics/index.js +8 -0
- package/dist/utils/metrics/index.js.map +1 -0
- package/dist/utils/metrics/tokenCounter.d.ts +36 -0
- package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
- package/dist/utils/metrics/tokenCounter.js +115 -0
- package/dist/utils/metrics/tokenCounter.js.map +1 -0
- package/dist/utils/network/fetchWithTimeout.d.ts +22 -0
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
- package/dist/utils/network/fetchWithTimeout.js +78 -0
- package/dist/utils/network/fetchWithTimeout.js.map +1 -0
- package/dist/utils/network/index.d.ts +7 -0
- package/dist/utils/network/index.d.ts.map +1 -0
- package/dist/utils/network/index.js +6 -0
- package/dist/utils/network/index.js.map +1 -0
- package/dist/utils/parsing/dateParser.d.ts +73 -0
- package/dist/utils/parsing/dateParser.d.ts.map +1 -0
- package/dist/utils/parsing/dateParser.js +108 -0
- package/dist/utils/parsing/dateParser.js.map +1 -0
- package/dist/utils/parsing/index.d.ts +9 -0
- package/dist/utils/parsing/index.d.ts.map +1 -0
- package/dist/utils/parsing/index.js +9 -0
- package/dist/utils/parsing/index.js.map +1 -0
- package/dist/utils/parsing/jsonParser.d.ts +83 -0
- package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
- package/dist/utils/parsing/jsonParser.js +128 -0
- package/dist/utils/parsing/jsonParser.js.map +1 -0
- package/dist/utils/scheduling/index.d.ts +7 -0
- package/dist/utils/scheduling/index.d.ts.map +1 -0
- package/dist/utils/scheduling/index.js +7 -0
- package/dist/utils/scheduling/index.js.map +1 -0
- package/dist/utils/scheduling/scheduler.d.ts +73 -0
- package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
- package/dist/utils/scheduling/scheduler.js +155 -0
- package/dist/utils/scheduling/scheduler.js.map +1 -0
- package/dist/utils/security/idGenerator.d.ts +144 -0
- package/dist/utils/security/idGenerator.d.ts.map +1 -0
- package/dist/utils/security/idGenerator.js +232 -0
- package/dist/utils/security/idGenerator.js.map +1 -0
- package/dist/utils/security/index.d.ts +10 -0
- package/dist/utils/security/index.d.ts.map +1 -0
- package/dist/utils/security/index.js +10 -0
- package/dist/utils/security/index.js.map +1 -0
- package/dist/utils/security/rateLimiter.d.ts +109 -0
- package/dist/utils/security/rateLimiter.d.ts.map +1 -0
- package/dist/utils/security/rateLimiter.js +202 -0
- package/dist/utils/security/rateLimiter.js.map +1 -0
- package/dist/utils/security/sanitization.d.ts +185 -0
- package/dist/utils/security/sanitization.d.ts.map +1 -0
- package/dist/utils/security/sanitization.js +472 -0
- package/dist/utils/security/sanitization.js.map +1 -0
- package/dist/utils/telemetry/instrumentation.d.ts +8 -0
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
- package/dist/utils/telemetry/instrumentation.js +121 -0
- package/dist/utils/telemetry/instrumentation.js.map +1 -0
- package/dist/utils/telemetry/semconv.d.ts +16 -0
- package/dist/utils/telemetry/semconv.d.ts.map +1 -0
- package/dist/utils/telemetry/semconv.js +16 -0
- package/dist/utils/telemetry/semconv.js.map +1 -0
- package/package.json +161 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Toolset manager for YAML-based tools
|
|
3
|
+
* Replaces the suite system with toolset-based organization
|
|
4
|
+
*
|
|
5
|
+
* @module src/utils/yaml/toolsetManager
|
|
6
|
+
*/
|
|
7
|
+
import { SqlToolsetConfig, SqlToolsConfig } from "../../schemas/index.js";
|
|
8
|
+
import { RequestContext } from "../../../utils/internal/requestContext.js";
|
|
9
|
+
/**
|
|
10
|
+
* Global tools that are automatically added to all toolsets
|
|
11
|
+
* These tools are typically TypeScript-based tools that provide universal functionality
|
|
12
|
+
*/
|
|
13
|
+
export declare const GLOBAL_TOOLS: readonly ["describe_sql_object"];
|
|
14
|
+
/**
|
|
15
|
+
* Toolset information for MCP tool metadata
|
|
16
|
+
*/
|
|
17
|
+
export interface ToolsetInfo {
|
|
18
|
+
/** Tool name */
|
|
19
|
+
toolName: string;
|
|
20
|
+
/** Toolsets this tool belongs to */
|
|
21
|
+
toolsets: string[];
|
|
22
|
+
/** Toolset metadata for MCP */
|
|
23
|
+
toolsetMetadata: Record<string, SqlToolsetConfig>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Toolset statistics
|
|
27
|
+
*/
|
|
28
|
+
export interface ToolsetStats {
|
|
29
|
+
/** Total number of toolsets */
|
|
30
|
+
totalToolsets: number;
|
|
31
|
+
/** Total number of tools */
|
|
32
|
+
totalTools: number;
|
|
33
|
+
/** Tools that belong to multiple toolsets */
|
|
34
|
+
multiToolsetTools: string[];
|
|
35
|
+
/** Toolsets with their tool counts */
|
|
36
|
+
toolsetCounts: Record<string, number>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Toolset manager for YAML-based tools
|
|
40
|
+
* Manages toolset organization and metadata for MCP tools
|
|
41
|
+
*/
|
|
42
|
+
export declare class ToolsetManager {
|
|
43
|
+
private static instance;
|
|
44
|
+
private toolsetConfig;
|
|
45
|
+
private toolToToolsets;
|
|
46
|
+
private toolsetToTools;
|
|
47
|
+
/**
|
|
48
|
+
* Get the singleton instance of the ToolsetManager
|
|
49
|
+
*/
|
|
50
|
+
static getInstance(): ToolsetManager;
|
|
51
|
+
/**
|
|
52
|
+
* Initialize the toolset manager with YAML configuration
|
|
53
|
+
* @param config - YAML configuration with toolsets (can be enhanced with TypeScript tools)
|
|
54
|
+
* @param context - Request context for logging
|
|
55
|
+
*/
|
|
56
|
+
initialize(config: SqlToolsConfig, context?: RequestContext): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Get toolset information for a specific tool
|
|
59
|
+
* @param toolName - Name of the tool
|
|
60
|
+
* @returns Toolset information for the tool
|
|
61
|
+
*/
|
|
62
|
+
getToolsetInfo(toolName: string): ToolsetInfo;
|
|
63
|
+
/**
|
|
64
|
+
* Get all tools in a specific toolset
|
|
65
|
+
* @param toolsetName - Name of the toolset
|
|
66
|
+
* @returns Array of tool names in the toolset
|
|
67
|
+
*/
|
|
68
|
+
getToolsInToolset(toolsetName: string): string[];
|
|
69
|
+
/**
|
|
70
|
+
* Get all toolset names
|
|
71
|
+
* @returns Array of toolset names
|
|
72
|
+
*/
|
|
73
|
+
getAllToolsetNames(): string[];
|
|
74
|
+
/**
|
|
75
|
+
* Get toolset configuration
|
|
76
|
+
* @param toolsetName - Name of the toolset
|
|
77
|
+
* @returns Toolset configuration or undefined if not found
|
|
78
|
+
*/
|
|
79
|
+
getToolsetConfig(toolsetName: string): SqlToolsetConfig | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Get statistics about toolsets
|
|
82
|
+
* @returns Toolset statistics
|
|
83
|
+
*/
|
|
84
|
+
getToolsetStats(): ToolsetStats;
|
|
85
|
+
/**
|
|
86
|
+
* Check if a tool belongs to a specific toolset
|
|
87
|
+
* @param toolName - Name of the tool
|
|
88
|
+
* @param toolsetName - Name of the toolset
|
|
89
|
+
* @returns True if the tool belongs to the toolset
|
|
90
|
+
*/
|
|
91
|
+
isToolInToolset(toolName: string, toolsetName: string): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Get all tools with their toolset memberships
|
|
94
|
+
* @returns Map of tool names to their toolset arrays
|
|
95
|
+
*/
|
|
96
|
+
getAllToolToolsetMappings(): Map<string, string[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Filter tools by toolset
|
|
99
|
+
* @param toolsetName - Name of the toolset to filter by
|
|
100
|
+
* @param allTools - Array of all tool names
|
|
101
|
+
* @returns Array of tool names that belong to the toolset
|
|
102
|
+
*/
|
|
103
|
+
filterToolsByToolset(toolsetName: string, allTools: string[]): string[];
|
|
104
|
+
/**
|
|
105
|
+
* Generate MCP tool metadata with toolset information
|
|
106
|
+
* @param toolName - Name of the tool
|
|
107
|
+
* @param additionalMetadata - Additional metadata to merge
|
|
108
|
+
* @returns Metadata object suitable for MCP tool registration
|
|
109
|
+
*/
|
|
110
|
+
generateToolMetadata(toolName: string, additionalMetadata?: Record<string, unknown>): Record<string, unknown>;
|
|
111
|
+
/**
|
|
112
|
+
* Clear all toolset data (for testing)
|
|
113
|
+
*/
|
|
114
|
+
clearAll(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Get a summary of the toolset manager state
|
|
117
|
+
* @returns Summary object with current state
|
|
118
|
+
*/
|
|
119
|
+
getSummary(): {
|
|
120
|
+
toolsetCount: number;
|
|
121
|
+
toolCount: number;
|
|
122
|
+
totalMappings: number;
|
|
123
|
+
toolsWithMultipleToolsets: number;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=toolsetManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsetManager.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/toolsetManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAEL,cAAc,EACf,MAAM,oCAAoC,CAAC;AAI5C;;;GAGG;AACH,eAAO,MAAM,YAAY,kCAEf,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,cAAc,CAAoC;IAE1D;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAOpC;;;;OAIG;IACG,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IA4FhB;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IA4B7C;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAIhD;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAInE;;;OAGG;IACH,eAAe,IAAI,YAAY;IAwB/B;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAK/D;;;OAGG;IACH,yBAAyB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAIlD;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAKvE;;;;;OAKG;IACH,oBAAoB,CAClB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAC/C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAW1B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAMhB;;;OAGG;IACH,UAAU,IAAI;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,yBAAyB,EAAE,MAAM,CAAC;KACnC;CAaF"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Toolset manager for YAML-based tools
|
|
3
|
+
* Replaces the suite system with toolset-based organization
|
|
4
|
+
*
|
|
5
|
+
* @module src/utils/yaml/toolsetManager
|
|
6
|
+
*/
|
|
7
|
+
import { ErrorHandler, logger } from "../../../utils/internal/index.js";
|
|
8
|
+
import { requestContextService, } from "../../../utils/internal/requestContext.js";
|
|
9
|
+
import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
|
|
10
|
+
import { TOOL_NAME } from "../../tools/generateSql/registration.js";
|
|
11
|
+
/**
|
|
12
|
+
* Global tools that are automatically added to all toolsets
|
|
13
|
+
* These tools are typically TypeScript-based tools that provide universal functionality
|
|
14
|
+
*/
|
|
15
|
+
export const GLOBAL_TOOLS = [
|
|
16
|
+
TOOL_NAME, // SQL DDL generation tool - available to all toolsets
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Toolset manager for YAML-based tools
|
|
20
|
+
* Manages toolset organization and metadata for MCP tools
|
|
21
|
+
*/
|
|
22
|
+
export class ToolsetManager {
|
|
23
|
+
static instance;
|
|
24
|
+
toolsetConfig = {};
|
|
25
|
+
toolToToolsets = new Map();
|
|
26
|
+
toolsetToTools = new Map();
|
|
27
|
+
/**
|
|
28
|
+
* Get the singleton instance of the ToolsetManager
|
|
29
|
+
*/
|
|
30
|
+
static getInstance() {
|
|
31
|
+
if (!ToolsetManager.instance) {
|
|
32
|
+
ToolsetManager.instance = new ToolsetManager();
|
|
33
|
+
}
|
|
34
|
+
return ToolsetManager.instance;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Initialize the toolset manager with YAML configuration
|
|
38
|
+
* @param config - YAML configuration with toolsets (can be enhanced with TypeScript tools)
|
|
39
|
+
* @param context - Request context for logging
|
|
40
|
+
*/
|
|
41
|
+
async initialize(config, context) {
|
|
42
|
+
const operationContext = context ||
|
|
43
|
+
requestContextService.createRequestContext({
|
|
44
|
+
operation: "InitializeToolsetManager",
|
|
45
|
+
});
|
|
46
|
+
return ErrorHandler.tryCatch(async () => {
|
|
47
|
+
logger.info({
|
|
48
|
+
...operationContext,
|
|
49
|
+
toolsetCount: config.toolsets
|
|
50
|
+
? Object.keys(config.toolsets).length
|
|
51
|
+
: 0,
|
|
52
|
+
toolCount: Object.keys(config.tools || {}).length,
|
|
53
|
+
}, "Initializing toolset manager");
|
|
54
|
+
// Clear existing data
|
|
55
|
+
this.toolsetConfig = {};
|
|
56
|
+
this.toolToToolsets.clear();
|
|
57
|
+
this.toolsetToTools.clear();
|
|
58
|
+
// Log global tools that will be added to all toolsets
|
|
59
|
+
logger.debug({
|
|
60
|
+
...operationContext,
|
|
61
|
+
globalTools: GLOBAL_TOOLS,
|
|
62
|
+
}, "Global tools will be automatically added to all toolsets");
|
|
63
|
+
// Process toolsets if they exist
|
|
64
|
+
if (config.toolsets) {
|
|
65
|
+
this.toolsetConfig = { ...config.toolsets };
|
|
66
|
+
// Build toolset-to-tool mappings with global tools
|
|
67
|
+
for (const [toolsetName, toolset] of Object.entries(config.toolsets)) {
|
|
68
|
+
// Combine toolset-specific tools with global tools
|
|
69
|
+
const allToolsForToolset = [...toolset.tools, ...GLOBAL_TOOLS];
|
|
70
|
+
this.toolsetToTools.set(toolsetName, allToolsForToolset);
|
|
71
|
+
// Build tool-to-toolset mappings for both regular and global tools
|
|
72
|
+
for (const toolName of allToolsForToolset) {
|
|
73
|
+
if (!this.toolToToolsets.has(toolName)) {
|
|
74
|
+
this.toolToToolsets.set(toolName, []);
|
|
75
|
+
}
|
|
76
|
+
this.toolToToolsets.get(toolName).push(toolsetName);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Validate that all tools referenced in toolsets exist
|
|
81
|
+
const allToolNames = [
|
|
82
|
+
...Object.keys(config.tools || {}), // Regular YAML tools
|
|
83
|
+
...GLOBAL_TOOLS, // Global tools (TypeScript-based)
|
|
84
|
+
];
|
|
85
|
+
for (const [toolsetName, toolset] of Object.entries(this.toolsetConfig)) {
|
|
86
|
+
for (const toolName of toolset.tools) {
|
|
87
|
+
if (!allToolNames.includes(toolName)) {
|
|
88
|
+
throw new McpError(JsonRpcErrorCode.ValidationError, `Toolset '${toolsetName}' references unknown tool '${toolName}'. Available tools: ${allToolNames.join(", ")}`, { toolsetName, toolName, availableTools: allToolNames });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
logger.info({
|
|
93
|
+
...operationContext,
|
|
94
|
+
toolsetCount: Object.keys(this.toolsetConfig).length,
|
|
95
|
+
toolCount: this.toolToToolsets.size,
|
|
96
|
+
}, "Toolset manager initialized successfully");
|
|
97
|
+
}, {
|
|
98
|
+
operation: "InitializeToolsetManager",
|
|
99
|
+
context: operationContext,
|
|
100
|
+
errorCode: JsonRpcErrorCode.InitializationFailed,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get toolset information for a specific tool
|
|
105
|
+
* @param toolName - Name of the tool
|
|
106
|
+
* @returns Toolset information for the tool
|
|
107
|
+
*/
|
|
108
|
+
getToolsetInfo(toolName) {
|
|
109
|
+
let toolsets = this.toolToToolsets.get(toolName) || [];
|
|
110
|
+
// If this is a global tool but not in the mapping, add it to all toolsets
|
|
111
|
+
if (GLOBAL_TOOLS.includes(toolName) &&
|
|
112
|
+
toolsets.length === 0) {
|
|
113
|
+
toolsets = Object.keys(this.toolsetConfig);
|
|
114
|
+
}
|
|
115
|
+
const toolsetMetadata = {};
|
|
116
|
+
// Build toolset metadata for the tool
|
|
117
|
+
for (const toolsetName of toolsets) {
|
|
118
|
+
const toolset = this.toolsetConfig[toolsetName];
|
|
119
|
+
if (toolset) {
|
|
120
|
+
toolsetMetadata[toolsetName] = toolset;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
toolName,
|
|
125
|
+
toolsets,
|
|
126
|
+
toolsetMetadata,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get all tools in a specific toolset
|
|
131
|
+
* @param toolsetName - Name of the toolset
|
|
132
|
+
* @returns Array of tool names in the toolset
|
|
133
|
+
*/
|
|
134
|
+
getToolsInToolset(toolsetName) {
|
|
135
|
+
return this.toolsetToTools.get(toolsetName) || [];
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get all toolset names
|
|
139
|
+
* @returns Array of toolset names
|
|
140
|
+
*/
|
|
141
|
+
getAllToolsetNames() {
|
|
142
|
+
return Object.keys(this.toolsetConfig);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get toolset configuration
|
|
146
|
+
* @param toolsetName - Name of the toolset
|
|
147
|
+
* @returns Toolset configuration or undefined if not found
|
|
148
|
+
*/
|
|
149
|
+
getToolsetConfig(toolsetName) {
|
|
150
|
+
return this.toolsetConfig[toolsetName];
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get statistics about toolsets
|
|
154
|
+
* @returns Toolset statistics
|
|
155
|
+
*/
|
|
156
|
+
getToolsetStats() {
|
|
157
|
+
const multiToolsetTools = [];
|
|
158
|
+
const toolsetCounts = {};
|
|
159
|
+
// Find tools that belong to multiple toolsets
|
|
160
|
+
for (const [toolName, toolsets] of this.toolToToolsets) {
|
|
161
|
+
if (toolsets.length > 1) {
|
|
162
|
+
multiToolsetTools.push(toolName);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Count tools per toolset
|
|
166
|
+
for (const [toolsetName, tools] of this.toolsetToTools) {
|
|
167
|
+
toolsetCounts[toolsetName] = tools.length;
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
totalToolsets: Object.keys(this.toolsetConfig).length,
|
|
171
|
+
totalTools: this.toolToToolsets.size,
|
|
172
|
+
multiToolsetTools,
|
|
173
|
+
toolsetCounts,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Check if a tool belongs to a specific toolset
|
|
178
|
+
* @param toolName - Name of the tool
|
|
179
|
+
* @param toolsetName - Name of the toolset
|
|
180
|
+
* @returns True if the tool belongs to the toolset
|
|
181
|
+
*/
|
|
182
|
+
isToolInToolset(toolName, toolsetName) {
|
|
183
|
+
const toolsets = this.toolToToolsets.get(toolName) || [];
|
|
184
|
+
return toolsets.includes(toolsetName);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get all tools with their toolset memberships
|
|
188
|
+
* @returns Map of tool names to their toolset arrays
|
|
189
|
+
*/
|
|
190
|
+
getAllToolToolsetMappings() {
|
|
191
|
+
return new Map(this.toolToToolsets);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Filter tools by toolset
|
|
195
|
+
* @param toolsetName - Name of the toolset to filter by
|
|
196
|
+
* @param allTools - Array of all tool names
|
|
197
|
+
* @returns Array of tool names that belong to the toolset
|
|
198
|
+
*/
|
|
199
|
+
filterToolsByToolset(toolsetName, allTools) {
|
|
200
|
+
const toolsInToolset = this.getToolsInToolset(toolsetName);
|
|
201
|
+
return allTools.filter((toolName) => toolsInToolset.includes(toolName));
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Generate MCP tool metadata with toolset information
|
|
205
|
+
* @param toolName - Name of the tool
|
|
206
|
+
* @param additionalMetadata - Additional metadata to merge
|
|
207
|
+
* @returns Metadata object suitable for MCP tool registration
|
|
208
|
+
*/
|
|
209
|
+
generateToolMetadata(toolName, additionalMetadata = {}) {
|
|
210
|
+
const toolsetInfo = this.getToolsetInfo(toolName);
|
|
211
|
+
return {
|
|
212
|
+
...additionalMetadata,
|
|
213
|
+
toolsets: toolsetInfo.toolsets,
|
|
214
|
+
toolsetMetadata: toolsetInfo.toolsetMetadata,
|
|
215
|
+
toolsetCount: toolsetInfo.toolsets.length,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Clear all toolset data (for testing)
|
|
220
|
+
*/
|
|
221
|
+
clearAll() {
|
|
222
|
+
this.toolsetConfig = {};
|
|
223
|
+
this.toolToToolsets.clear();
|
|
224
|
+
this.toolsetToTools.clear();
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get a summary of the toolset manager state
|
|
228
|
+
* @returns Summary object with current state
|
|
229
|
+
*/
|
|
230
|
+
getSummary() {
|
|
231
|
+
const stats = this.getToolsetStats();
|
|
232
|
+
return {
|
|
233
|
+
toolsetCount: stats.totalToolsets,
|
|
234
|
+
toolCount: stats.totalTools,
|
|
235
|
+
totalMappings: Array.from(this.toolToToolsets.values()).reduce((sum, toolsets) => sum + toolsets.length, 0),
|
|
236
|
+
toolsWithMultipleToolsets: stats.multiToolsetTools.length,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=toolsetManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolsetManager.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/toolsetManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Schema-derived type definitions
|
|
3
|
+
* All types are inferred from Zod schemas to ensure consistency between validation and TypeScript types
|
|
4
|
+
*
|
|
5
|
+
* @module src/ibmi-mcp-server/utils/config/types
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import type { ToolDefinition } from "./toolDefinitions.js";
|
|
9
|
+
import { standardSqlToolOutputSchema } from "./toolDefinitions.js";
|
|
10
|
+
import type { SourceConfig, SqlToolConfig, SqlToolsConfig } from "../../schemas/config.js";
|
|
11
|
+
/**
|
|
12
|
+
* Configuration source specification
|
|
13
|
+
*/
|
|
14
|
+
export interface ConfigSource {
|
|
15
|
+
/** Source type identifier */
|
|
16
|
+
type: "file" | "directory" | "glob";
|
|
17
|
+
/** Path or pattern */
|
|
18
|
+
path: string;
|
|
19
|
+
/** Optional base directory for relative paths */
|
|
20
|
+
baseDir?: string;
|
|
21
|
+
/** Whether this source is required */
|
|
22
|
+
required?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Configuration build result
|
|
26
|
+
*/
|
|
27
|
+
export interface ConfigBuildResult {
|
|
28
|
+
/** Whether build was successful */
|
|
29
|
+
success: boolean;
|
|
30
|
+
/** Merged configuration */
|
|
31
|
+
config?: SqlToolsConfig;
|
|
32
|
+
/** Build errors */
|
|
33
|
+
errors?: string[];
|
|
34
|
+
/** Build warnings */
|
|
35
|
+
warnings?: string[];
|
|
36
|
+
/** Build statistics */
|
|
37
|
+
stats?: {
|
|
38
|
+
sourcesLoaded: number;
|
|
39
|
+
sourcesMerged: number;
|
|
40
|
+
toolsTotal: number;
|
|
41
|
+
toolsetsTotal: number;
|
|
42
|
+
sourcesTotal: number;
|
|
43
|
+
};
|
|
44
|
+
/** Resolved file paths that contributed to this build */
|
|
45
|
+
resolvedFilePaths?: string[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Processed tool information after YAML parsing
|
|
49
|
+
* Includes resolved source and generated metadata
|
|
50
|
+
*/
|
|
51
|
+
export interface ProcessedSQLTool {
|
|
52
|
+
/** Tool name */
|
|
53
|
+
name: string;
|
|
54
|
+
/** Tool configuration from YAML */
|
|
55
|
+
config: SqlToolConfig;
|
|
56
|
+
/** Resolved source configuration */
|
|
57
|
+
source: SourceConfig;
|
|
58
|
+
/** Toolsets this tool belongs to */
|
|
59
|
+
toolsets: string[];
|
|
60
|
+
/** Generated tool metadata compatible with existing system */
|
|
61
|
+
metadata: {
|
|
62
|
+
name: string;
|
|
63
|
+
description: string;
|
|
64
|
+
domain?: string;
|
|
65
|
+
category?: string;
|
|
66
|
+
toolsets: string[];
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Cached tool configuration that contains all pre-processed data needed for fast registration
|
|
71
|
+
*/
|
|
72
|
+
export type SqlToolDefinition = ToolDefinition<z.ZodObject<Record<string, z.ZodTypeAny>>, typeof standardSqlToolOutputSchema>;
|
|
73
|
+
export type CachedToolConfig = SqlToolDefinition;
|
|
74
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACf,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,uBAAuB;IACvB,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,oCAAoC;IACpC,MAAM,EAAE,YAAY,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8DAA8D;IAC9D,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAC5C,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EACzC,OAAO,2BAA2B,CACnC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Schema-derived type definitions
|
|
3
|
+
* All types are inferred from Zod schemas to ensure consistency between validation and TypeScript types
|
|
4
|
+
*
|
|
5
|
+
* @module src/ibmi-mcp-server/utils/config/types
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview SQL Security Validator for validating SQL queries against security policies
|
|
3
|
+
* Provides both AST-based and regex-based validation with comprehensive security checks
|
|
4
|
+
*
|
|
5
|
+
* @module src/utils/security/sqlSecurityValidator
|
|
6
|
+
*/
|
|
7
|
+
import { RequestContext } from "../../../utils/internal/requestContext.js";
|
|
8
|
+
import { SqlToolSecurityConfig } from "../../schemas/index.js";
|
|
9
|
+
/**
|
|
10
|
+
* Security validation result
|
|
11
|
+
*/
|
|
12
|
+
export interface SecurityValidationResult {
|
|
13
|
+
/** Whether the validation passed */
|
|
14
|
+
isValid: boolean;
|
|
15
|
+
/** List of security violations found */
|
|
16
|
+
violations: string[];
|
|
17
|
+
/** Validation method used */
|
|
18
|
+
validationMethod: "ast" | "regex" | "combined";
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Dangerous SQL operations that should be blocked in read-only mode
|
|
22
|
+
*/
|
|
23
|
+
export declare const DANGEROUS_OPERATIONS: readonly ["INSERT", "UPDATE", "DELETE", "REPLACE", "MERGE", "TRUNCATE", "DROP", "CREATE", "ALTER", "RENAME", "CALL", "EXEC", "EXECUTE", "SET", "DECLARE", "GRANT", "REVOKE", "DENY", "LOAD", "IMPORT", "EXPORT", "BULK", "SHUTDOWN", "RESTART", "KILL", "STOP", "START", "BACKUP", "RESTORE", "DUMP", "LOCK", "UNLOCK", "COMMIT", "ROLLBACK", "SAVEPOINT", "QCMDEXC", "SQL_EXECUTE_IMMEDIATE"];
|
|
24
|
+
/**
|
|
25
|
+
* Dangerous SQL functions that should be monitored/blocked
|
|
26
|
+
*/
|
|
27
|
+
export declare const DANGEROUS_FUNCTIONS: readonly ["SYSTEM", "QCMDEXC", "SQL_EXECUTE_IMMEDIATE", "SQLCMD", "LOAD_EXTENSION", "EXEC", "EXECUTE_IMMEDIATE", "EVAL", "CONCAT", "CHAR", "VARCHAR"];
|
|
28
|
+
/**
|
|
29
|
+
* Dangerous SQL patterns that should be detected
|
|
30
|
+
*/
|
|
31
|
+
export declare const DANGEROUS_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp, RegExp];
|
|
32
|
+
/**
|
|
33
|
+
* SQL Security Validator class for comprehensive SQL security validation
|
|
34
|
+
*/
|
|
35
|
+
export declare class SqlSecurityValidator {
|
|
36
|
+
private static parser;
|
|
37
|
+
/**
|
|
38
|
+
* Validate SQL query against security configuration
|
|
39
|
+
* @param query - SQL query to validate
|
|
40
|
+
* @param securityConfig - Security configuration
|
|
41
|
+
* @param context - Request context for logging
|
|
42
|
+
* @throws {McpError} If validation fails
|
|
43
|
+
*/
|
|
44
|
+
static validateQuery(query: string, securityConfig: SqlToolSecurityConfig, context: RequestContext): void;
|
|
45
|
+
/**
|
|
46
|
+
* Validate query length against configured limits
|
|
47
|
+
* @param query - SQL query to validate
|
|
48
|
+
* @param securityConfig - Security configuration
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
private static validateQueryLength;
|
|
52
|
+
/**
|
|
53
|
+
* Validate forbidden keywords using both AST and regex approaches
|
|
54
|
+
* @param query - SQL query to validate
|
|
55
|
+
* @param securityConfig - Security configuration
|
|
56
|
+
* @param context - Request context for logging
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
private static validateForbiddenKeywords;
|
|
60
|
+
/**
|
|
61
|
+
* Validate read-only restrictions using comprehensive validation
|
|
62
|
+
* @param query - SQL query to validate
|
|
63
|
+
* @param context - Request context for logging
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
private static validateReadOnlyRestrictions;
|
|
67
|
+
/**
|
|
68
|
+
* Validate SQL query using AST parsing
|
|
69
|
+
* @param query - SQL query to validate
|
|
70
|
+
* @param context - Request context for logging
|
|
71
|
+
* @private
|
|
72
|
+
*/
|
|
73
|
+
private static validateQueryAST;
|
|
74
|
+
/**
|
|
75
|
+
* Validate SQL query using regex patterns
|
|
76
|
+
* @param query - SQL query to validate
|
|
77
|
+
* @param _context - Request context for logging (unused but kept for consistency)
|
|
78
|
+
* @private
|
|
79
|
+
*/
|
|
80
|
+
private static validateQueryRegex;
|
|
81
|
+
/**
|
|
82
|
+
* Validate forbidden keywords using AST parsing
|
|
83
|
+
* @param query - SQL query to validate
|
|
84
|
+
* @param forbiddenKeywords - List of forbidden keywords
|
|
85
|
+
* @param context - Request context for logging
|
|
86
|
+
* @private
|
|
87
|
+
*/
|
|
88
|
+
private static validateForbiddenKeywordsAST;
|
|
89
|
+
/**
|
|
90
|
+
* Validate forbidden keywords using regex patterns
|
|
91
|
+
* @param query - SQL query to validate
|
|
92
|
+
* @param forbiddenKeywords - List of forbidden keywords
|
|
93
|
+
* @private
|
|
94
|
+
*/
|
|
95
|
+
private static validateForbiddenKeywordsRegex;
|
|
96
|
+
/**
|
|
97
|
+
* Find dangerous functions anywhere in the AST
|
|
98
|
+
* @param node - AST node to analyze
|
|
99
|
+
* @private
|
|
100
|
+
*/
|
|
101
|
+
private static findDangerousFunctionsInAST;
|
|
102
|
+
/**
|
|
103
|
+
* Find forbidden keywords anywhere in the AST
|
|
104
|
+
* @param node - AST node to analyze
|
|
105
|
+
* @param forbiddenKeywords - List of forbidden keywords
|
|
106
|
+
* @private
|
|
107
|
+
*/
|
|
108
|
+
private static findForbiddenKeywordsInAST;
|
|
109
|
+
/**
|
|
110
|
+
* Check for UNION with dangerous statements
|
|
111
|
+
* @param statement - AST statement to check
|
|
112
|
+
* @private
|
|
113
|
+
*/
|
|
114
|
+
private static hasUnionWithDangerousStatements;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=sqlSecurityValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlSecurityValidator.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/security/sqlSecurityValidator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6BAA6B;IAC7B,gBAAgB,EAAE,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;CAChD;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,gYAgDvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,uJAYtB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,2EAcrB,CAAC;AAEX;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAgB;IAErC;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAClB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,qBAAqB,EACrC,OAAO,EAAE,cAAc,GACtB,IAAI;IA8BP;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAkBlC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAgDxC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAiC3C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA4E/B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAoCjC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAsC3C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,8BAA8B;IAuB7C;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IA+B1C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAuCzC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;CAmB/C"}
|