@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,86 @@
1
+ /**
2
+ * @fileoverview Token management system for IBM i HTTP authentication.
3
+ * Handles secure token generation, validation, and lifecycle management.
4
+ *
5
+ * @module src/ibmi-mcp-server/auth/tokenManager
6
+ */
7
+ import { RequestContext } from "../../utils/index.js";
8
+ import type { DaemonServer } from "@ibm/mapepire-js";
9
+ /**
10
+ * IBM i credentials for authenticated sessions - using DaemonServer interface
11
+ */
12
+ export type IBMiCredentials = DaemonServer;
13
+ /**
14
+ * Token session metadata
15
+ */
16
+ export interface TokenSession {
17
+ token: string;
18
+ credentials: IBMiCredentials;
19
+ createdAt: Date;
20
+ expiresAt: Date;
21
+ lastUsed: Date;
22
+ }
23
+ /**
24
+ * Token generation and validation result
25
+ */
26
+ export interface TokenValidationResult {
27
+ valid: boolean;
28
+ session?: TokenSession;
29
+ error?: string;
30
+ }
31
+ /**
32
+ * Token manager for secure token generation and session management
33
+ */
34
+ export declare class TokenManager {
35
+ private static instance;
36
+ private sessions;
37
+ private cleanupTimer;
38
+ private constructor();
39
+ /**
40
+ * Get singleton instance of TokenManager
41
+ */
42
+ static getInstance(): TokenManager;
43
+ /**
44
+ * Generate a cryptographically secure bearer token (1024+ bytes)
45
+ * @param credentials - IBM i credentials for this session
46
+ * @param expirySeconds - Token lifetime in seconds (optional)
47
+ * @returns Generated token string
48
+ */
49
+ generateToken(credentials: IBMiCredentials, expirySeconds?: number, context?: RequestContext): string;
50
+ /**
51
+ * Validate a bearer token and return session info
52
+ * @param token - Bearer token to validate
53
+ * @returns Validation result with session info if valid
54
+ */
55
+ validateToken(token: string, context?: RequestContext): TokenValidationResult;
56
+ /**
57
+ * Revoke a specific token
58
+ * @param token - Token to revoke
59
+ */
60
+ revokeToken(token: string, context?: RequestContext): boolean;
61
+ /**
62
+ * Get current session statistics
63
+ */
64
+ getSessionStats(): {
65
+ totalSessions: number;
66
+ activeSessions: number;
67
+ expiredSessions: number;
68
+ };
69
+ /**
70
+ * Clean up expired tokens
71
+ */
72
+ private cleanupExpiredTokens;
73
+ /**
74
+ * Start the cleanup timer
75
+ */
76
+ private startCleanupTimer;
77
+ /**
78
+ * Stop the cleanup timer and clear all sessions
79
+ */
80
+ shutdown(): void;
81
+ /**
82
+ * Check if max concurrent sessions limit would be exceeded
83
+ */
84
+ canCreateNewSession(): boolean;
85
+ }
86
+ //# sourceMappingURL=tokenManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenManager.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/auth/tokenManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAEL,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,YAAY,CAA+B;IAEnD,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC;;;;;OAKG;IACH,aAAa,CACX,WAAW,EAAE,eAAe,EAC5B,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM;IAyCT;;;;OAIG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,cAAc,GACvB,qBAAqB;IAsDxB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO;IA2B7D;;OAEG;IACH,eAAe,IAAI;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB;IAoBD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAsBhB;;OAEG;IACH,mBAAmB,IAAI,OAAO;CAG/B"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * @fileoverview Token management system for IBM i HTTP authentication.
3
+ * Handles secure token generation, validation, and lifecycle management.
4
+ *
5
+ * @module src/ibmi-mcp-server/auth/tokenManager
6
+ */
7
+ import crypto from "crypto";
8
+ import { config } from "../../config/index.js";
9
+ import { logger, requestContextService, } from "../../utils/index.js";
10
+ /**
11
+ * Token manager for secure token generation and session management
12
+ */
13
+ export class TokenManager {
14
+ static instance;
15
+ sessions = new Map();
16
+ cleanupTimer = null;
17
+ constructor() {
18
+ this.startCleanupTimer();
19
+ }
20
+ /**
21
+ * Get singleton instance of TokenManager
22
+ */
23
+ static getInstance() {
24
+ if (!TokenManager.instance) {
25
+ TokenManager.instance = new TokenManager();
26
+ }
27
+ return TokenManager.instance;
28
+ }
29
+ /**
30
+ * Generate a cryptographically secure bearer token (1024+ bytes)
31
+ * @param credentials - IBM i credentials for this session
32
+ * @param expirySeconds - Token lifetime in seconds (optional)
33
+ * @returns Generated token string
34
+ */
35
+ generateToken(credentials, expirySeconds, context) {
36
+ const operationContext = context ||
37
+ requestContextService.createRequestContext({
38
+ operation: "generateToken",
39
+ });
40
+ const expiry = expirySeconds || config.ibmiHttpAuth.tokenExpirySeconds;
41
+ // Generate 1024+ bytes of secure random data
42
+ const tokenBytes = crypto.randomBytes(256);
43
+ const token = tokenBytes.toString("base64url");
44
+ const now = new Date();
45
+ const expiresAt = new Date(now.getTime() + expiry * 1000);
46
+ const session = {
47
+ token,
48
+ credentials,
49
+ createdAt: now,
50
+ expiresAt,
51
+ lastUsed: now,
52
+ };
53
+ this.sessions.set(token, session);
54
+ logger.info({
55
+ ...operationContext,
56
+ user: credentials.user,
57
+ host: credentials.host,
58
+ expirySeconds: expiry,
59
+ expiresAt: expiresAt.toISOString(),
60
+ sessionCount: this.sessions.size,
61
+ }, "Generated new authentication token");
62
+ return token;
63
+ }
64
+ /**
65
+ * Validate a bearer token and return session info
66
+ * @param token - Bearer token to validate
67
+ * @returns Validation result with session info if valid
68
+ */
69
+ validateToken(token, context) {
70
+ const operationContext = context ||
71
+ requestContextService.createRequestContext({
72
+ operation: "validateToken",
73
+ });
74
+ if (!token || typeof token !== "string") {
75
+ logger.debug({ ...operationContext }, "Invalid token format");
76
+ return { valid: false, error: "Invalid token format" };
77
+ }
78
+ const session = this.sessions.get(token);
79
+ if (!session) {
80
+ logger.debug({
81
+ ...operationContext,
82
+ tokenPrefix: token.substring(0, 10) + "...",
83
+ }, "Token not found in session store");
84
+ return { valid: false, error: "Token not found" };
85
+ }
86
+ // Check if token has expired
87
+ if (new Date() > session.expiresAt) {
88
+ logger.info({
89
+ ...operationContext,
90
+ user: session.credentials.user,
91
+ expiredAt: session.expiresAt.toISOString(),
92
+ }, "Token has expired");
93
+ this.sessions.delete(token);
94
+ return { valid: false, error: "Token expired" };
95
+ }
96
+ // Update last used timestamp
97
+ session.lastUsed = new Date();
98
+ logger.debug({
99
+ ...operationContext,
100
+ user: session.credentials.user,
101
+ lastUsed: session.lastUsed.toISOString(),
102
+ }, "Token validated successfully");
103
+ return { valid: true, session };
104
+ }
105
+ /**
106
+ * Revoke a specific token
107
+ * @param token - Token to revoke
108
+ */
109
+ revokeToken(token, context) {
110
+ const operationContext = context ||
111
+ requestContextService.createRequestContext({
112
+ operation: "revokeToken",
113
+ });
114
+ const session = this.sessions.get(token);
115
+ if (!session) {
116
+ logger.debug({ ...operationContext }, "Token not found for revocation");
117
+ return false;
118
+ }
119
+ this.sessions.delete(token);
120
+ logger.info({
121
+ ...operationContext,
122
+ user: session.credentials.user,
123
+ sessionCount: this.sessions.size,
124
+ }, "Token revoked successfully");
125
+ return true;
126
+ }
127
+ /**
128
+ * Get current session statistics
129
+ */
130
+ getSessionStats() {
131
+ const now = new Date();
132
+ let activeSessions = 0;
133
+ let expiredSessions = 0;
134
+ for (const session of this.sessions.values()) {
135
+ if (now <= session.expiresAt) {
136
+ activeSessions++;
137
+ }
138
+ else {
139
+ expiredSessions++;
140
+ }
141
+ }
142
+ return {
143
+ totalSessions: this.sessions.size,
144
+ activeSessions,
145
+ expiredSessions,
146
+ };
147
+ }
148
+ /**
149
+ * Clean up expired tokens
150
+ */
151
+ cleanupExpiredTokens() {
152
+ const context = requestContextService.createRequestContext({
153
+ operation: "cleanupExpiredTokens",
154
+ });
155
+ const now = new Date();
156
+ const expiredTokens = [];
157
+ for (const [token, session] of this.sessions.entries()) {
158
+ if (now > session.expiresAt) {
159
+ expiredTokens.push(token);
160
+ }
161
+ }
162
+ for (const token of expiredTokens) {
163
+ this.sessions.delete(token);
164
+ }
165
+ if (expiredTokens.length > 0) {
166
+ logger.info({
167
+ ...context,
168
+ expiredCount: expiredTokens.length,
169
+ remainingCount: this.sessions.size,
170
+ }, "Cleaned up expired tokens");
171
+ }
172
+ }
173
+ /**
174
+ * Start the cleanup timer
175
+ */
176
+ startCleanupTimer() {
177
+ if (!config.ibmiHttpAuth.enabled) {
178
+ return;
179
+ }
180
+ const intervalMs = config.ibmiHttpAuth.cleanupIntervalSeconds * 1000;
181
+ this.cleanupTimer = setInterval(() => {
182
+ this.cleanupExpiredTokens();
183
+ }, intervalMs);
184
+ logger.info({
185
+ operation: "startCleanupTimer",
186
+ intervalSeconds: config.ibmiHttpAuth.cleanupIntervalSeconds,
187
+ }, "Started token cleanup timer");
188
+ }
189
+ /**
190
+ * Stop the cleanup timer and clear all sessions
191
+ */
192
+ shutdown() {
193
+ const context = requestContextService.createRequestContext({
194
+ operation: "tokenManagerShutdown",
195
+ });
196
+ if (this.cleanupTimer) {
197
+ clearInterval(this.cleanupTimer);
198
+ this.cleanupTimer = null;
199
+ }
200
+ const sessionCount = this.sessions.size;
201
+ this.sessions.clear();
202
+ logger.info({
203
+ ...context,
204
+ clearedSessions: sessionCount,
205
+ }, "Token manager shutdown completed");
206
+ }
207
+ /**
208
+ * Check if max concurrent sessions limit would be exceeded
209
+ */
210
+ canCreateNewSession() {
211
+ return this.sessions.size < config.ibmiHttpAuth.maxConcurrentSessions;
212
+ }
213
+ }
214
+ //# sourceMappingURL=tokenManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenManager.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/auth/tokenManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EACL,MAAM,EAEN,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AA6B1B;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,CAAe;IAC9B,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC3C,YAAY,GAA0B,IAAI,CAAC;IAEnD;QACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,aAAa,CACX,WAA4B,EAC5B,aAAsB,EACtB,OAAwB;QAExB,MAAM,gBAAgB,GACpB,OAAO;YACP,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;QAEL,MAAM,MAAM,GAAG,aAAa,IAAI,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC;QAEvE,6CAA6C;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAiB;YAC5B,KAAK;YACL,WAAW;YACX,SAAS,EAAE,GAAG;YACd,SAAS;YACT,QAAQ,EAAE,GAAG;SACd,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAElC,MAAM,CAAC,IAAI,CACT;YACE,GAAG,gBAAgB;YACnB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,aAAa,EAAE,MAAM;YACrB,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;YAClC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;SACjC,EACD,oCAAoC,CACrC,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,KAAa,EACb,OAAwB;QAExB,MAAM,gBAAgB,GACpB,OAAO;YACP,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;QAEL,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,gBAAgB,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;QACzD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CACV;gBACE,GAAG,gBAAgB;gBACnB,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;aAC5C,EACD,kCAAkC,CACnC,CAAC;YACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QACpD,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CACT;gBACE,GAAG,gBAAgB;gBACnB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;aAC3C,EACD,mBAAmB,CACpB,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QAClD,CAAC;QAED,6BAA6B;QAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAE9B,MAAM,CAAC,KAAK,CACV;YACE,GAAG,gBAAgB;YACnB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE;SACzC,EACD,8BAA8B,CAC/B,CAAC;QAEF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,KAAa,EAAE,OAAwB;QACjD,MAAM,gBAAgB,GACpB,OAAO;YACP,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,aAAa;aACzB,CAAC,CAAC;QAEL,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,gBAAgB,EAAE,EAAE,gCAAgC,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5B,MAAM,CAAC,IAAI,CACT;YACE,GAAG,gBAAgB;YACnB,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI;YAC9B,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;SACjC,EACD,4BAA4B,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,eAAe;QAKb,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC7B,cAAc,EAAE,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACjC,cAAc;YACd,eAAe;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,sBAAsB;SAClC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,aAAa,GAAa,EAAE,CAAC;QAEnC,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC5B,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CACT;gBACE,GAAG,OAAO;gBACV,YAAY,EAAE,aAAa,CAAC,MAAM;gBAClC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;aACnC,EACD,2BAA2B,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAErE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,EAAE,UAAU,CAAC,CAAC;QAEf,MAAM,CAAC,IAAI,CACT;YACE,SAAS,EAAE,mBAAmB;YAC9B,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,sBAAsB;SAC5D,EACD,6BAA6B,CAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACzD,SAAS,EAAE,sBAAsB;SAClC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEtB,MAAM,CAAC,IAAI,CACT;YACE,GAAG,OAAO;YACV,eAAe,EAAE,YAAY;SAC9B,EACD,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC;IACxE,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview Shared types for IBM i HTTP authentication flow.
3
+ */
4
+ export interface AuthRequest {
5
+ host: string;
6
+ duration?: number;
7
+ poolstart?: number;
8
+ poolmax?: number;
9
+ }
10
+ export interface AuthResponse {
11
+ access_token: string;
12
+ token_type: "Bearer";
13
+ expires_in: number;
14
+ expires_at: string;
15
+ }
16
+ export interface AuthCredentials {
17
+ username: string;
18
+ password: string;
19
+ }
20
+ export interface EncryptedAuthEnvelope {
21
+ keyId: string;
22
+ encryptedSessionKey: string;
23
+ iv: string;
24
+ authTag: string;
25
+ ciphertext: string;
26
+ }
27
+ export interface DecryptedAuthPayload {
28
+ credentials: AuthCredentials;
29
+ request: unknown;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/auth/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,QAAQ,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,MAAM,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,eAAe,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @fileoverview Shared types for IBM i HTTP authentication flow.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/auth/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,8 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Set the server replacement callback for auto-reload functionality
4
+ * This should be called by transport managers that support server replacement
5
+ */
6
+ export declare const setServerReplacementCallback: (callback: (newServer: McpServer) => void) => void;
7
+ export declare const registerSQLTools: (server: McpServer) => Promise<void>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ibmi-mcp-server/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GACvC,UAAU,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,KACvC,IAMF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAU,QAAQ,SAAS,KAAG,OAAO,CAAC,IAAI,CA2FtE,CAAC"}
@@ -0,0 +1,126 @@
1
+ import { config } from "../config/index.js";
2
+ import { ToolProcessor } from "./utils/config/toolProcessor.js";
3
+ import { ToolConfigCache } from "./utils/config/toolConfigCache.js";
4
+ import { logger, requestContextService, } from "../utils/internal/index.js";
5
+ // Store server replacement callback for auto-reload
6
+ let serverReplacementCallback = null;
7
+ // Global cache for YAML tool configurations
8
+ let cachedToolConfigs = null;
9
+ // Global tool processor instance
10
+ let toolProcessor = null;
11
+ /**
12
+ * Set the server replacement callback for auto-reload functionality
13
+ * This should be called by transport managers that support server replacement
14
+ */
15
+ export const setServerReplacementCallback = (callback) => {
16
+ serverReplacementCallback = callback;
17
+ logger.debug({}, "Server replacement callback registered for YAML auto-reload");
18
+ };
19
+ export const registerSQLTools = async (server) => {
20
+ // Load YAML tools if configured
21
+ if (config.toolsYamlPath) {
22
+ const context = requestContextService.createRequestContext({
23
+ operation: "registerSQLTools",
24
+ yamlPath: config.toolsYamlPath,
25
+ });
26
+ // Check if we have cached tool configs
27
+ if (cachedToolConfigs && !cachedToolConfigs.isEmpty()) {
28
+ logger.info(context, `Registering ${cachedToolConfigs.getStats().toolCount} cached YAML tools (cache hit)`);
29
+ // Register tools from cache - this is extremely fast
30
+ await cachedToolConfigs.registerCachedTools(server, context);
31
+ return;
32
+ }
33
+ logger.info(context, `Processing YAML tools from configuration: ${config.toolsYamlPath} (auto-reload: ${config.yamlAutoReload})`);
34
+ // Initialize processor if needed
35
+ if (!toolProcessor) {
36
+ toolProcessor = new ToolProcessor();
37
+ }
38
+ // Initialize cache if needed
39
+ if (!cachedToolConfigs) {
40
+ cachedToolConfigs = ToolConfigCache.getInstance();
41
+ }
42
+ try {
43
+ // Simple 3-step workflow: initialize → process → register
44
+ await toolProcessor.initialize(context);
45
+ const processingResult = await toolProcessor.processTools(context);
46
+ if (processingResult.success) {
47
+ // Cache the processed tool configurations
48
+ const toolConfigs = toolProcessor.getToolConfigurations();
49
+ const cacheResult = cachedToolConfigs.cacheToolConfigs(toolConfigs, context);
50
+ if (cacheResult.success) {
51
+ logger.info(context, `YAML tools processed and cached: ${cacheResult.toolCount} tools, ${cacheResult.toolsetCount} toolsets`);
52
+ // Register with server
53
+ await toolProcessor.registerWithServer(server, context);
54
+ // Setup auto-reload if enabled
55
+ if (config.yamlAutoReload) {
56
+ await setupAutoReload(server, context);
57
+ }
58
+ }
59
+ else {
60
+ logger.error(context, `Failed to cache tool configurations: ${cacheResult.error}`);
61
+ throw new Error(`Tool caching failed: ${cacheResult.error}`);
62
+ }
63
+ }
64
+ else {
65
+ logger.error(context, `Failed to process YAML tools: ${processingResult.error}`);
66
+ throw new Error(`YAML tools processing failed: ${processingResult.error}`);
67
+ }
68
+ }
69
+ catch (error) {
70
+ logger.error(context, `Error processing YAML tools: ${error instanceof Error ? error.message : String(error)}`);
71
+ throw error;
72
+ }
73
+ }
74
+ else {
75
+ logger.debug({}, "No YAML tools configuration found, skipping YAML tools loading");
76
+ }
77
+ };
78
+ /**
79
+ * Setup auto-reload functionality for YAML configuration changes
80
+ * @param server - MCP server instance
81
+ * @param context - Request context
82
+ * @private
83
+ */
84
+ async function setupAutoReload(server, context) {
85
+ const { ToolProcessor } = await import("./utils/config/toolProcessor.js");
86
+ ToolProcessor.registerChangeCallback(async (filePath, eventType, changeContext) => {
87
+ const rebuildContext = changeContext ||
88
+ requestContextService.createRequestContext({
89
+ operation: "AutoReloadOnFileChange",
90
+ filePath,
91
+ eventType,
92
+ });
93
+ logger.info(rebuildContext, `YAML file changed (${eventType}): ${filePath} - rebuilding tools`);
94
+ try {
95
+ // Create new processor for rebuild
96
+ const newProcessor = new ToolProcessor();
97
+ await newProcessor.initialize(rebuildContext);
98
+ const result = await newProcessor.processTools(rebuildContext);
99
+ if (result.success) {
100
+ // Update cache with new configurations
101
+ const toolConfigs = newProcessor.getToolConfigurations();
102
+ const cacheResult = cachedToolConfigs.cacheToolConfigs(toolConfigs, rebuildContext);
103
+ if (cacheResult.success) {
104
+ logger.info(rebuildContext, `Tools rebuilt successfully: ${cacheResult.toolCount} tools, ${cacheResult.toolsetCount} toolsets`);
105
+ // Update global processor reference
106
+ toolProcessor = newProcessor;
107
+ // Call server replacement callback if available
108
+ if (serverReplacementCallback) {
109
+ serverReplacementCallback(server);
110
+ }
111
+ }
112
+ else {
113
+ logger.error(rebuildContext, `Failed to cache rebuilt tools: ${cacheResult.error}`);
114
+ }
115
+ }
116
+ else {
117
+ logger.error(rebuildContext, `Failed to rebuild tools: ${result.error}`);
118
+ }
119
+ }
120
+ catch (error) {
121
+ logger.error(rebuildContext, `Error during auto-reload: ${error instanceof Error ? error.message : String(error)}`);
122
+ }
123
+ });
124
+ logger.info(context, "YAML auto-reload functionality enabled");
125
+ }
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ibmi-mcp-server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Barrel export file for the toolsets resource.
3
+ * This module exposes the registration function for the toolsets resource.
4
+ * @module src/mcp-server/resources/toolsetsResource/index
5
+ */
6
+ export { registerToolsetsResource } from "./registration.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/resources/toolsetsResource/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Barrel export file for the toolsets resource.
3
+ * This module exposes the registration function for the toolsets resource.
4
+ * @module src/mcp-server/resources/toolsetsResource/index
5
+ */
6
+ export { registerToolsetsResource } from "./registration.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/resources/toolsetsResource/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * @fileoverview Defines the core logic, schemas, and types for the `toolsets` resource.
3
+ * This module provides access to all available toolsets on the server, including
4
+ * their metadata, tool counts, and organization details.
5
+ * @module src/mcp-server/resources/toolsetsResource/logic
6
+ * @see {@link src/mcp-server/resources/toolsetsResource/registration.ts} for the handler and registration logic.
7
+ */
8
+ import { z } from "zod";
9
+ import { type RequestContext } from "../../../utils/index.js";
10
+ export declare const ToolsetInfoSchema: z.ZodObject<{
11
+ name: z.ZodString;
12
+ description: z.ZodString;
13
+ tools: z.ZodArray<z.ZodString, "many">;
14
+ toolCount: z.ZodNumber;
15
+ }, "strip", z.ZodTypeAny, {
16
+ name: string;
17
+ description: string;
18
+ tools: string[];
19
+ toolCount: number;
20
+ }, {
21
+ name: string;
22
+ description: string;
23
+ tools: string[];
24
+ toolCount: number;
25
+ }>;
26
+ export declare const ToolsetsResourceParamsSchema: z.ZodObject<{
27
+ toolsetName: z.ZodOptional<z.ZodString>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ toolsetName?: string | undefined;
30
+ }, {
31
+ toolsetName?: string | undefined;
32
+ }>;
33
+ export declare const ToolsetsResourceResponseSchema: z.ZodObject<{
34
+ totalToolsets: z.ZodNumber;
35
+ totalTools: z.ZodNumber;
36
+ toolsets: z.ZodArray<z.ZodObject<{
37
+ name: z.ZodString;
38
+ description: z.ZodString;
39
+ tools: z.ZodArray<z.ZodString, "many">;
40
+ toolCount: z.ZodNumber;
41
+ }, "strip", z.ZodTypeAny, {
42
+ name: string;
43
+ description: string;
44
+ tools: string[];
45
+ toolCount: number;
46
+ }, {
47
+ name: string;
48
+ description: string;
49
+ tools: string[];
50
+ toolCount: number;
51
+ }>, "many">;
52
+ statistics: z.ZodObject<{
53
+ multiToolsetTools: z.ZodArray<z.ZodString, "many">;
54
+ toolsetCounts: z.ZodRecord<z.ZodString, z.ZodNumber>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ multiToolsetTools: string[];
57
+ toolsetCounts: Record<string, number>;
58
+ }, {
59
+ multiToolsetTools: string[];
60
+ toolsetCounts: Record<string, number>;
61
+ }>;
62
+ timestamp: z.ZodString;
63
+ }, "strip", z.ZodTypeAny, {
64
+ timestamp: string;
65
+ toolsets: {
66
+ name: string;
67
+ description: string;
68
+ tools: string[];
69
+ toolCount: number;
70
+ }[];
71
+ totalToolsets: number;
72
+ totalTools: number;
73
+ statistics: {
74
+ multiToolsetTools: string[];
75
+ toolsetCounts: Record<string, number>;
76
+ };
77
+ }, {
78
+ timestamp: string;
79
+ toolsets: {
80
+ name: string;
81
+ description: string;
82
+ tools: string[];
83
+ toolCount: number;
84
+ }[];
85
+ totalToolsets: number;
86
+ totalTools: number;
87
+ statistics: {
88
+ multiToolsetTools: string[];
89
+ toolsetCounts: Record<string, number>;
90
+ };
91
+ }>;
92
+ export type ToolsetsResourceParams = z.infer<typeof ToolsetsResourceParamsSchema>;
93
+ export type ToolsetInfo = z.infer<typeof ToolsetInfoSchema>;
94
+ export type ToolsetsResourceResponse = z.infer<typeof ToolsetsResourceResponseSchema>;
95
+ /**
96
+ * Processes the core logic for the `toolsets` resource.
97
+ * Retrieves toolset information from the ToolsetManager and formats it for MCP clients.
98
+ *
99
+ * @param uri - The resource URI, which may contain a specific toolset name
100
+ * @param params - The validated resource parameters
101
+ * @param context - The request context for logging and tracing
102
+ * @returns A promise resolving with the structured toolsets data
103
+ * @throws {McpError} If the toolset system is not initialized or toolset not found
104
+ */
105
+ export declare function toolsetsResourceLogic(uri: URL, params: ToolsetsResourceParams, context: RequestContext): Promise<ToolsetsResourceResponse>;
106
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/resources/toolsetsResource/logic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAItE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAS5B,CAAC;AAGH,eAAO,MAAM,4BAA4B;;;;;;EAKvC,CAAC;AAGH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BzC,CAAC;AAGH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAmHnC"}