@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,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview YAML Tool Processor - Simplified pipeline for YAML tool processing
|
|
3
|
+
* Consolidates YAML parsing, tool configuration creation, and dependency management
|
|
4
|
+
* into a single, cohesive class with a simple 3-step workflow: parse → create → cache
|
|
5
|
+
*
|
|
6
|
+
* @module src/ibmi-mcp-server/utils/yaml/yamlToolProcessor
|
|
7
|
+
*/
|
|
8
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
|
+
import { RequestContext } from "../../../utils/internal/requestContext.js";
|
|
10
|
+
import { CachedToolConfig, ConfigBuildResult } from "./types.js";
|
|
11
|
+
import { SqlToolsConfig } from "../../schemas/index.js";
|
|
12
|
+
/**
|
|
13
|
+
* Result of tool processing operation
|
|
14
|
+
*/
|
|
15
|
+
export interface ToolProcessingResult {
|
|
16
|
+
/** Whether processing was successful */
|
|
17
|
+
success: boolean;
|
|
18
|
+
/** Number of tools processed */
|
|
19
|
+
toolCount: number;
|
|
20
|
+
/** Number of sources registered */
|
|
21
|
+
sourceCount: number;
|
|
22
|
+
/** Error message if processing failed */
|
|
23
|
+
error?: string;
|
|
24
|
+
/** Processing statistics */
|
|
25
|
+
stats?: {
|
|
26
|
+
toolsProcessed: number;
|
|
27
|
+
sourcesRegistered: number;
|
|
28
|
+
toolsetMappings: number;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* YAML Tool Processor - Simplified pipeline for YAML tool processing
|
|
33
|
+
*
|
|
34
|
+
* Provides a clean, simple workflow:
|
|
35
|
+
* 1. Parse YAML tools from configuration
|
|
36
|
+
* 2. Create standardized tool configurations
|
|
37
|
+
* 3. Cache configurations for fast registration
|
|
38
|
+
*
|
|
39
|
+
* Internally manages all dependencies and complexity, exposing only a simple API.
|
|
40
|
+
*/
|
|
41
|
+
export declare class ToolProcessor {
|
|
42
|
+
private sourceManager;
|
|
43
|
+
private toolsetManager;
|
|
44
|
+
private isInitialized;
|
|
45
|
+
private yamlConfig;
|
|
46
|
+
private processedTools;
|
|
47
|
+
private toolConfigs;
|
|
48
|
+
private static changeCallbacks;
|
|
49
|
+
private static nextCallbackId;
|
|
50
|
+
private static watchers;
|
|
51
|
+
private static watchedPaths;
|
|
52
|
+
constructor();
|
|
53
|
+
/**
|
|
54
|
+
* Initialize the processor and all internal dependencies
|
|
55
|
+
* @param context - Request context for logging
|
|
56
|
+
*/
|
|
57
|
+
initialize(context?: RequestContext): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Process YAML tools into standardized configurations
|
|
60
|
+
* @param context - Request context for logging
|
|
61
|
+
* @returns Tool processing result
|
|
62
|
+
*/
|
|
63
|
+
processTools(context?: RequestContext): Promise<ToolProcessingResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Register processed tools with MCP server
|
|
66
|
+
* @param server - MCP server instance
|
|
67
|
+
* @param context - Request context for logging
|
|
68
|
+
*/
|
|
69
|
+
registerWithServer(server: McpServer, context?: RequestContext): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Get processed tool configurations (for caching)
|
|
72
|
+
* @returns Array of cached tool configurations
|
|
73
|
+
*/
|
|
74
|
+
getToolConfigurations(): CachedToolConfig[];
|
|
75
|
+
/**
|
|
76
|
+
* Get the YAML configuration
|
|
77
|
+
* @returns The parsed YAML configuration
|
|
78
|
+
*/
|
|
79
|
+
getYamlConfig(): SqlToolsConfig | null;
|
|
80
|
+
/**
|
|
81
|
+
* Check if a tool should be registered based on toolsets filtering
|
|
82
|
+
* @param toolName - Name of the tool to check
|
|
83
|
+
* @returns Whether the tool should be registered
|
|
84
|
+
*/
|
|
85
|
+
shouldRegisterToolPublic(toolName: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Check if a tool should be registered based on toolsets filtering
|
|
88
|
+
* @param toolName - Name of the tool to check
|
|
89
|
+
* @returns Whether the tool should be registered
|
|
90
|
+
* @private
|
|
91
|
+
*/
|
|
92
|
+
private shouldRegisterTool;
|
|
93
|
+
/**
|
|
94
|
+
* Get processing statistics
|
|
95
|
+
* @returns Processing statistics
|
|
96
|
+
*/
|
|
97
|
+
getStats(): {
|
|
98
|
+
initialized: boolean;
|
|
99
|
+
toolCount: number;
|
|
100
|
+
sourceCount: number;
|
|
101
|
+
toolsetCount: number;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Parse YAML configuration from configured path
|
|
105
|
+
* @param context - Request context for logging
|
|
106
|
+
* @returns Parsed YAML configuration
|
|
107
|
+
* @private
|
|
108
|
+
*/
|
|
109
|
+
private parseYamlConfig;
|
|
110
|
+
/**
|
|
111
|
+
* Build configuration sources based on YAML tools path type
|
|
112
|
+
* @param yamlToolsPath - Path to YAML tools
|
|
113
|
+
* @param context - Request context
|
|
114
|
+
* @private
|
|
115
|
+
*/
|
|
116
|
+
private buildConfigSources;
|
|
117
|
+
/**
|
|
118
|
+
* Register sources from YAML configuration
|
|
119
|
+
* @param sources - Source configurations
|
|
120
|
+
* @param context - Request context
|
|
121
|
+
* @private
|
|
122
|
+
*/
|
|
123
|
+
private registerSources;
|
|
124
|
+
/**
|
|
125
|
+
* Process tools from YAML configuration
|
|
126
|
+
* @param _context - Request context
|
|
127
|
+
* @returns Array of processed tools
|
|
128
|
+
* @private
|
|
129
|
+
*/
|
|
130
|
+
private processYamlTools;
|
|
131
|
+
/**
|
|
132
|
+
* Create tool configurations from processed tools using standardized builder
|
|
133
|
+
* @param processedTools - Array of processed tools
|
|
134
|
+
* @param context - Request context
|
|
135
|
+
* @returns Array of cached tool configurations
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
private createToolConfigurations;
|
|
139
|
+
/**
|
|
140
|
+
* Clear all data and reset (for testing)
|
|
141
|
+
*/
|
|
142
|
+
clearAll(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Register a callback to be called when YAML configuration files change
|
|
145
|
+
* @param callback - Function to call when files change
|
|
146
|
+
* @returns Callback ID for unregistering
|
|
147
|
+
*/
|
|
148
|
+
static registerChangeCallback(callback: (filePath: string, eventType: string, context?: RequestContext) => void): string;
|
|
149
|
+
/**
|
|
150
|
+
* Unregister a change callback
|
|
151
|
+
* @param callbackId - ID returned from registerChangeCallback
|
|
152
|
+
* @returns True if callback was found and removed
|
|
153
|
+
*/
|
|
154
|
+
static unregisterChangeCallback(callbackId: string): boolean;
|
|
155
|
+
/**
|
|
156
|
+
* Get the number of registered change callbacks
|
|
157
|
+
* @returns Number of registered callbacks
|
|
158
|
+
*/
|
|
159
|
+
static getCallbackCount(): number;
|
|
160
|
+
/**
|
|
161
|
+
* Start watching YAML configuration files for changes
|
|
162
|
+
* @param filePaths - Array of file paths to watch
|
|
163
|
+
* @param context - Request context for logging
|
|
164
|
+
*/
|
|
165
|
+
static startWatching(filePaths: string[], context?: RequestContext): void;
|
|
166
|
+
/**
|
|
167
|
+
* Stop watching all files and clear watchers
|
|
168
|
+
*/
|
|
169
|
+
static clearWatchers(): void;
|
|
170
|
+
static fromFile(filePath: string, context?: RequestContext): Promise<ConfigBuildResult>;
|
|
171
|
+
static fromFiles(filePaths: string[], context?: RequestContext): Promise<ConfigBuildResult>;
|
|
172
|
+
static fromDirectory(directoryPath: string, context?: RequestContext): Promise<ConfigBuildResult>;
|
|
173
|
+
static fromGlob(pattern: string, baseDir?: string, context?: RequestContext): Promise<ConfigBuildResult>;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=toolProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolProcessor.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/toolProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview YAML Tool Processor - Simplified pipeline for YAML tool processing
|
|
3
|
+
* Consolidates YAML parsing, tool configuration creation, and dependency management
|
|
4
|
+
* into a single, cohesive class with a simple 3-step workflow: parse → create → cache
|
|
5
|
+
*
|
|
6
|
+
* @module src/ibmi-mcp-server/utils/yaml/yamlToolProcessor
|
|
7
|
+
*/
|
|
8
|
+
import { watch } from "fs";
|
|
9
|
+
import { config } from "../../../config/index.js";
|
|
10
|
+
import { SourceManager } from "../../services/sourceManager.js";
|
|
11
|
+
import { SQLToolFactory } from "./toolFactory.js";
|
|
12
|
+
import { ToolsetManager } from "./toolsetManager.js";
|
|
13
|
+
import { ErrorHandler, logger } from "../../../utils/internal/index.js";
|
|
14
|
+
import { requestContextService, } from "../../../utils/internal/requestContext.js";
|
|
15
|
+
import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
|
|
16
|
+
import { resolve } from "path";
|
|
17
|
+
import { existsSync, statSync } from "fs";
|
|
18
|
+
import { ToolConfigBuilder } from "./toolConfigBuilder.js";
|
|
19
|
+
import { createHandlerFromDefinition } from "./toolDefinitions.js";
|
|
20
|
+
/**
|
|
21
|
+
* YAML Tool Processor - Simplified pipeline for YAML tool processing
|
|
22
|
+
*
|
|
23
|
+
* Provides a clean, simple workflow:
|
|
24
|
+
* 1. Parse YAML tools from configuration
|
|
25
|
+
* 2. Create standardized tool configurations
|
|
26
|
+
* 3. Cache configurations for fast registration
|
|
27
|
+
*
|
|
28
|
+
* Internally manages all dependencies and complexity, exposing only a simple API.
|
|
29
|
+
*/
|
|
30
|
+
export class ToolProcessor {
|
|
31
|
+
sourceManager;
|
|
32
|
+
toolsetManager;
|
|
33
|
+
isInitialized = false;
|
|
34
|
+
yamlConfig = null;
|
|
35
|
+
processedTools = [];
|
|
36
|
+
toolConfigs = [];
|
|
37
|
+
// File watching capabilities
|
|
38
|
+
static changeCallbacks = new Map();
|
|
39
|
+
static nextCallbackId = 1;
|
|
40
|
+
static watchers = new Map();
|
|
41
|
+
static watchedPaths = new Set();
|
|
42
|
+
constructor() {
|
|
43
|
+
// Initialize internal dependencies
|
|
44
|
+
this.sourceManager = SourceManager.getInstance();
|
|
45
|
+
this.toolsetManager = ToolsetManager.getInstance();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Initialize the processor and all internal dependencies
|
|
49
|
+
* @param context - Request context for logging
|
|
50
|
+
*/
|
|
51
|
+
async initialize(context) {
|
|
52
|
+
const operationContext = context ||
|
|
53
|
+
requestContextService.createRequestContext({
|
|
54
|
+
operation: "ToolProcessor.initialize",
|
|
55
|
+
});
|
|
56
|
+
return ErrorHandler.tryCatch(async () => {
|
|
57
|
+
if (this.isInitialized) {
|
|
58
|
+
logger.debug(operationContext, "ToolProcessor already initialized");
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
logger.info(operationContext, "Initializing YAML Tool Processor");
|
|
62
|
+
// Validate configuration
|
|
63
|
+
if (!config.toolsYamlPath) {
|
|
64
|
+
throw new McpError(JsonRpcErrorCode.InvalidParams, "YAML tools path not configured. Please set TOOLS_YAML_PATH.", { toolsYamlPath: config.toolsYamlPath });
|
|
65
|
+
}
|
|
66
|
+
// Parse YAML configuration
|
|
67
|
+
this.yamlConfig = await this.parseYamlConfig(operationContext);
|
|
68
|
+
// Register sources with source manager
|
|
69
|
+
if (this.yamlConfig.sources) {
|
|
70
|
+
await this.registerSources(this.yamlConfig.sources, operationContext);
|
|
71
|
+
}
|
|
72
|
+
// Initialize SQL executor
|
|
73
|
+
SQLToolFactory.initialize(this.sourceManager);
|
|
74
|
+
// Initialize toolset manager
|
|
75
|
+
await this.toolsetManager.initialize(this.yamlConfig, operationContext);
|
|
76
|
+
this.isInitialized = true;
|
|
77
|
+
logger.info(operationContext, "YAML Tool Processor initialized successfully");
|
|
78
|
+
}, {
|
|
79
|
+
operation: "ToolProcessor.initialize",
|
|
80
|
+
context: operationContext,
|
|
81
|
+
errorCode: JsonRpcErrorCode.InternalError,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Process YAML tools into standardized configurations
|
|
86
|
+
* @param context - Request context for logging
|
|
87
|
+
* @returns Tool processing result
|
|
88
|
+
*/
|
|
89
|
+
async processTools(context) {
|
|
90
|
+
const operationContext = context ||
|
|
91
|
+
requestContextService.createRequestContext({
|
|
92
|
+
operation: "ToolProcessor.processTools",
|
|
93
|
+
});
|
|
94
|
+
return ErrorHandler.tryCatch(async () => {
|
|
95
|
+
if (!this.isInitialized) {
|
|
96
|
+
throw new McpError(JsonRpcErrorCode.InternalError, "ToolProcessor not initialized. Call initialize() first.");
|
|
97
|
+
}
|
|
98
|
+
logger.info(operationContext, "Processing YAML tools into configurations");
|
|
99
|
+
// Process tools from YAML config
|
|
100
|
+
this.processedTools = await this.processYamlTools(operationContext);
|
|
101
|
+
// Apply toolsets filtering if specified
|
|
102
|
+
let filteredTools = this.processedTools;
|
|
103
|
+
const selectedToolsets = config.selectedToolsets;
|
|
104
|
+
if (selectedToolsets &&
|
|
105
|
+
Array.isArray(selectedToolsets) &&
|
|
106
|
+
selectedToolsets.length > 0) {
|
|
107
|
+
const configBuilder = ToolConfigBuilder.getInstance();
|
|
108
|
+
filteredTools = configBuilder.filterToolsByToolsets(this.processedTools, selectedToolsets);
|
|
109
|
+
logger.info(operationContext, `Filtered tools by toolsets [${selectedToolsets.join(", ")}]: ${filteredTools.length}/${this.processedTools.length} tools selected`);
|
|
110
|
+
}
|
|
111
|
+
// Create tool configurations
|
|
112
|
+
this.toolConfigs = await this.createToolConfigurations(filteredTools, operationContext);
|
|
113
|
+
const result = {
|
|
114
|
+
success: true,
|
|
115
|
+
toolCount: this.toolConfigs.length,
|
|
116
|
+
sourceCount: Object.keys(this.yamlConfig?.sources || {}).length,
|
|
117
|
+
stats: {
|
|
118
|
+
toolsProcessed: this.processedTools.length,
|
|
119
|
+
sourcesRegistered: Object.keys(this.sourceManager.getSourcesStatus()).length,
|
|
120
|
+
toolsetMappings: this.toolsetManager.getToolsetStats().totalTools,
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
logger.info({ ...operationContext, result }, `YAML tools processed successfully: ${result.toolCount} tools, ${result.sourceCount} sources`);
|
|
124
|
+
return result;
|
|
125
|
+
}, {
|
|
126
|
+
operation: "ToolProcessor.processTools",
|
|
127
|
+
context: operationContext,
|
|
128
|
+
errorCode: JsonRpcErrorCode.InternalError,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Register processed tools with MCP server
|
|
133
|
+
* @param server - MCP server instance
|
|
134
|
+
* @param context - Request context for logging
|
|
135
|
+
*/
|
|
136
|
+
async registerWithServer(server, context) {
|
|
137
|
+
const operationContext = context ||
|
|
138
|
+
requestContextService.createRequestContext({
|
|
139
|
+
operation: "ToolProcessor.registerWithServer",
|
|
140
|
+
});
|
|
141
|
+
return ErrorHandler.tryCatch(async () => {
|
|
142
|
+
// Register YAML-generated tools
|
|
143
|
+
if (this.toolConfigs.length > 0) {
|
|
144
|
+
logger.info(operationContext, `Registering ${this.toolConfigs.length} YAML-generated tools with MCP server`);
|
|
145
|
+
let yamlRegisteredCount = 0;
|
|
146
|
+
for (const config of this.toolConfigs) {
|
|
147
|
+
try {
|
|
148
|
+
const handler = createHandlerFromDefinition(config);
|
|
149
|
+
server.registerTool(config.name, {
|
|
150
|
+
title: config.title,
|
|
151
|
+
description: config.description,
|
|
152
|
+
inputSchema: config.inputSchema.shape,
|
|
153
|
+
outputSchema: config.outputSchema.shape,
|
|
154
|
+
annotations: config.annotations,
|
|
155
|
+
}, handler);
|
|
156
|
+
yamlRegisteredCount++;
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
logger.error(operationContext, `Failed to register YAML tool ${config.name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
logger.info(operationContext, `Successfully registered ${yamlRegisteredCount} YAML-generated tools`);
|
|
163
|
+
}
|
|
164
|
+
logger.info(operationContext, `Total tools registered with MCP server: ${this.toolConfigs.length}`);
|
|
165
|
+
}, {
|
|
166
|
+
operation: "ToolProcessor.registerWithServer",
|
|
167
|
+
context: operationContext,
|
|
168
|
+
errorCode: JsonRpcErrorCode.InternalError,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get processed tool configurations (for caching)
|
|
173
|
+
* @returns Array of cached tool configurations
|
|
174
|
+
*/
|
|
175
|
+
getToolConfigurations() {
|
|
176
|
+
return [...this.toolConfigs];
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get the YAML configuration
|
|
180
|
+
* @returns The parsed YAML configuration
|
|
181
|
+
*/
|
|
182
|
+
getYamlConfig() {
|
|
183
|
+
return this.yamlConfig;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Check if a tool should be registered based on toolsets filtering
|
|
187
|
+
* @param toolName - Name of the tool to check
|
|
188
|
+
* @returns Whether the tool should be registered
|
|
189
|
+
*/
|
|
190
|
+
shouldRegisterToolPublic(toolName) {
|
|
191
|
+
return this.shouldRegisterTool(toolName);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Check if a tool should be registered based on toolsets filtering
|
|
195
|
+
* @param toolName - Name of the tool to check
|
|
196
|
+
* @returns Whether the tool should be registered
|
|
197
|
+
* @private
|
|
198
|
+
*/
|
|
199
|
+
shouldRegisterTool(toolName) {
|
|
200
|
+
const selectedToolsets = config.selectedToolsets;
|
|
201
|
+
// If no toolsets filter is applied, register all tools
|
|
202
|
+
if (!selectedToolsets || selectedToolsets.length === 0) {
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
// Find which toolsets contain this tool
|
|
206
|
+
if (!this.yamlConfig?.toolsets) {
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
for (const [toolsetName, toolsetConfig] of Object.entries(this.yamlConfig.toolsets)) {
|
|
210
|
+
if (toolsetConfig.tools.includes(toolName) &&
|
|
211
|
+
selectedToolsets.includes(toolsetName)) {
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Get processing statistics
|
|
219
|
+
* @returns Processing statistics
|
|
220
|
+
*/
|
|
221
|
+
getStats() {
|
|
222
|
+
return {
|
|
223
|
+
initialized: this.isInitialized,
|
|
224
|
+
toolCount: this.toolConfigs.length,
|
|
225
|
+
sourceCount: Object.keys(this.yamlConfig?.sources || {}).length,
|
|
226
|
+
toolsetCount: Object.keys(this.toolsetManager.getSummary()).length,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Parse YAML configuration from configured path
|
|
231
|
+
* @param context - Request context for logging
|
|
232
|
+
* @returns Parsed YAML configuration
|
|
233
|
+
* @private
|
|
234
|
+
*/
|
|
235
|
+
async parseYamlConfig(context) {
|
|
236
|
+
const configBuilder = ToolConfigBuilder.getInstance();
|
|
237
|
+
// Configure sources based on configured path
|
|
238
|
+
const sources = this.buildConfigSources(config.toolsYamlPath, context);
|
|
239
|
+
// Build configuration using ToolConfigBuilder
|
|
240
|
+
const configResult = await configBuilder.buildFromSources(sources, undefined, context);
|
|
241
|
+
if (!configResult.success || !configResult.config) {
|
|
242
|
+
const errorMessage = configResult.errors
|
|
243
|
+
? configResult.errors.join(", ")
|
|
244
|
+
: "Unknown build error";
|
|
245
|
+
throw new McpError(JsonRpcErrorCode.InvalidParams, `Failed to build YAML configuration: ${errorMessage}`, {
|
|
246
|
+
toolsYamlPath: config.toolsYamlPath,
|
|
247
|
+
errors: configResult.errors,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
if (configResult.resolvedFilePaths?.length) {
|
|
251
|
+
ToolProcessor.startWatching(configResult.resolvedFilePaths, context);
|
|
252
|
+
}
|
|
253
|
+
return configResult.config;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Build configuration sources based on YAML tools path type
|
|
257
|
+
* @param yamlToolsPath - Path to YAML tools
|
|
258
|
+
* @param context - Request context
|
|
259
|
+
* @private
|
|
260
|
+
*/
|
|
261
|
+
buildConfigSources(yamlToolsPath, context) {
|
|
262
|
+
if (Array.isArray(yamlToolsPath)) {
|
|
263
|
+
return yamlToolsPath.map((path) => ({
|
|
264
|
+
type: "file",
|
|
265
|
+
path,
|
|
266
|
+
required: true,
|
|
267
|
+
}));
|
|
268
|
+
}
|
|
269
|
+
const resolvedPath = resolve(yamlToolsPath);
|
|
270
|
+
if (existsSync(resolvedPath)) {
|
|
271
|
+
const stats = statSync(resolvedPath);
|
|
272
|
+
if (stats.isDirectory()) {
|
|
273
|
+
logger.debug(context, `Detected directory path: ${yamlToolsPath}`);
|
|
274
|
+
return [{ type: "directory", path: yamlToolsPath, required: true }];
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
logger.debug(context, `Detected file path: ${yamlToolsPath}`);
|
|
278
|
+
return [{ type: "file", path: yamlToolsPath, required: true }];
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
// Path doesn't exist, treat as file (ToolConfigBuilder will validate appropriately)
|
|
283
|
+
return [{ type: "file", path: yamlToolsPath, required: true }];
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Register sources from YAML configuration
|
|
288
|
+
* @param sources - Source configurations
|
|
289
|
+
* @param context - Request context
|
|
290
|
+
* @private
|
|
291
|
+
*/
|
|
292
|
+
async registerSources(sources, context) {
|
|
293
|
+
logger.info(context, `Registering ${Object.keys(sources).length} sources`);
|
|
294
|
+
for (const [sourceName, sourceConfig] of Object.entries(sources)) {
|
|
295
|
+
await this.sourceManager.registerSource(sourceName, sourceConfig, context);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Process tools from YAML configuration
|
|
300
|
+
* @param _context - Request context
|
|
301
|
+
* @returns Array of processed tools
|
|
302
|
+
* @private
|
|
303
|
+
*/
|
|
304
|
+
async processYamlTools(_context) {
|
|
305
|
+
const processedTools = [];
|
|
306
|
+
if (!this.yamlConfig?.tools) {
|
|
307
|
+
return processedTools;
|
|
308
|
+
}
|
|
309
|
+
for (const [toolName, toolConfig] of Object.entries(this.yamlConfig.tools)) {
|
|
310
|
+
const sourceConfig = this.yamlConfig.sources?.[toolConfig.source];
|
|
311
|
+
if (!sourceConfig) {
|
|
312
|
+
throw new McpError(JsonRpcErrorCode.InvalidParams, `Tool '${toolName}' references non-existent source '${toolConfig.source}'`);
|
|
313
|
+
}
|
|
314
|
+
// Find toolsets that contain this tool
|
|
315
|
+
const toolsets = [];
|
|
316
|
+
if (this.yamlConfig.toolsets) {
|
|
317
|
+
for (const [toolsetName, toolsetConfig] of Object.entries(this.yamlConfig.toolsets)) {
|
|
318
|
+
if (toolsetConfig.tools.includes(toolName)) {
|
|
319
|
+
toolsets.push(toolsetName);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
processedTools.push({
|
|
324
|
+
name: toolName,
|
|
325
|
+
config: toolConfig,
|
|
326
|
+
source: sourceConfig,
|
|
327
|
+
toolsets,
|
|
328
|
+
metadata: {
|
|
329
|
+
name: toolName,
|
|
330
|
+
description: toolConfig.description,
|
|
331
|
+
domain: toolConfig.domain,
|
|
332
|
+
category: toolConfig.category,
|
|
333
|
+
toolsets,
|
|
334
|
+
},
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
return processedTools;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Create tool configurations from processed tools using standardized builder
|
|
341
|
+
* @param processedTools - Array of processed tools
|
|
342
|
+
* @param context - Request context
|
|
343
|
+
* @returns Array of cached tool configurations
|
|
344
|
+
* @private
|
|
345
|
+
*/
|
|
346
|
+
async createToolConfigurations(processedTools, context) {
|
|
347
|
+
const { ToolConfigBuilder } = await import("./toolConfigBuilder.js");
|
|
348
|
+
const configBuilder = ToolConfigBuilder.getInstance();
|
|
349
|
+
const toolConfigs = [];
|
|
350
|
+
for (const processedTool of processedTools) {
|
|
351
|
+
const toolConfig = await configBuilder.buildToolConfig(processedTool.name, processedTool.config, processedTool.toolsets, context);
|
|
352
|
+
toolConfigs.push(toolConfig);
|
|
353
|
+
}
|
|
354
|
+
return toolConfigs;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Clear all data and reset (for testing)
|
|
358
|
+
*/
|
|
359
|
+
clearAll() {
|
|
360
|
+
this.sourceManager.clearAllSources();
|
|
361
|
+
this.toolsetManager.clearAll();
|
|
362
|
+
this.isInitialized = false;
|
|
363
|
+
this.yamlConfig = null;
|
|
364
|
+
this.processedTools = [];
|
|
365
|
+
this.toolConfigs = [];
|
|
366
|
+
}
|
|
367
|
+
// ============================================================================
|
|
368
|
+
// Simplified File Watching (moved from YamlConfigBuilder)
|
|
369
|
+
// ============================================================================
|
|
370
|
+
/**
|
|
371
|
+
* Register a callback to be called when YAML configuration files change
|
|
372
|
+
* @param callback - Function to call when files change
|
|
373
|
+
* @returns Callback ID for unregistering
|
|
374
|
+
*/
|
|
375
|
+
static registerChangeCallback(callback) {
|
|
376
|
+
const id = `callback_${ToolProcessor.nextCallbackId++}`;
|
|
377
|
+
ToolProcessor.changeCallbacks.set(id, callback);
|
|
378
|
+
return id;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Unregister a change callback
|
|
382
|
+
* @param callbackId - ID returned from registerChangeCallback
|
|
383
|
+
* @returns True if callback was found and removed
|
|
384
|
+
*/
|
|
385
|
+
static unregisterChangeCallback(callbackId) {
|
|
386
|
+
return ToolProcessor.changeCallbacks.delete(callbackId);
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Get the number of registered change callbacks
|
|
390
|
+
* @returns Number of registered callbacks
|
|
391
|
+
*/
|
|
392
|
+
static getCallbackCount() {
|
|
393
|
+
return ToolProcessor.changeCallbacks.size;
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Start watching YAML configuration files for changes
|
|
397
|
+
* @param filePaths - Array of file paths to watch
|
|
398
|
+
* @param context - Request context for logging
|
|
399
|
+
*/
|
|
400
|
+
static startWatching(filePaths, context) {
|
|
401
|
+
if (!config.yamlAutoReload) {
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
for (const filePath of filePaths) {
|
|
405
|
+
if (ToolProcessor.watchedPaths.has(filePath)) {
|
|
406
|
+
continue; // Already watching this path
|
|
407
|
+
}
|
|
408
|
+
try {
|
|
409
|
+
const watcher = watch(filePath, { persistent: false }, (eventType) => {
|
|
410
|
+
logger.info(context || {}, `YAML file changed (${eventType}): ${filePath}`);
|
|
411
|
+
// Call all registered callbacks
|
|
412
|
+
for (const callback of ToolProcessor.changeCallbacks.values()) {
|
|
413
|
+
try {
|
|
414
|
+
callback(filePath, eventType, context);
|
|
415
|
+
}
|
|
416
|
+
catch (error) {
|
|
417
|
+
logger.error(context || {}, `Error in YAML change callback: ${error instanceof Error ? error.message : String(error)}`);
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
ToolProcessor.watchers.set(filePath, watcher);
|
|
422
|
+
ToolProcessor.watchedPaths.add(filePath);
|
|
423
|
+
logger.debug(context || {}, `Started watching YAML file: ${filePath}`);
|
|
424
|
+
}
|
|
425
|
+
catch (error) {
|
|
426
|
+
logger.warning(context || {}, `Failed to watch YAML file: ${filePath}. ${error instanceof Error ? error.message : String(error)}`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Stop watching all files and clear watchers
|
|
432
|
+
*/
|
|
433
|
+
static clearWatchers() {
|
|
434
|
+
for (const watcher of ToolProcessor.watchers.values()) {
|
|
435
|
+
try {
|
|
436
|
+
watcher.close();
|
|
437
|
+
}
|
|
438
|
+
catch {
|
|
439
|
+
// Ignore errors when closing watchers
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
ToolProcessor.watchers.clear();
|
|
443
|
+
ToolProcessor.watchedPaths.clear();
|
|
444
|
+
ToolProcessor.changeCallbacks.clear();
|
|
445
|
+
}
|
|
446
|
+
// Static factory methods for convenience (replaces YamlConfigBuilder static methods)
|
|
447
|
+
static async fromFile(filePath, context) {
|
|
448
|
+
return ToolConfigBuilder.fromFile(filePath, context);
|
|
449
|
+
}
|
|
450
|
+
static async fromFiles(filePaths, context) {
|
|
451
|
+
return ToolConfigBuilder.fromFiles(filePaths, context);
|
|
452
|
+
}
|
|
453
|
+
static async fromDirectory(directoryPath, context) {
|
|
454
|
+
return ToolConfigBuilder.fromDirectory(directoryPath, context);
|
|
455
|
+
}
|
|
456
|
+
static async fromGlob(pattern, baseDir, context) {
|
|
457
|
+
return ToolConfigBuilder.fromGlob(pattern, baseDir, context);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
//# sourceMappingURL=toolProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolProcessor.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/toolProcessor.ts"],"names":[],"mappings":"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"}
|