@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.
Files changed (482) hide show
  1. package/README.md +88 -0
  2. package/dist/config/index.d.ts +100 -0
  3. package/dist/config/index.d.ts.map +1 -0
  4. package/dist/config/index.js +463 -0
  5. package/dist/config/index.js.map +1 -0
  6. package/dist/config/resolver.d.ts +32 -0
  7. package/dist/config/resolver.d.ts.map +1 -0
  8. package/dist/config/resolver.js +60 -0
  9. package/dist/config/resolver.js.map +1 -0
  10. package/dist/ibmi-mcp-server/auth/crypto.d.ts +11 -0
  11. package/dist/ibmi-mcp-server/auth/crypto.d.ts.map +1 -0
  12. package/dist/ibmi-mcp-server/auth/crypto.js +100 -0
  13. package/dist/ibmi-mcp-server/auth/crypto.js.map +1 -0
  14. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts +28 -0
  15. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.d.ts.map +1 -0
  16. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js +243 -0
  17. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js.map +1 -0
  18. package/dist/ibmi-mcp-server/auth/index.d.ts +9 -0
  19. package/dist/ibmi-mcp-server/auth/index.d.ts.map +1 -0
  20. package/dist/ibmi-mcp-server/auth/index.js +8 -0
  21. package/dist/ibmi-mcp-server/auth/index.js.map +1 -0
  22. package/dist/ibmi-mcp-server/auth/tokenManager.d.ts +86 -0
  23. package/dist/ibmi-mcp-server/auth/tokenManager.d.ts.map +1 -0
  24. package/dist/ibmi-mcp-server/auth/tokenManager.js +214 -0
  25. package/dist/ibmi-mcp-server/auth/tokenManager.js.map +1 -0
  26. package/dist/ibmi-mcp-server/auth/types.d.ts +31 -0
  27. package/dist/ibmi-mcp-server/auth/types.d.ts.map +1 -0
  28. package/dist/ibmi-mcp-server/auth/types.js +5 -0
  29. package/dist/ibmi-mcp-server/auth/types.js.map +1 -0
  30. package/dist/ibmi-mcp-server/index.d.ts +8 -0
  31. package/dist/ibmi-mcp-server/index.d.ts.map +1 -0
  32. package/dist/ibmi-mcp-server/index.js +126 -0
  33. package/dist/ibmi-mcp-server/index.js.map +1 -0
  34. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts +7 -0
  35. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.d.ts.map +1 -0
  36. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js +7 -0
  37. package/dist/ibmi-mcp-server/resources/toolsetsResource/index.js.map +1 -0
  38. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts +106 -0
  39. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.d.ts.map +1 -0
  40. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js +145 -0
  41. package/dist/ibmi-mcp-server/resources/toolsetsResource/logic.js.map +1 -0
  42. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts +16 -0
  43. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.d.ts.map +1 -0
  44. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js +110 -0
  45. package/dist/ibmi-mcp-server/resources/toolsetsResource/registration.js.map +1 -0
  46. package/dist/ibmi-mcp-server/schemas/common.d.ts +174 -0
  47. package/dist/ibmi-mcp-server/schemas/common.d.ts.map +1 -0
  48. package/dist/ibmi-mcp-server/schemas/common.js +119 -0
  49. package/dist/ibmi-mcp-server/schemas/common.js.map +1 -0
  50. package/dist/ibmi-mcp-server/schemas/config.d.ts +858 -0
  51. package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -0
  52. package/dist/ibmi-mcp-server/schemas/config.js +248 -0
  53. package/dist/ibmi-mcp-server/schemas/config.js.map +1 -0
  54. package/dist/ibmi-mcp-server/schemas/index.d.ts +12 -0
  55. package/dist/ibmi-mcp-server/schemas/index.d.ts.map +1 -0
  56. package/dist/ibmi-mcp-server/schemas/index.js +20 -0
  57. package/dist/ibmi-mcp-server/schemas/index.js.map +1 -0
  58. package/dist/ibmi-mcp-server/schemas/tools.d.ts +287 -0
  59. package/dist/ibmi-mcp-server/schemas/tools.d.ts.map +1 -0
  60. package/dist/ibmi-mcp-server/schemas/tools.js +167 -0
  61. package/dist/ibmi-mcp-server/schemas/tools.js.map +1 -0
  62. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +82 -0
  63. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -0
  64. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +262 -0
  65. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -0
  66. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +130 -0
  67. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -0
  68. package/dist/ibmi-mcp-server/services/baseConnectionPool.js +431 -0
  69. package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -0
  70. package/dist/ibmi-mcp-server/services/connectionPool.d.ts +60 -0
  71. package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -0
  72. package/dist/ibmi-mcp-server/services/connectionPool.js +153 -0
  73. package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -0
  74. package/dist/ibmi-mcp-server/services/securityValidation.d.ts +35 -0
  75. package/dist/ibmi-mcp-server/services/securityValidation.d.ts.map +1 -0
  76. package/dist/ibmi-mcp-server/services/securityValidation.js +93 -0
  77. package/dist/ibmi-mcp-server/services/securityValidation.js.map +1 -0
  78. package/dist/ibmi-mcp-server/services/sourceManager.d.ts +82 -0
  79. package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -0
  80. package/dist/ibmi-mcp-server/services/sourceManager.js +151 -0
  81. package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -0
  82. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +9 -0
  83. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +1 -0
  84. package/dist/ibmi-mcp-server/tools/executeSql/index.js +9 -0
  85. package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +1 -0
  86. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +51 -0
  87. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +1 -0
  88. package/dist/ibmi-mcp-server/tools/executeSql/logic.js +179 -0
  89. package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +1 -0
  90. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +52 -0
  91. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +1 -0
  92. package/dist/ibmi-mcp-server/tools/executeSql/registration.js +161 -0
  93. package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +1 -0
  94. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +13 -0
  95. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +1 -0
  96. package/dist/ibmi-mcp-server/tools/generateSql/index.js +13 -0
  97. package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +1 -0
  98. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +64 -0
  99. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +1 -0
  100. package/dist/ibmi-mcp-server/tools/generateSql/logic.js +190 -0
  101. package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +1 -0
  102. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +18 -0
  103. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +1 -0
  104. package/dist/ibmi-mcp-server/tools/generateSql/registration.js +64 -0
  105. package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +1 -0
  106. package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts +42 -0
  107. package/dist/ibmi-mcp-server/utils/cli/argumentParser.d.ts.map +1 -0
  108. package/dist/ibmi-mcp-server/utils/cli/argumentParser.js +156 -0
  109. package/dist/ibmi-mcp-server/utils/cli/argumentParser.js.map +1 -0
  110. package/dist/ibmi-mcp-server/utils/cli/index.d.ts +6 -0
  111. package/dist/ibmi-mcp-server/utils/cli/index.d.ts.map +1 -0
  112. package/dist/ibmi-mcp-server/utils/cli/index.js +6 -0
  113. package/dist/ibmi-mcp-server/utils/cli/index.js.map +1 -0
  114. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +77 -0
  115. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -0
  116. package/dist/ibmi-mcp-server/utils/config/configParser.js +309 -0
  117. package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -0
  118. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts +143 -0
  119. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -0
  120. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +665 -0
  121. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -0
  122. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts +71 -0
  123. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.d.ts.map +1 -0
  124. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js +158 -0
  125. package/dist/ibmi-mcp-server/utils/config/toolConfigCache.js.map +1 -0
  126. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +206 -0
  127. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -0
  128. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +236 -0
  129. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -0
  130. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +65 -0
  131. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -0
  132. package/dist/ibmi-mcp-server/utils/config/toolFactory.js +236 -0
  133. package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -0
  134. package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts +175 -0
  135. package/dist/ibmi-mcp-server/utils/config/toolProcessor.d.ts.map +1 -0
  136. package/dist/ibmi-mcp-server/utils/config/toolProcessor.js +460 -0
  137. package/dist/ibmi-mcp-server/utils/config/toolProcessor.js.map +1 -0
  138. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +126 -0
  139. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -0
  140. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +240 -0
  141. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -0
  142. package/dist/ibmi-mcp-server/utils/config/types.d.ts +74 -0
  143. package/dist/ibmi-mcp-server/utils/config/types.d.ts.map +1 -0
  144. package/dist/ibmi-mcp-server/utils/config/types.js +8 -0
  145. package/dist/ibmi-mcp-server/utils/config/types.js.map +1 -0
  146. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +116 -0
  147. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -0
  148. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +426 -0
  149. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -0
  150. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts +182 -0
  151. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.d.ts.map +1 -0
  152. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js +726 -0
  153. package/dist/ibmi-mcp-server/utils/sql/parameterProcessor.js.map +1 -0
  154. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts +90 -0
  155. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.d.ts.map +1 -0
  156. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js +187 -0
  157. package/dist/ibmi-mcp-server/utils/sql/sqlTemplateProcessor.js.map +1 -0
  158. package/dist/index.d.ts +10 -0
  159. package/dist/index.d.ts.map +1 -0
  160. package/dist/index.js +270 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/mcp-server/constants.d.ts +13 -0
  163. package/dist/mcp-server/constants.d.ts.map +1 -0
  164. package/dist/mcp-server/constants.js +13 -0
  165. package/dist/mcp-server/constants.js.map +1 -0
  166. package/dist/mcp-server/logging/index.d.ts +8 -0
  167. package/dist/mcp-server/logging/index.d.ts.map +1 -0
  168. package/dist/mcp-server/logging/index.js +8 -0
  169. package/dist/mcp-server/logging/index.js.map +1 -0
  170. package/dist/mcp-server/logging/setLevelHandler.d.ts +38 -0
  171. package/dist/mcp-server/logging/setLevelHandler.d.ts.map +1 -0
  172. package/dist/mcp-server/logging/setLevelHandler.js +83 -0
  173. package/dist/mcp-server/logging/setLevelHandler.js.map +1 -0
  174. package/dist/mcp-server/resources/echoResource/index.d.ts +14 -0
  175. package/dist/mcp-server/resources/echoResource/index.d.ts.map +1 -0
  176. package/dist/mcp-server/resources/echoResource/index.js +14 -0
  177. package/dist/mcp-server/resources/echoResource/index.js.map +1 -0
  178. package/dist/mcp-server/resources/echoResource/logic.d.ts +37 -0
  179. package/dist/mcp-server/resources/echoResource/logic.d.ts.map +1 -0
  180. package/dist/mcp-server/resources/echoResource/logic.js +46 -0
  181. package/dist/mcp-server/resources/echoResource/logic.js.map +1 -0
  182. package/dist/mcp-server/resources/echoResource/registration.d.ts +7 -0
  183. package/dist/mcp-server/resources/echoResource/registration.d.ts.map +1 -0
  184. package/dist/mcp-server/resources/echoResource/registration.js +51 -0
  185. package/dist/mcp-server/resources/echoResource/registration.js.map +1 -0
  186. package/dist/mcp-server/resources/index.d.ts +10 -0
  187. package/dist/mcp-server/resources/index.d.ts.map +1 -0
  188. package/dist/mcp-server/resources/index.js +19 -0
  189. package/dist/mcp-server/resources/index.js.map +1 -0
  190. package/dist/mcp-server/resources/utils/resource-utils.d.ts +43 -0
  191. package/dist/mcp-server/resources/utils/resource-utils.d.ts.map +1 -0
  192. package/dist/mcp-server/resources/utils/resource-utils.js +44 -0
  193. package/dist/mcp-server/resources/utils/resource-utils.js.map +1 -0
  194. package/dist/mcp-server/server.d.ts +23 -0
  195. package/dist/mcp-server/server.d.ts.map +1 -0
  196. package/dist/mcp-server/server.js +114 -0
  197. package/dist/mcp-server/server.js.map +1 -0
  198. package/dist/mcp-server/tools/catFactFetcher/index.d.ts +8 -0
  199. package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +1 -0
  200. package/dist/mcp-server/tools/catFactFetcher/index.js +8 -0
  201. package/dist/mcp-server/tools/catFactFetcher/index.js.map +1 -0
  202. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +52 -0
  203. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +1 -0
  204. package/dist/mcp-server/tools/catFactFetcher/logic.js +95 -0
  205. package/dist/mcp-server/tools/catFactFetcher/logic.js.map +1 -0
  206. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +9 -0
  207. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +1 -0
  208. package/dist/mcp-server/tools/catFactFetcher/registration.js +43 -0
  209. package/dist/mcp-server/tools/catFactFetcher/registration.js.map +1 -0
  210. package/dist/mcp-server/tools/echoTool/index.d.ts +13 -0
  211. package/dist/mcp-server/tools/echoTool/index.d.ts.map +1 -0
  212. package/dist/mcp-server/tools/echoTool/index.js +13 -0
  213. package/dist/mcp-server/tools/echoTool/index.js.map +1 -0
  214. package/dist/mcp-server/tools/echoTool/logic.d.ts +69 -0
  215. package/dist/mcp-server/tools/echoTool/logic.d.ts.map +1 -0
  216. package/dist/mcp-server/tools/echoTool/logic.js +119 -0
  217. package/dist/mcp-server/tools/echoTool/logic.js.map +1 -0
  218. package/dist/mcp-server/tools/echoTool/registration.d.ts +9 -0
  219. package/dist/mcp-server/tools/echoTool/registration.d.ts.map +1 -0
  220. package/dist/mcp-server/tools/echoTool/registration.js +45 -0
  221. package/dist/mcp-server/tools/echoTool/registration.js.map +1 -0
  222. package/dist/mcp-server/tools/imageTest/index.d.ts +7 -0
  223. package/dist/mcp-server/tools/imageTest/index.d.ts.map +1 -0
  224. package/dist/mcp-server/tools/imageTest/index.js +7 -0
  225. package/dist/mcp-server/tools/imageTest/index.js.map +1 -0
  226. package/dist/mcp-server/tools/imageTest/logic.d.ts +27 -0
  227. package/dist/mcp-server/tools/imageTest/logic.d.ts.map +1 -0
  228. package/dist/mcp-server/tools/imageTest/logic.js +44 -0
  229. package/dist/mcp-server/tools/imageTest/logic.js.map +1 -0
  230. package/dist/mcp-server/tools/imageTest/registration.d.ts +9 -0
  231. package/dist/mcp-server/tools/imageTest/registration.d.ts.map +1 -0
  232. package/dist/mcp-server/tools/imageTest/registration.js +49 -0
  233. package/dist/mcp-server/tools/imageTest/registration.js.map +1 -0
  234. package/dist/mcp-server/tools/index.d.ts +4 -0
  235. package/dist/mcp-server/tools/index.d.ts.map +1 -0
  236. package/dist/mcp-server/tools/index.js +13 -0
  237. package/dist/mcp-server/tools/index.js.map +1 -0
  238. package/dist/mcp-server/tools/utils/tool-utils.d.ts +43 -0
  239. package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +1 -0
  240. package/dist/mcp-server/tools/utils/tool-utils.js +44 -0
  241. package/dist/mcp-server/tools/utils/tool-utils.js.map +1 -0
  242. package/dist/mcp-server/transports/auth/authFactory.d.ts +11 -0
  243. package/dist/mcp-server/transports/auth/authFactory.d.ts.map +1 -0
  244. package/dist/mcp-server/transports/auth/authFactory.js +46 -0
  245. package/dist/mcp-server/transports/auth/authFactory.js.map +1 -0
  246. package/dist/mcp-server/transports/auth/authMiddleware.d.ts +20 -0
  247. package/dist/mcp-server/transports/auth/authMiddleware.d.ts.map +1 -0
  248. package/dist/mcp-server/transports/auth/authMiddleware.js +58 -0
  249. package/dist/mcp-server/transports/auth/authMiddleware.js.map +1 -0
  250. package/dist/mcp-server/transports/auth/index.d.ts +14 -0
  251. package/dist/mcp-server/transports/auth/index.d.ts.map +1 -0
  252. package/dist/mcp-server/transports/auth/index.js +12 -0
  253. package/dist/mcp-server/transports/auth/index.js.map +1 -0
  254. package/dist/mcp-server/transports/auth/lib/authContext.d.ts +34 -0
  255. package/dist/mcp-server/transports/auth/lib/authContext.d.ts.map +1 -0
  256. package/dist/mcp-server/transports/auth/lib/authContext.js +25 -0
  257. package/dist/mcp-server/transports/auth/lib/authContext.js.map +1 -0
  258. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts +15 -0
  259. package/dist/mcp-server/transports/auth/lib/authTypes.d.ts.map +1 -0
  260. package/dist/mcp-server/transports/auth/lib/authTypes.js +9 -0
  261. package/dist/mcp-server/transports/auth/lib/authTypes.js.map +1 -0
  262. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +19 -0
  263. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -0
  264. package/dist/mcp-server/transports/auth/lib/authUtils.js +53 -0
  265. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -0
  266. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts +18 -0
  267. package/dist/mcp-server/transports/auth/strategies/authStrategy.d.ts.map +1 -0
  268. package/dist/mcp-server/transports/auth/strategies/authStrategy.js +2 -0
  269. package/dist/mcp-server/transports/auth/strategies/authStrategy.js.map +1 -0
  270. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts +21 -0
  271. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.d.ts.map +1 -0
  272. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js +64 -0
  273. package/dist/mcp-server/transports/auth/strategies/ibmiTokenStrategy.js.map +1 -0
  274. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts +8 -0
  275. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -0
  276. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +118 -0
  277. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -0
  278. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts +8 -0
  279. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -0
  280. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +118 -0
  281. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -0
  282. package/dist/mcp-server/transports/core/autoTransportManager.d.ts +48 -0
  283. package/dist/mcp-server/transports/core/autoTransportManager.d.ts.map +1 -0
  284. package/dist/mcp-server/transports/core/autoTransportManager.js +57 -0
  285. package/dist/mcp-server/transports/core/autoTransportManager.js.map +1 -0
  286. package/dist/mcp-server/transports/core/baseTransportManager.d.ts +17 -0
  287. package/dist/mcp-server/transports/core/baseTransportManager.d.ts.map +1 -0
  288. package/dist/mcp-server/transports/core/baseTransportManager.js +20 -0
  289. package/dist/mcp-server/transports/core/baseTransportManager.js.map +1 -0
  290. package/dist/mcp-server/transports/core/headerUtils.d.ts +27 -0
  291. package/dist/mcp-server/transports/core/headerUtils.d.ts.map +1 -0
  292. package/dist/mcp-server/transports/core/headerUtils.js +53 -0
  293. package/dist/mcp-server/transports/core/headerUtils.js.map +1 -0
  294. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +77 -0
  295. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +1 -0
  296. package/dist/mcp-server/transports/core/honoNodeBridge.js +150 -0
  297. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +1 -0
  298. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +81 -0
  299. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -0
  300. package/dist/mcp-server/transports/core/statefulTransportManager.js +326 -0
  301. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -0
  302. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +57 -0
  303. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -0
  304. package/dist/mcp-server/transports/core/statelessTransportManager.js +151 -0
  305. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -0
  306. package/dist/mcp-server/transports/core/transportRequest.d.ts +9 -0
  307. package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -0
  308. package/dist/mcp-server/transports/core/transportRequest.js +2 -0
  309. package/dist/mcp-server/transports/core/transportRequest.js.map +1 -0
  310. package/dist/mcp-server/transports/core/transportTypes.d.ts +112 -0
  311. package/dist/mcp-server/transports/core/transportTypes.d.ts.map +1 -0
  312. package/dist/mcp-server/transports/core/transportTypes.js +15 -0
  313. package/dist/mcp-server/transports/core/transportTypes.js.map +1 -0
  314. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts +25 -0
  315. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -0
  316. package/dist/mcp-server/transports/http/httpErrorHandler.js +86 -0
  317. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -0
  318. package/dist/mcp-server/transports/http/httpTransport.d.ts +27 -0
  319. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -0
  320. package/dist/mcp-server/transports/http/httpTransport.js +407 -0
  321. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -0
  322. package/dist/mcp-server/transports/http/httpTypes.d.ts +17 -0
  323. package/dist/mcp-server/transports/http/httpTypes.d.ts.map +1 -0
  324. package/dist/mcp-server/transports/http/httpTypes.js +6 -0
  325. package/dist/mcp-server/transports/http/httpTypes.js.map +1 -0
  326. package/dist/mcp-server/transports/http/index.d.ts +8 -0
  327. package/dist/mcp-server/transports/http/index.d.ts.map +1 -0
  328. package/dist/mcp-server/transports/http/index.js +7 -0
  329. package/dist/mcp-server/transports/http/index.js.map +1 -0
  330. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts +21 -0
  331. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -0
  332. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +54 -0
  333. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -0
  334. package/dist/mcp-server/transports/stdio/index.d.ts +6 -0
  335. package/dist/mcp-server/transports/stdio/index.d.ts.map +1 -0
  336. package/dist/mcp-server/transports/stdio/index.js +6 -0
  337. package/dist/mcp-server/transports/stdio/index.js.map +1 -0
  338. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +43 -0
  339. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -0
  340. package/dist/mcp-server/transports/stdio/stdioTransport.js +71 -0
  341. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -0
  342. package/dist/services/duck-db/duckDBConnectionManager.d.ts +55 -0
  343. package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +1 -0
  344. package/dist/services/duck-db/duckDBConnectionManager.js +184 -0
  345. package/dist/services/duck-db/duckDBConnectionManager.js.map +1 -0
  346. package/dist/services/duck-db/duckDBQueryExecutor.d.ts +18 -0
  347. package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +1 -0
  348. package/dist/services/duck-db/duckDBQueryExecutor.js +115 -0
  349. package/dist/services/duck-db/duckDBQueryExecutor.js.map +1 -0
  350. package/dist/services/duck-db/duckDBService.d.ts +27 -0
  351. package/dist/services/duck-db/duckDBService.d.ts.map +1 -0
  352. package/dist/services/duck-db/duckDBService.js +151 -0
  353. package/dist/services/duck-db/duckDBService.js.map +1 -0
  354. package/dist/services/duck-db/types.d.ts +135 -0
  355. package/dist/services/duck-db/types.d.ts.map +1 -0
  356. package/dist/services/duck-db/types.js +6 -0
  357. package/dist/services/duck-db/types.js.map +1 -0
  358. package/dist/services/llm-providers/openRouterProvider.d.ts +36 -0
  359. package/dist/services/llm-providers/openRouterProvider.d.ts.map +1 -0
  360. package/dist/services/llm-providers/openRouterProvider.js +235 -0
  361. package/dist/services/llm-providers/openRouterProvider.js.map +1 -0
  362. package/dist/services/supabase/supabaseClient.d.ts +25 -0
  363. package/dist/services/supabase/supabaseClient.d.ts.map +1 -0
  364. package/dist/services/supabase/supabaseClient.js +68 -0
  365. package/dist/services/supabase/supabaseClient.js.map +1 -0
  366. package/dist/storage/duckdbExample.d.ts +8 -0
  367. package/dist/storage/duckdbExample.d.ts.map +1 -0
  368. package/dist/storage/duckdbExample.js +197 -0
  369. package/dist/storage/duckdbExample.js.map +1 -0
  370. package/dist/types-global/errors.d.ts +101 -0
  371. package/dist/types-global/errors.d.ts.map +1 -0
  372. package/dist/types-global/errors.js +109 -0
  373. package/dist/types-global/errors.js.map +1 -0
  374. package/dist/utils/formatting/index.d.ts +10 -0
  375. package/dist/utils/formatting/index.d.ts.map +1 -0
  376. package/dist/utils/formatting/index.js +10 -0
  377. package/dist/utils/formatting/index.js.map +1 -0
  378. package/dist/utils/formatting/markdownBuilder.d.ts +348 -0
  379. package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -0
  380. package/dist/utils/formatting/markdownBuilder.js +501 -0
  381. package/dist/utils/formatting/markdownBuilder.js.map +1 -0
  382. package/dist/utils/formatting/sqlFormattingUtils.d.ts +69 -0
  383. package/dist/utils/formatting/sqlFormattingUtils.d.ts.map +1 -0
  384. package/dist/utils/formatting/sqlFormattingUtils.js +131 -0
  385. package/dist/utils/formatting/sqlFormattingUtils.js.map +1 -0
  386. package/dist/utils/formatting/tableFormatter.d.ts +268 -0
  387. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -0
  388. package/dist/utils/formatting/tableFormatter.js +550 -0
  389. package/dist/utils/formatting/tableFormatter.js.map +1 -0
  390. package/dist/utils/index.d.ts +13 -0
  391. package/dist/utils/index.d.ts.map +1 -0
  392. package/dist/utils/index.js +21 -0
  393. package/dist/utils/index.js.map +1 -0
  394. package/dist/utils/internal/asyncContext.d.ts +35 -0
  395. package/dist/utils/internal/asyncContext.d.ts.map +1 -0
  396. package/dist/utils/internal/asyncContext.js +38 -0
  397. package/dist/utils/internal/asyncContext.js.map +1 -0
  398. package/dist/utils/internal/errorHandler.d.ts +95 -0
  399. package/dist/utils/internal/errorHandler.d.ts.map +1 -0
  400. package/dist/utils/internal/errorHandler.js +210 -0
  401. package/dist/utils/internal/errorHandler.js.map +1 -0
  402. package/dist/utils/internal/index.d.ts +12 -0
  403. package/dist/utils/internal/index.d.ts.map +1 -0
  404. package/dist/utils/internal/index.js +12 -0
  405. package/dist/utils/internal/index.js.map +1 -0
  406. package/dist/utils/internal/logger.d.ts +30 -0
  407. package/dist/utils/internal/logger.d.ts.map +1 -0
  408. package/dist/utils/internal/logger.js +228 -0
  409. package/dist/utils/internal/logger.js.map +1 -0
  410. package/dist/utils/internal/logging-helpers.d.ts +49 -0
  411. package/dist/utils/internal/logging-helpers.d.ts.map +1 -0
  412. package/dist/utils/internal/logging-helpers.js +60 -0
  413. package/dist/utils/internal/logging-helpers.js.map +1 -0
  414. package/dist/utils/internal/performance.d.ts +19 -0
  415. package/dist/utils/internal/performance.d.ts.map +1 -0
  416. package/dist/utils/internal/performance.js +110 -0
  417. package/dist/utils/internal/performance.js.map +1 -0
  418. package/dist/utils/internal/requestContext.d.ts +41 -0
  419. package/dist/utils/internal/requestContext.d.ts.map +1 -0
  420. package/dist/utils/internal/requestContext.js +47 -0
  421. package/dist/utils/internal/requestContext.js.map +1 -0
  422. package/dist/utils/metrics/index.d.ts +8 -0
  423. package/dist/utils/metrics/index.d.ts.map +1 -0
  424. package/dist/utils/metrics/index.js +8 -0
  425. package/dist/utils/metrics/index.js.map +1 -0
  426. package/dist/utils/metrics/tokenCounter.d.ts +36 -0
  427. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -0
  428. package/dist/utils/metrics/tokenCounter.js +115 -0
  429. package/dist/utils/metrics/tokenCounter.js.map +1 -0
  430. package/dist/utils/network/fetchWithTimeout.d.ts +22 -0
  431. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -0
  432. package/dist/utils/network/fetchWithTimeout.js +78 -0
  433. package/dist/utils/network/fetchWithTimeout.js.map +1 -0
  434. package/dist/utils/network/index.d.ts +7 -0
  435. package/dist/utils/network/index.d.ts.map +1 -0
  436. package/dist/utils/network/index.js +6 -0
  437. package/dist/utils/network/index.js.map +1 -0
  438. package/dist/utils/parsing/dateParser.d.ts +73 -0
  439. package/dist/utils/parsing/dateParser.d.ts.map +1 -0
  440. package/dist/utils/parsing/dateParser.js +108 -0
  441. package/dist/utils/parsing/dateParser.js.map +1 -0
  442. package/dist/utils/parsing/index.d.ts +9 -0
  443. package/dist/utils/parsing/index.d.ts.map +1 -0
  444. package/dist/utils/parsing/index.js +9 -0
  445. package/dist/utils/parsing/index.js.map +1 -0
  446. package/dist/utils/parsing/jsonParser.d.ts +83 -0
  447. package/dist/utils/parsing/jsonParser.d.ts.map +1 -0
  448. package/dist/utils/parsing/jsonParser.js +128 -0
  449. package/dist/utils/parsing/jsonParser.js.map +1 -0
  450. package/dist/utils/scheduling/index.d.ts +7 -0
  451. package/dist/utils/scheduling/index.d.ts.map +1 -0
  452. package/dist/utils/scheduling/index.js +7 -0
  453. package/dist/utils/scheduling/index.js.map +1 -0
  454. package/dist/utils/scheduling/scheduler.d.ts +73 -0
  455. package/dist/utils/scheduling/scheduler.d.ts.map +1 -0
  456. package/dist/utils/scheduling/scheduler.js +155 -0
  457. package/dist/utils/scheduling/scheduler.js.map +1 -0
  458. package/dist/utils/security/idGenerator.d.ts +144 -0
  459. package/dist/utils/security/idGenerator.d.ts.map +1 -0
  460. package/dist/utils/security/idGenerator.js +232 -0
  461. package/dist/utils/security/idGenerator.js.map +1 -0
  462. package/dist/utils/security/index.d.ts +10 -0
  463. package/dist/utils/security/index.d.ts.map +1 -0
  464. package/dist/utils/security/index.js +10 -0
  465. package/dist/utils/security/index.js.map +1 -0
  466. package/dist/utils/security/rateLimiter.d.ts +109 -0
  467. package/dist/utils/security/rateLimiter.d.ts.map +1 -0
  468. package/dist/utils/security/rateLimiter.js +202 -0
  469. package/dist/utils/security/rateLimiter.js.map +1 -0
  470. package/dist/utils/security/sanitization.d.ts +185 -0
  471. package/dist/utils/security/sanitization.d.ts.map +1 -0
  472. package/dist/utils/security/sanitization.js +472 -0
  473. package/dist/utils/security/sanitization.js.map +1 -0
  474. package/dist/utils/telemetry/instrumentation.d.ts +8 -0
  475. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -0
  476. package/dist/utils/telemetry/instrumentation.js +121 -0
  477. package/dist/utils/telemetry/instrumentation.js.map +1 -0
  478. package/dist/utils/telemetry/semconv.d.ts +16 -0
  479. package/dist/utils/telemetry/semconv.d.ts.map +1 -0
  480. package/dist/utils/telemetry/semconv.js +16 -0
  481. package/dist/utils/telemetry/semconv.js.map +1 -0
  482. 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"}