@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,68 @@
1
+ /**
2
+ * @fileoverview Initializes and exports a singleton Supabase client instance.
3
+ * This module ensures that the Supabase client is initialized once and shared
4
+ * across the application, using credentials from the central configuration.
5
+ * It handles both the standard client and the admin client (using the service role key).
6
+ *
7
+ * @module src/services/supabase/supabaseClient
8
+ */
9
+ import { createClient } from "@supabase/supabase-js";
10
+ import { config } from "../../config/index.js";
11
+ import { JsonRpcErrorCode, McpError } from "../../types-global/errors.js";
12
+ import { logger, requestContextService } from "../../utils/index.js";
13
+ let supabase = null;
14
+ let supabaseAdmin = null;
15
+ const initializeSupabase = () => {
16
+ const context = requestContextService.createRequestContext({
17
+ operation: "initializeSupabase",
18
+ });
19
+ if (config.supabase?.url && config.supabase?.anonKey) {
20
+ if (!supabase) {
21
+ supabase = createClient(config.supabase.url, config.supabase.anonKey, {
22
+ auth: {
23
+ persistSession: false,
24
+ autoRefreshToken: false,
25
+ },
26
+ });
27
+ logger.info(context, "Supabase client initialized.");
28
+ }
29
+ if (!supabaseAdmin && config.supabase.serviceRoleKey) {
30
+ supabaseAdmin = createClient(config.supabase.url, config.supabase.serviceRoleKey, {
31
+ auth: {
32
+ persistSession: false,
33
+ autoRefreshToken: false,
34
+ },
35
+ });
36
+ logger.info(context, "Supabase admin client initialized.");
37
+ }
38
+ }
39
+ else {
40
+ logger.warning(context, "Supabase URL or anon key is missing. Supabase clients not initialized.");
41
+ }
42
+ };
43
+ // Initialize on load
44
+ initializeSupabase();
45
+ /**
46
+ * Returns the singleton Supabase client instance.
47
+ * Throws an McpError if the client is not initialized.
48
+ * @returns The Supabase client.
49
+ */
50
+ export const getSupabaseClient = () => {
51
+ if (!supabase) {
52
+ throw new McpError(JsonRpcErrorCode.ServiceUnavailable, "Supabase client has not been initialized. Please check your SUPABASE_URL and SUPABASE_ANON_KEY environment variables.");
53
+ }
54
+ return supabase;
55
+ };
56
+ /**
57
+ * Returns the singleton Supabase admin client instance.
58
+ * This client uses the service role key and bypasses RLS.
59
+ * Throws an McpError if the admin client is not initialized.
60
+ * @returns The Supabase admin client.
61
+ */
62
+ export const getSupabaseAdminClient = () => {
63
+ if (!supabaseAdmin) {
64
+ throw new McpError(JsonRpcErrorCode.ServiceUnavailable, "Supabase admin client has not been initialized. Please check your SUPABASE_SERVICE_ROLE_KEY environment variable.");
65
+ }
66
+ return supabaseAdmin;
67
+ };
68
+ //# sourceMappingURL=supabaseClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supabaseClient.js","sourceRoot":"","sources":["../../../src/services/supabase/supabaseClient.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAkB,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAMjE,IAAI,QAAQ,GAAoC,IAAI,CAAC;AACrD,IAAI,aAAa,GAAoC,IAAI,CAAC;AAE1D,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,MAAM,OAAO,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;QACzD,SAAS,EAAE,oBAAoB;KAChC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,YAAY,CACrB,MAAM,CAAC,QAAQ,CAAC,GAAG,EACnB,MAAM,CAAC,QAAQ,CAAC,OAAO,EACvB;gBACE,IAAI,EAAE;oBACJ,cAAc,EAAE,KAAK;oBACrB,gBAAgB,EAAE,KAAK;iBACxB;aACF,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YACrD,aAAa,GAAG,YAAY,CAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,EACnB,MAAM,CAAC,QAAQ,CAAC,cAAc,EAC9B;gBACE,IAAI,EAAE;oBACJ,cAAc,EAAE,KAAK;oBACrB,gBAAgB,EAAE,KAAK;iBACxB;aACF,CACF,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,OAAO,CACZ,OAAO,EACP,wEAAwE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,qBAAqB;AACrB,kBAAkB,EAAE,CAAC;AAErB;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAA6B,EAAE;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,kBAAkB,EACnC,uHAAuH,CACxH,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAA6B,EAAE;IACnE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,kBAAkB,EACnC,mHAAmH,CACpH,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Example script to demonstrate usage of the DuckDBService.
3
+ * Creates a sample database, table, inserts data, queries it, and logs results.
4
+ * Database files will be stored in the './duckdata/' directory.
5
+ * @module storage/duckdbExample
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=duckdbExample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duckdbExample.d.ts","sourceRoot":"","sources":["../../src/storage/duckdbExample.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * @fileoverview Example script to demonstrate usage of the DuckDBService.
3
+ * Creates a sample database, table, inserts data, queries it, and logs results.
4
+ * Database files will be stored in the './duckdata/' directory.
5
+ * @module storage/duckdbExample
6
+ */
7
+ import * as fs from "fs";
8
+ import * as path from "path";
9
+ import { DuckDBService } from "../services/duck-db/duckDBService.js";
10
+ import { JsonRpcErrorCode } from "../types-global/errors.js";
11
+ import { ErrorHandler, idGenerator, // Added idGenerator import
12
+ logger, requestContextService, } from "../utils/index.js";
13
+ const DUCKDB_DATA_DIR = path.resolve(process.cwd(), "duckdata");
14
+ const DUCKDB_FILE_PATH = path.join(DUCKDB_DATA_DIR, "example.db");
15
+ /**
16
+ * Ensures that the directory for storing DuckDB files exists.
17
+ * @param {RequestContext} context - The request context for logging.
18
+ */
19
+ function ensureDataDirectoryExists(context) {
20
+ if (!fs.existsSync(DUCKDB_DATA_DIR)) {
21
+ logger.info(context, `Data directory ${DUCKDB_DATA_DIR} does not exist. Creating...`);
22
+ try {
23
+ fs.mkdirSync(DUCKDB_DATA_DIR, { recursive: true });
24
+ logger.info(context, `Data directory ${DUCKDB_DATA_DIR} created.`);
25
+ }
26
+ catch (error) {
27
+ logger.error({
28
+ error: error,
29
+ ...context,
30
+ }, `Failed to create data directory ${DUCKDB_DATA_DIR}`);
31
+ // Re-throw as a critical error if directory creation fails
32
+ throw new Error(`Could not create DuckDB data directory: ${error instanceof Error ? error.message : String(error)}`);
33
+ }
34
+ }
35
+ else {
36
+ logger.debug(context, `Data directory ${DUCKDB_DATA_DIR} already exists.`);
37
+ }
38
+ // Ensure a fresh database file for the example by deleting it if it exists.
39
+ // This allows launchConfig settings like custom_user_agent to be applied on each run.
40
+ if (fs.existsSync(DUCKDB_FILE_PATH)) {
41
+ logger.info(context, `Existing DuckDB file ${DUCKDB_FILE_PATH} found. Deleting for a fresh example run...`);
42
+ try {
43
+ fs.unlinkSync(DUCKDB_FILE_PATH);
44
+ logger.info(context, `Successfully deleted ${DUCKDB_FILE_PATH}.`);
45
+ }
46
+ catch (error) {
47
+ logger.error({ error: error, ...context }, `Failed to delete existing DuckDB file ${DUCKDB_FILE_PATH}`);
48
+ // Re-throw as a critical error if deletion fails, as it will likely cause subsequent errors
49
+ throw new Error(`Could not delete existing DuckDB file: ${error instanceof Error ? error.message : String(error)}`);
50
+ }
51
+ }
52
+ }
53
+ async function runDuckDBExample() {
54
+ const operation = "runDuckDBExample";
55
+ const context = requestContextService.createRequestContext({ operation });
56
+ logger.notice(context, "Starting DuckDB example script...");
57
+ ensureDataDirectoryExists(context);
58
+ const service = new DuckDBService();
59
+ const config = {
60
+ dbPath: DUCKDB_FILE_PATH,
61
+ extensions: ["json"], // Example: include an extension
62
+ launchConfig: { custom_user_agent: "DuckDBExampleScript/1.0" },
63
+ };
64
+ try {
65
+ logger.info(context, `Initializing DuckDBService with path: ${config.dbPath}`);
66
+ await service.initialize(config);
67
+ logger.info(context, "DuckDBService initialized.");
68
+ // Create a table
69
+ const createTableSql = `
70
+ CREATE TABLE IF NOT EXISTS users (
71
+ id VARCHAR(6) PRIMARY KEY,
72
+ name VARCHAR NOT NULL,
73
+ email VARCHAR,
74
+ createdAt TIMESTAMP DEFAULT current_timestamp
75
+ );
76
+ `;
77
+ logger.info({
78
+ ...context,
79
+ sql: createTableSql,
80
+ }, "Creating 'users' table...");
81
+ await service.run(createTableSql);
82
+ logger.info(context, "'users' table created or already exists.");
83
+ // Insert data
84
+ const usersToInsert = [
85
+ { name: "Alice Wonderland", email: "alice@example.com" },
86
+ { name: "Bob The Builder", email: "bob@example.com" },
87
+ { name: "Charlie Chaplin", email: "charlie@example.com" },
88
+ ].map((user) => ({
89
+ id: idGenerator.generateRandomString(6), // Generate 6-digit alphanumeric ID directly
90
+ ...user,
91
+ }));
92
+ logger.info({
93
+ ...context,
94
+ users: usersToInsert.length,
95
+ }, "Inserting data into 'users' table...");
96
+ for (const user of usersToInsert) {
97
+ // Check if user already exists to prevent primary key constraint errors on re-runs
98
+ const existingUser = await service.query("SELECT id FROM users WHERE id = ?", [user.id]);
99
+ if (existingUser.rowCount === 0) {
100
+ await service.run("INSERT INTO users (id, name, email) VALUES (?, ?, ?)", [user.id, user.name, user.email]);
101
+ logger.debug(context, `Inserted user with ID: ${user.id}`);
102
+ }
103
+ else {
104
+ logger.debug(context, `User with ID: ${user.id} already exists. Skipping insertion.`);
105
+ }
106
+ }
107
+ logger.info(context, "Data insertion complete.");
108
+ // Query data
109
+ const querySql = "SELECT id, name, email, createdAt FROM users ORDER BY id;";
110
+ logger.info({ ...context, sql: querySql }, "Querying 'users' table...");
111
+ const result = await service.query(querySql);
112
+ logger.notice({
113
+ ...context,
114
+ rowCount: result.rowCount,
115
+ columnNames: result.columnNames,
116
+ }, "Query Results:");
117
+ result.rows.forEach((row, index) => {
118
+ logger.info({ ...context, rowData: row }, `Row ${index + 1}:`);
119
+ });
120
+ // Example of using an extension function (json)
121
+ // Use the ID of the first inserted user for the query
122
+ if (usersToInsert.length > 0) {
123
+ const firstUser = usersToInsert[0];
124
+ if (!firstUser) {
125
+ logger.warning(context, "Could not get the first user for JSON query example.");
126
+ return;
127
+ }
128
+ const firstUserId = firstUser.id;
129
+ const jsonQuerySql = "SELECT json_object('id', id, 'name', name, 'email', email) AS user_json FROM users WHERE id = ?;"; // Added email to json_object
130
+ logger.info({
131
+ ...context,
132
+ sql: jsonQuerySql,
133
+ userId: firstUserId,
134
+ }, "Querying with JSON extension function for a specific user...");
135
+ const jsonResult = await service.query(jsonQuerySql, [firstUserId]);
136
+ if (jsonResult.rowCount > 0) {
137
+ logger.info({
138
+ ...context,
139
+ jsonData: jsonResult.rows[0],
140
+ }, "JSON Query Result:");
141
+ }
142
+ else {
143
+ logger.warning(context, `Could not find user with ID ${firstUserId} for JSON query example.`); // Changed warn to warning
144
+ }
145
+ }
146
+ else {
147
+ logger.info(context, "Skipping JSON query example as no users were inserted.");
148
+ }
149
+ }
150
+ catch (error) {
151
+ // ErrorHandler.tryCatch is used within the service, so errors should be McpError
152
+ // If an error occurs outside service calls (e.g. directory creation), it might be a standard Error
153
+ logger.error({
154
+ error: error,
155
+ ...context,
156
+ isMcpError: error instanceof Object && "errorCode" in error, // Basic check
157
+ }, "An error occurred in the DuckDB example script");
158
+ }
159
+ finally {
160
+ logger.info(context, "Closing DuckDBService...");
161
+ // Wrap close in its own tryCatch as it might also throw
162
+ try {
163
+ await service.close();
164
+ logger.info(context, "DuckDBService closed.");
165
+ }
166
+ catch (closeError) {
167
+ logger.error({
168
+ error: closeError,
169
+ ...context,
170
+ }, "Failed to close DuckDBService");
171
+ }
172
+ }
173
+ logger.notice(context, "DuckDB example script finished.");
174
+ }
175
+ // Self-executing async function
176
+ (async () => {
177
+ // Setup a global error handler for unhandled rejections or exceptions
178
+ // specific to this script's execution context.
179
+ const scriptContext = requestContextService.createRequestContext({
180
+ operation: "DuckDBExampleScript.main",
181
+ });
182
+ try {
183
+ await ErrorHandler.tryCatch(runDuckDBExample, {
184
+ operation: "runDuckDBExample.mainExecution",
185
+ context: scriptContext,
186
+ errorCode: JsonRpcErrorCode.InternalError, // Changed from SCRIPT_EXECUTION_ERROR
187
+ critical: true, // If the main example fails, it's critical for the script
188
+ });
189
+ }
190
+ catch (e) {
191
+ // This catch is for errors that ErrorHandler.tryCatch itself might rethrow
192
+ // or if ErrorHandler is bypassed.
193
+ logger.crit({ error: e, ...scriptContext }, "Unhandled critical error in DuckDB example script execution.");
194
+ process.exit(1); // Exit with error code
195
+ }
196
+ })();
197
+ //# sourceMappingURL=duckdbExample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duckdbExample.js","sourceRoot":"","sources":["../../src/storage/duckdbExample.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @fileoverview Defines standardized error codes, a custom error class, and related schemas
3
+ * for handling errors within the Model Context Protocol (MCP) server and its components.
4
+ * This module provides a structured way to represent and communicate errors, ensuring
5
+ * consistency and clarity for both server-side operations and client-side error handling.
6
+ * @module src/types-global/errors
7
+ */
8
+ import { z } from "zod";
9
+ /**
10
+ * Defines JSON-RPC 2.0 error codes, including standard and implementation-defined codes.
11
+ * @see https://www.jsonrpc.org/specification#error_object
12
+ */
13
+ export declare enum JsonRpcErrorCode {
14
+ ParseError = -32700,
15
+ InvalidRequest = -32600,
16
+ MethodNotFound = -32601,
17
+ InvalidParams = -32602,
18
+ InternalError = -32603,
19
+ ServiceUnavailable = -32000,
20
+ NotFound = -32001,
21
+ Conflict = -32002,
22
+ RateLimited = -32003,
23
+ Timeout = -32004,
24
+ Forbidden = -32005,
25
+ Unauthorized = -32006,
26
+ ValidationError = -32007,
27
+ ConfigurationError = -32008,
28
+ InitializationFailed = -32009,
29
+ DatabaseError = -32010,
30
+ UnknownError = -32099
31
+ }
32
+ /**
33
+ * Custom error class for MCP-specific errors, extending the built-in `Error` class.
34
+ * It standardizes error reporting by encapsulating a `JsonRpcErrorCode`, a descriptive
35
+ * human-readable message, and optional structured details for more context.
36
+ *
37
+ * This class is central to error handling within the MCP framework, allowing for
38
+ * consistent error creation and propagation.
39
+ */
40
+ export declare class McpError extends Error {
41
+ /**
42
+ * The standardized error code from {@link JsonRpcErrorCode}.
43
+ */
44
+ code: JsonRpcErrorCode;
45
+ /**
46
+ * Optional additional details or context about the error.
47
+ * This can be any structured data that helps in understanding or debugging the error.
48
+ */
49
+ readonly details?: Record<string, unknown>;
50
+ /**
51
+ * Creates an instance of McpError.
52
+ *
53
+ * @param code - The standardized error code that categorizes the error.
54
+ * @param message - A human-readable description of the error.
55
+ * @param details - Optional. A record containing additional structured details about the error.
56
+ */
57
+ constructor(code: JsonRpcErrorCode, message: string, details?: Record<string, unknown>, options?: {
58
+ cause?: unknown;
59
+ });
60
+ }
61
+ /**
62
+ * Zod schema for validating error objects. This schema can be used for:
63
+ * - Validating error structures when parsing error responses from external services.
64
+ * - Ensuring consistency when creating or handling error objects internally.
65
+ * - Generating TypeScript types for error objects.
66
+ *
67
+ * The schema enforces the presence of a `code` (from {@link JsonRpcErrorCode}) and a `message`,
68
+ * and allows for optional `details`.
69
+ */
70
+ export declare const ErrorSchema: z.ZodObject<{
71
+ /**
72
+ * The error code, corresponding to one of the {@link JsonRpcErrorCode} enum values.
73
+ * This field is required and helps in programmatically identifying the error type.
74
+ */
75
+ code: z.ZodNativeEnum<typeof JsonRpcErrorCode>;
76
+ /**
77
+ * A human-readable, descriptive message explaining the error.
78
+ * This field is required and provides context to developers or users.
79
+ */
80
+ message: z.ZodString;
81
+ /**
82
+ * Optional. A record containing additional structured details or context about the error.
83
+ * This can include things like invalid field names, specific values that caused issues, or other relevant data.
84
+ */
85
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
86
+ }, "strip", z.ZodTypeAny, {
87
+ code: JsonRpcErrorCode;
88
+ message: string;
89
+ details?: Record<string, unknown> | undefined;
90
+ }, {
91
+ code: JsonRpcErrorCode;
92
+ message: string;
93
+ details?: Record<string, unknown> | undefined;
94
+ }>;
95
+ /**
96
+ * TypeScript type inferred from the {@link ErrorSchema}.
97
+ * This type represents the structure of a validated error object, commonly used
98
+ * for error responses or when passing error information within the application.
99
+ */
100
+ export type ErrorResponse = z.infer<typeof ErrorSchema>;
101
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,oBAAY,gBAAgB;IAE1B,UAAU,SAAS;IACnB,cAAc,SAAS;IACvB,cAAc,SAAS;IACvB,aAAa,SAAS;IACtB,aAAa,SAAS;IAGtB,kBAAkB,SAAS;IAC3B,QAAQ,SAAS;IACjB,QAAQ,SAAS;IACjB,WAAW,SAAS;IACpB,OAAO,SAAS;IAChB,SAAS,SAAS;IAClB,YAAY,SAAS;IACrB,eAAe,SAAS;IACxB,kBAAkB,SAAS;IAC3B,oBAAoB,SAAS;IAC7B,aAAa,SAAS;IACtB,YAAY,SAAS;CACtB;AAED;;;;;;;GAOG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC;;OAEG;IACI,IAAI,EAAE,gBAAgB,CAAC;IAE9B;;;OAGG;IACH,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElD;;;;;;OAMG;gBAED,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAgBhC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;IAEpB;;;OAGG;;IAIH;;;OAGG;;IAKH;;;OAGG;;;;;;;;;;EAUJ,CAAC;AAEJ;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * @fileoverview Defines standardized error codes, a custom error class, and related schemas
3
+ * for handling errors within the Model Context Protocol (MCP) server and its components.
4
+ * This module provides a structured way to represent and communicate errors, ensuring
5
+ * consistency and clarity for both server-side operations and client-side error handling.
6
+ * @module src/types-global/errors
7
+ */
8
+ import { z } from "zod";
9
+ /**
10
+ * Defines JSON-RPC 2.0 error codes, including standard and implementation-defined codes.
11
+ * @see https://www.jsonrpc.org/specification#error_object
12
+ */
13
+ export var JsonRpcErrorCode;
14
+ (function (JsonRpcErrorCode) {
15
+ // Standard JSON-RPC 2.0 Errors
16
+ JsonRpcErrorCode[JsonRpcErrorCode["ParseError"] = -32700] = "ParseError";
17
+ JsonRpcErrorCode[JsonRpcErrorCode["InvalidRequest"] = -32600] = "InvalidRequest";
18
+ JsonRpcErrorCode[JsonRpcErrorCode["MethodNotFound"] = -32601] = "MethodNotFound";
19
+ JsonRpcErrorCode[JsonRpcErrorCode["InvalidParams"] = -32602] = "InvalidParams";
20
+ JsonRpcErrorCode[JsonRpcErrorCode["InternalError"] = -32603] = "InternalError";
21
+ // Implementation-defined server-errors (-32000 to -32099)
22
+ JsonRpcErrorCode[JsonRpcErrorCode["ServiceUnavailable"] = -32000] = "ServiceUnavailable";
23
+ JsonRpcErrorCode[JsonRpcErrorCode["NotFound"] = -32001] = "NotFound";
24
+ JsonRpcErrorCode[JsonRpcErrorCode["Conflict"] = -32002] = "Conflict";
25
+ JsonRpcErrorCode[JsonRpcErrorCode["RateLimited"] = -32003] = "RateLimited";
26
+ JsonRpcErrorCode[JsonRpcErrorCode["Timeout"] = -32004] = "Timeout";
27
+ JsonRpcErrorCode[JsonRpcErrorCode["Forbidden"] = -32005] = "Forbidden";
28
+ JsonRpcErrorCode[JsonRpcErrorCode["Unauthorized"] = -32006] = "Unauthorized";
29
+ JsonRpcErrorCode[JsonRpcErrorCode["ValidationError"] = -32007] = "ValidationError";
30
+ JsonRpcErrorCode[JsonRpcErrorCode["ConfigurationError"] = -32008] = "ConfigurationError";
31
+ JsonRpcErrorCode[JsonRpcErrorCode["InitializationFailed"] = -32009] = "InitializationFailed";
32
+ JsonRpcErrorCode[JsonRpcErrorCode["DatabaseError"] = -32010] = "DatabaseError";
33
+ JsonRpcErrorCode[JsonRpcErrorCode["UnknownError"] = -32099] = "UnknownError";
34
+ })(JsonRpcErrorCode || (JsonRpcErrorCode = {}));
35
+ /**
36
+ * Custom error class for MCP-specific errors, extending the built-in `Error` class.
37
+ * It standardizes error reporting by encapsulating a `JsonRpcErrorCode`, a descriptive
38
+ * human-readable message, and optional structured details for more context.
39
+ *
40
+ * This class is central to error handling within the MCP framework, allowing for
41
+ * consistent error creation and propagation.
42
+ */
43
+ export class McpError extends Error {
44
+ /**
45
+ * The standardized error code from {@link JsonRpcErrorCode}.
46
+ */
47
+ code;
48
+ /**
49
+ * Optional additional details or context about the error.
50
+ * This can be any structured data that helps in understanding or debugging the error.
51
+ */
52
+ details;
53
+ /**
54
+ * Creates an instance of McpError.
55
+ *
56
+ * @param code - The standardized error code that categorizes the error.
57
+ * @param message - A human-readable description of the error.
58
+ * @param details - Optional. A record containing additional structured details about the error.
59
+ */
60
+ constructor(code, message, details, options) {
61
+ super(message, options);
62
+ this.code = code;
63
+ this.details = details;
64
+ this.name = "McpError";
65
+ // Maintain a proper prototype chain.
66
+ Object.setPrototypeOf(this, McpError.prototype);
67
+ // Capture the stack trace, excluding the constructor call from it, if available.
68
+ if (Error.captureStackTrace) {
69
+ Error.captureStackTrace(this, McpError);
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Zod schema for validating error objects. This schema can be used for:
75
+ * - Validating error structures when parsing error responses from external services.
76
+ * - Ensuring consistency when creating or handling error objects internally.
77
+ * - Generating TypeScript types for error objects.
78
+ *
79
+ * The schema enforces the presence of a `code` (from {@link JsonRpcErrorCode}) and a `message`,
80
+ * and allows for optional `details`.
81
+ */
82
+ export const ErrorSchema = z
83
+ .object({
84
+ /**
85
+ * The error code, corresponding to one of the {@link JsonRpcErrorCode} enum values.
86
+ * This field is required and helps in programmatically identifying the error type.
87
+ */
88
+ code: z
89
+ .nativeEnum(JsonRpcErrorCode)
90
+ .describe("Standardized error code from JsonRpcErrorCode enum"),
91
+ /**
92
+ * A human-readable, descriptive message explaining the error.
93
+ * This field is required and provides context to developers or users.
94
+ */
95
+ message: z
96
+ .string()
97
+ .min(1, "Error message cannot be empty.")
98
+ .describe("Detailed human-readable error message"),
99
+ /**
100
+ * Optional. A record containing additional structured details or context about the error.
101
+ * This can include things like invalid field names, specific values that caused issues, or other relevant data.
102
+ */
103
+ details: z
104
+ .record(z.unknown())
105
+ .optional()
106
+ .describe("Optional structured details providing more context about the error"),
107
+ })
108
+ .describe("Schema for validating structured error objects, ensuring consistency in error reporting.");
109
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAqBX;AArBD,WAAY,gBAAgB;IAC1B,+BAA+B;IAC/B,wEAAmB,CAAA;IACnB,gFAAuB,CAAA;IACvB,gFAAuB,CAAA;IACvB,8EAAsB,CAAA;IACtB,8EAAsB,CAAA;IAEtB,0DAA0D;IAC1D,wFAA2B,CAAA;IAC3B,oEAAiB,CAAA;IACjB,oEAAiB,CAAA;IACjB,0EAAoB,CAAA;IACpB,kEAAgB,CAAA;IAChB,sEAAkB,CAAA;IAClB,4EAAqB,CAAA;IACrB,kFAAwB,CAAA;IACxB,wFAA2B,CAAA;IAC3B,4FAA6B,CAAA;IAC7B,8EAAsB,CAAA;IACtB,4EAAqB,CAAA;AACvB,CAAC,EArBW,gBAAgB,KAAhB,gBAAgB,QAqB3B;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC;;OAEG;IACI,IAAI,CAAmB;IAE9B;;;OAGG;IACa,OAAO,CAA2B;IAElD;;;;;;OAMG;IACH,YACE,IAAsB,EACtB,OAAe,EACf,OAAiC,EACjC,OAA6B;QAE7B,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QAEvB,qCAAqC;QACrC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEhD,iFAAiF;QACjF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC;KACzB,MAAM,CAAC;IACN;;;OAGG;IACH,IAAI,EAAE,CAAC;SACJ,UAAU,CAAC,gBAAgB,CAAC;SAC5B,QAAQ,CAAC,oDAAoD,CAAC;IACjE;;;OAGG;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;SACxC,QAAQ,CAAC,uCAAuC,CAAC;IACpD;;;OAGG;IACH,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACnB,QAAQ,EAAE;SACV,QAAQ,CACP,oEAAoE,CACrE;CACJ,CAAC;KACD,QAAQ,CACP,0FAA0F,CAC3F,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview Barrel file for formatting utility modules.
3
+ * This file re-exports utilities for building structured output formats including
4
+ * markdown, tables, diffs, and tree structures.
5
+ * @module utils/formatting
6
+ */
7
+ export { MarkdownBuilder, markdown } from "./markdownBuilder.js";
8
+ export { tableFormatter, TableFormatter, type TableFormatterOptions, type TableStyle, type Alignment, type TableFormattingResult, } from "./tableFormatter.js";
9
+ export { getColumnAlignment, formatColumnHeader, buildColumnAlignmentMap, } from "./sqlFormattingUtils.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview Barrel file for formatting utility modules.
3
+ * This file re-exports utilities for building structured output formats including
4
+ * markdown, tables, diffs, and tree structures.
5
+ * @module utils/formatting
6
+ */
7
+ export { MarkdownBuilder, markdown } from "./markdownBuilder.js";
8
+ export { tableFormatter, TableFormatter, } from "./tableFormatter.js";
9
+ export { getColumnAlignment, formatColumnHeader, buildColumnAlignmentMap, } from "./sqlFormattingUtils.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/formatting/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,cAAc,GAKf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC"}