@confluentinc/mcp-confluent 1.2.2 → 1.3.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 (428) hide show
  1. package/README.md +171 -193
  2. package/assets/oauth-templates/callback-failure.html +22 -0
  3. package/assets/oauth-templates/callback-success.html +19 -0
  4. package/assets/oauth-templates/logo.html +91 -0
  5. package/assets/oauth-templates/styles.html +49 -0
  6. package/config.example.yaml +149 -0
  7. package/config.oauth.example.yaml +45 -0
  8. package/dist/cli.d.ts +59 -12
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +131 -61
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config/env-config.d.ts +33 -0
  13. package/dist/config/env-config.d.ts.map +1 -0
  14. package/dist/config/env-config.js +473 -0
  15. package/dist/config/env-config.js.map +1 -0
  16. package/dist/config/index.d.ts +31 -0
  17. package/dist/config/index.d.ts.map +1 -0
  18. package/dist/config/index.js +76 -0
  19. package/dist/config/index.js.map +1 -0
  20. package/dist/config/interpolation.d.ts +9 -0
  21. package/dist/config/interpolation.d.ts.map +1 -0
  22. package/dist/config/interpolation.js +51 -0
  23. package/dist/config/interpolation.js.map +1 -0
  24. package/dist/config/models.d.ts +396 -0
  25. package/dist/config/models.d.ts.map +1 -0
  26. package/dist/config/models.js +401 -0
  27. package/dist/config/models.js.map +1 -0
  28. package/dist/config/validation.d.ts +9 -0
  29. package/dist/config/validation.d.ts.map +1 -0
  30. package/dist/config/validation.js +46 -0
  31. package/dist/config/validation.js.map +1 -0
  32. package/dist/confluent/base-client-manager.d.ts +100 -0
  33. package/dist/confluent/base-client-manager.d.ts.map +1 -0
  34. package/dist/confluent/base-client-manager.js +188 -0
  35. package/dist/confluent/base-client-manager.js.map +1 -0
  36. package/dist/confluent/client-manager.d.ts +42 -77
  37. package/dist/confluent/client-manager.d.ts.map +1 -1
  38. package/dist/confluent/client-manager.js +5 -213
  39. package/dist/confluent/client-manager.js.map +1 -1
  40. package/dist/confluent/config-telemetry.d.ts +41 -0
  41. package/dist/confluent/config-telemetry.d.ts.map +1 -0
  42. package/dist/confluent/config-telemetry.js +17 -0
  43. package/dist/confluent/config-telemetry.js.map +1 -0
  44. package/dist/confluent/direct-client-manager.d.ts +43 -0
  45. package/dist/confluent/direct-client-manager.d.ts.map +1 -0
  46. package/dist/confluent/direct-client-manager.js +146 -0
  47. package/dist/confluent/direct-client-manager.js.map +1 -0
  48. package/dist/confluent/middleware.d.ts +32 -4
  49. package/dist/confluent/middleware.d.ts.map +1 -1
  50. package/dist/confluent/middleware.js +46 -2
  51. package/dist/confluent/middleware.js.map +1 -1
  52. package/dist/confluent/node-deps.d.ts +32 -39
  53. package/dist/confluent/node-deps.d.ts.map +1 -1
  54. package/dist/confluent/node-deps.js +42 -7
  55. package/dist/confluent/node-deps.js.map +1 -1
  56. package/dist/confluent/oauth/auth-context.d.ts +94 -0
  57. package/dist/confluent/oauth/auth-context.d.ts.map +1 -0
  58. package/dist/confluent/oauth/auth-context.js +323 -0
  59. package/dist/confluent/oauth/auth-context.js.map +1 -0
  60. package/dist/confluent/oauth/auth0-config.d.ts +12 -0
  61. package/dist/confluent/oauth/auth0-config.d.ts.map +1 -0
  62. package/dist/confluent/oauth/auth0-config.js +43 -0
  63. package/dist/confluent/oauth/auth0-config.js.map +1 -0
  64. package/dist/confluent/oauth/callback-pages.d.ts +5 -0
  65. package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
  66. package/dist/confluent/oauth/callback-pages.js +38 -0
  67. package/dist/confluent/oauth/callback-pages.js.map +1 -0
  68. package/dist/confluent/oauth/crypto-utils.d.ts +16 -0
  69. package/dist/confluent/oauth/crypto-utils.d.ts.map +1 -0
  70. package/dist/confluent/oauth/crypto-utils.js +23 -0
  71. package/dist/confluent/oauth/crypto-utils.js.map +1 -0
  72. package/dist/confluent/oauth/errors.d.ts +27 -0
  73. package/dist/confluent/oauth/errors.d.ts.map +1 -0
  74. package/dist/confluent/oauth/errors.js +6 -0
  75. package/dist/confluent/oauth/errors.js.map +1 -0
  76. package/dist/confluent/oauth/oauth-holder.d.ts +34 -0
  77. package/dist/confluent/oauth/oauth-holder.d.ts.map +1 -0
  78. package/dist/confluent/oauth/oauth-holder.js +155 -0
  79. package/dist/confluent/oauth/oauth-holder.js.map +1 -0
  80. package/dist/confluent/oauth/pkce-login.d.ts +26 -0
  81. package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
  82. package/dist/confluent/oauth/pkce-login.js +161 -0
  83. package/dist/confluent/oauth/pkce-login.js.map +1 -0
  84. package/dist/confluent/oauth/token-chain.d.ts +53 -0
  85. package/dist/confluent/oauth/token-chain.d.ts.map +1 -0
  86. package/dist/confluent/oauth/token-chain.js +141 -0
  87. package/dist/confluent/oauth/token-chain.js.map +1 -0
  88. package/dist/confluent/oauth/token-lifetimes.d.ts +13 -0
  89. package/dist/confluent/oauth/token-lifetimes.d.ts.map +1 -0
  90. package/dist/confluent/oauth/token-lifetimes.js +13 -0
  91. package/dist/confluent/oauth/token-lifetimes.js.map +1 -0
  92. package/dist/confluent/oauth/types.d.ts +68 -0
  93. package/dist/confluent/oauth/types.d.ts.map +1 -0
  94. package/dist/confluent/oauth/types.js +2 -0
  95. package/dist/confluent/oauth/types.js.map +1 -0
  96. package/dist/confluent/oauth-client-manager.d.ts +78 -0
  97. package/dist/confluent/oauth-client-manager.d.ts.map +1 -0
  98. package/dist/confluent/oauth-client-manager.js +265 -0
  99. package/dist/confluent/oauth-client-manager.js.map +1 -0
  100. package/dist/confluent/oauth-resource-resolvers.d.ts +6 -0
  101. package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -0
  102. package/dist/confluent/oauth-resource-resolvers.js +65 -0
  103. package/dist/confluent/oauth-resource-resolvers.js.map +1 -0
  104. package/dist/confluent/telemetry.d.ts +32 -1
  105. package/dist/confluent/telemetry.d.ts.map +1 -1
  106. package/dist/confluent/telemetry.js +31 -8
  107. package/dist/confluent/telemetry.js.map +1 -1
  108. package/dist/confluent/tools/base-tools.d.ts +98 -23
  109. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  110. package/dist/confluent/tools/base-tools.js +62 -4
  111. package/dist/confluent/tools/base-tools.js.map +1 -1
  112. package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
  113. package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
  114. package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
  115. package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
  116. package/dist/confluent/tools/connection-predicates.d.ts +168 -0
  117. package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
  118. package/dist/confluent/tools/connection-predicates.js +273 -0
  119. package/dist/confluent/tools/connection-predicates.js.map +1 -0
  120. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +3 -5
  121. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
  122. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +4 -8
  123. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
  124. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +4 -5
  125. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  126. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +4 -8
  127. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  128. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +4 -5
  129. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  130. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +4 -8
  131. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  132. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +4 -5
  133. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  134. package/dist/confluent/tools/handlers/catalog/delete-tag.js +4 -8
  135. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  136. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +4 -5
  137. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  138. package/dist/confluent/tools/handlers/catalog/list-tags.js +4 -8
  139. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  140. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +4 -5
  141. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  142. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +4 -8
  143. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  144. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +3 -5
  145. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  146. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +9 -12
  147. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  148. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +21 -0
  149. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
  150. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +22 -0
  151. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
  152. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
  153. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  154. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +21 -21
  155. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  156. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
  157. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  158. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +10 -15
  159. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  160. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
  161. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  162. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +15 -17
  163. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  164. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +6 -7
  165. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -1
  166. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +10 -15
  167. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -1
  168. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +57 -0
  169. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
  170. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +122 -0
  171. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
  172. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +17 -0
  173. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
  174. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +234 -0
  175. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
  176. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +13 -0
  177. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
  178. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +285 -0
  179. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
  180. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +3 -5
  181. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
  182. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +4 -8
  183. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  184. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +3 -5
  185. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
  186. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +4 -8
  187. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  188. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +16 -9
  189. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
  190. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +18 -12
  191. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
  192. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
  193. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
  194. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +15 -21
  195. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
  196. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
  197. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
  198. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
  199. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
  200. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
  201. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
  202. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +15 -21
  203. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
  204. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
  205. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
  206. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +12 -20
  207. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
  208. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
  209. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
  210. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +12 -20
  211. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
  212. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
  213. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
  214. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +13 -29
  215. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
  216. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
  217. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  218. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +18 -23
  219. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  220. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
  221. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  222. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -13
  223. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  224. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
  225. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
  226. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +7 -13
  227. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
  228. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
  229. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
  230. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +8 -15
  231. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
  232. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
  233. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
  234. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
  235. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
  236. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
  237. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +11 -17
  238. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
  239. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +2 -2
  240. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
  241. package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
  242. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +21 -0
  243. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
  244. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +31 -0
  245. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
  246. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
  247. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
  248. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +7 -13
  249. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
  250. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
  251. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  252. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -16
  253. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  254. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
  255. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
  256. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -13
  257. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
  258. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +3 -5
  259. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  260. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +20 -19
  261. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  262. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +5 -4
  263. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
  264. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +23 -16
  265. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
  266. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +3 -4
  267. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  268. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +50 -14
  269. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  270. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +3 -4
  271. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  272. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +24 -7
  273. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  274. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +3 -5
  275. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
  276. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +20 -19
  277. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
  278. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +3 -4
  279. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  280. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +23 -9
  281. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  282. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +3 -4
  283. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  284. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +51 -32
  285. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  286. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +4 -5
  287. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
  288. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +4 -8
  289. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
  290. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +22 -5
  291. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
  292. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +86 -52
  293. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
  294. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +49 -0
  295. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
  296. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +115 -0
  297. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
  298. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +3 -4
  299. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
  300. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +11 -7
  301. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
  302. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +3 -4
  303. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
  304. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +11 -6
  305. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  306. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +4 -5
  307. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  308. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +4 -8
  309. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  310. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +4 -5
  311. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  312. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +4 -8
  313. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  314. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
  315. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
  316. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +17 -13
  317. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
  318. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
  319. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
  320. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +6 -12
  321. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
  322. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
  323. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
  324. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +7 -13
  325. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
  326. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
  327. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
  328. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +6 -12
  329. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
  330. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
  331. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
  332. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +5 -9
  333. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
  334. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
  335. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
  336. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +19 -21
  337. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
  338. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +25 -0
  339. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
  340. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +27 -0
  341. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
  342. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
  343. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
  344. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +17 -13
  345. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
  346. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
  347. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
  348. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +6 -12
  349. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
  350. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
  351. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
  352. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +7 -13
  353. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
  354. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
  355. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
  356. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +6 -12
  357. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
  358. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
  359. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
  360. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +5 -9
  361. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
  362. package/dist/confluent/tools/tool-availability.d.ts +74 -0
  363. package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
  364. package/dist/confluent/tools/tool-availability.js +121 -0
  365. package/dist/confluent/tools/tool-availability.js.map +1 -0
  366. package/dist/confluent/tools/tool-name.d.ts +5 -1
  367. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  368. package/dist/confluent/tools/tool-name.js +4 -0
  369. package/dist/confluent/tools/tool-name.js.map +1 -1
  370. package/dist/confluent/tools/tool-registry.d.ts +18 -0
  371. package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
  372. package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +32 -19
  373. package/dist/confluent/tools/tool-registry.js.map +1 -0
  374. package/dist/env-schema.d.ts +5 -7
  375. package/dist/env-schema.d.ts.map +1 -1
  376. package/dist/env-schema.js +20 -39
  377. package/dist/env-schema.js.map +1 -1
  378. package/dist/env.d.ts +16 -7
  379. package/dist/env.d.ts.map +1 -1
  380. package/dist/env.js +16 -6
  381. package/dist/env.js.map +1 -1
  382. package/dist/index.d.ts +74 -1
  383. package/dist/index.d.ts.map +1 -1
  384. package/dist/index.js +279 -166
  385. package/dist/index.js.map +1 -1
  386. package/dist/logger.d.ts.map +1 -1
  387. package/dist/logger.js +21 -20
  388. package/dist/logger.js.map +1 -1
  389. package/dist/mcp/server.d.ts +29 -0
  390. package/dist/mcp/server.d.ts.map +1 -0
  391. package/dist/mcp/server.js +52 -0
  392. package/dist/mcp/server.js.map +1 -0
  393. package/dist/mcp/transports/auth.d.ts +20 -4
  394. package/dist/mcp/transports/auth.d.ts.map +1 -1
  395. package/dist/mcp/transports/auth.js +27 -7
  396. package/dist/mcp/transports/auth.js.map +1 -1
  397. package/dist/mcp/transports/http.d.ts +8 -2
  398. package/dist/mcp/transports/http.d.ts.map +1 -1
  399. package/dist/mcp/transports/http.js +57 -42
  400. package/dist/mcp/transports/http.js.map +1 -1
  401. package/dist/mcp/transports/manager.d.ts +23 -9
  402. package/dist/mcp/transports/manager.d.ts.map +1 -1
  403. package/dist/mcp/transports/manager.js +27 -24
  404. package/dist/mcp/transports/manager.js.map +1 -1
  405. package/dist/mcp/transports/server.d.ts +1 -1
  406. package/dist/mcp/transports/server.d.ts.map +1 -1
  407. package/dist/mcp/transports/server.js +17 -5
  408. package/dist/mcp/transports/server.js.map +1 -1
  409. package/dist/mcp/transports/session-registry.d.ts +33 -0
  410. package/dist/mcp/transports/session-registry.d.ts.map +1 -0
  411. package/dist/mcp/transports/session-registry.js +65 -0
  412. package/dist/mcp/transports/session-registry.js.map +1 -0
  413. package/dist/mcp/transports/sse.d.ts +13 -2
  414. package/dist/mcp/transports/sse.d.ts.map +1 -1
  415. package/dist/mcp/transports/sse.js +58 -46
  416. package/dist/mcp/transports/sse.js.map +1 -1
  417. package/dist/server-runtime.d.ts +28 -0
  418. package/dist/server-runtime.d.ts.map +1 -0
  419. package/dist/server-runtime.js +73 -0
  420. package/dist/server-runtime.js.map +1 -0
  421. package/package.json +25 -9
  422. package/dist/confluent/helpers.d.ts +0 -11
  423. package/dist/confluent/helpers.d.ts.map +0 -1
  424. package/dist/confluent/helpers.js +0 -17
  425. package/dist/confluent/helpers.js.map +0 -1
  426. package/dist/confluent/tools/tool-factory.d.ts +0 -9
  427. package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
  428. package/dist/confluent/tools/tool-factory.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-telemetry.js","sourceRoot":"","sources":["../../src/confluent/config-telemetry.ts"],"names":[],"mappings":"AAqCA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAsB,EACtB,SAAiC,EACjC,UAAoC;IAEpC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;SACzD,GAAG,CAA0B,CAAC,IAAI,EAAE,EAAE,CACrC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAClD;SACA,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO;QACL,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;QACrD,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1C,eAAe;KAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @fileoverview Direct (api-key) client manager — adds a native Kafka client to the
3
+ * REST/Schema-Registry surfaces inherited from {@link BaseClientManager}.
4
+ */
5
+ import { GlobalConfig, KafkaJS } from "@confluentinc/kafka-javascript";
6
+ import { type DirectConnectionConfig } from "../config/models.js";
7
+ import { BaseClientManager, type BaseClientManagerConfig } from "../confluent/base-client-manager.js";
8
+ import { type ClientManager } from "../confluent/client-manager.js";
9
+ export interface DirectClientManagerConfig extends BaseClientManagerConfig {
10
+ kafka: GlobalConfig;
11
+ }
12
+ /**
13
+ * Direct API-key client manager. Adds a native Kafka client (admin, producer, consumer)
14
+ * authenticated via SASL/PLAIN on top of the REST clients in {@link BaseClientManager}.
15
+ */
16
+ export declare class DirectClientManager extends BaseClientManager implements ClientManager {
17
+ private readonly kafkaConfig;
18
+ private readonly kafkaClient;
19
+ private readonly adminClient;
20
+ private readonly producer;
21
+ constructor(config: DirectClientManagerConfig);
22
+ /** @inheritdoc */
23
+ getConsumer(sessionId?: string): Promise<KafkaJS.Consumer>;
24
+ /** @inheritdoc */
25
+ getKafkaClient(): KafkaJS.Kafka;
26
+ /** @inheritdoc */
27
+ getAdminClient(): Promise<KafkaJS.Admin>;
28
+ /** @inheritdoc */
29
+ getProducer(): Promise<KafkaJS.Producer>;
30
+ /** @inheritdoc */
31
+ getKafkaAdminClient(_clusterId?: string, _envId?: string): Promise<KafkaJS.Admin>;
32
+ /** @inheritdoc */
33
+ getKafkaProducer(_clusterId?: string, _envId?: string): Promise<KafkaJS.Producer>;
34
+ /** @inheritdoc */
35
+ buildKafkaConsumer(_clusterId?: string, _envId?: string, groupId?: string): Promise<KafkaJS.Consumer>;
36
+ /** @inheritdoc */
37
+ disconnect(): Promise<void>;
38
+ }
39
+ /**
40
+ * Constructs a {@link DirectClientManager} from a single direct connection config.
41
+ */
42
+ export declare function constructDirectClientManager(conn: DirectConnectionConfig): DirectClientManager;
43
+ //# sourceMappingURL=direct-client-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-client-manager.d.ts","sourceRoot":"","sources":["../../src/confluent/direct-client-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,mBACX,SAAQ,iBACR,YAAW,aAAa;IAExB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAE3C,MAAM,EAAE,yBAAyB;IAkC7C,kBAAkB;IACZ,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAkBhE,kBAAkB;IAClB,cAAc,IAAI,OAAO,CAAC,KAAK;IAI/B,kBAAkB;IACZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAI9C,kBAAkB;IACZ,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAI9C,kBAAkB;IACZ,mBAAmB,CACvB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAIzB,kBAAkB;IACZ,gBAAgB,CACpB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAI5B,kBAAkB;IACZ,kBAAkB,CACtB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAI5B,kBAAkB;IACZ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAKlC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,sBAAsB,GAC3B,mBAAmB,CAqDrB"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @fileoverview Direct (api-key) client manager — adds a native Kafka client to the
3
+ * REST/Schema-Registry surfaces inherited from {@link BaseClientManager}.
4
+ */
5
+ import { KafkaJS } from "@confluentinc/kafka-javascript";
6
+ import { CONFLUENT_CLOUD_DEFAULT_ENDPOINT, } from "../config/models.js";
7
+ import { BaseClientManager, } from "../confluent/base-client-manager.js";
8
+ import { AsyncLazy, Lazy } from "../lazy.js";
9
+ import { kafkaLogger, logger } from "../logger.js";
10
+ /**
11
+ * Direct API-key client manager. Adds a native Kafka client (admin, producer, consumer)
12
+ * authenticated via SASL/PLAIN on top of the REST clients in {@link BaseClientManager}.
13
+ */
14
+ export class DirectClientManager extends BaseClientManager {
15
+ kafkaConfig;
16
+ kafkaClient;
17
+ adminClient;
18
+ producer;
19
+ constructor(config) {
20
+ super(config);
21
+ this.kafkaConfig = config.kafka;
22
+ this.kafkaClient = new Lazy(() => new KafkaJS.Kafka({
23
+ ...this.kafkaConfig,
24
+ kafkaJS: {
25
+ logger: kafkaLogger,
26
+ // we need to do this since typescript will complain that we are missing configs like `brokers` even though we are passing them in kafkaConfig above
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ },
29
+ }));
30
+ this.adminClient = new AsyncLazy(async () => {
31
+ logger.info("Connecting Kafka Admin");
32
+ const admin = this.kafkaClient.get().admin();
33
+ await admin.connect();
34
+ return admin;
35
+ }, (admin) => admin.disconnect());
36
+ this.producer = new AsyncLazy(async () => {
37
+ logger.info("Connecting Kafka Producer");
38
+ const producer = this.kafkaClient.get().producer();
39
+ await producer.connect();
40
+ return producer;
41
+ }, (producer) => producer.disconnect());
42
+ }
43
+ /** @inheritdoc */
44
+ async getConsumer(sessionId) {
45
+ // Build the config inline, merging with defaults
46
+ const baseGroupId = this.kafkaConfig["group.id"] || "mcp-confluent";
47
+ const groupId = sessionId ? `${baseGroupId}-${sessionId}` : baseGroupId;
48
+ const consumerConfig = {
49
+ // Spread all user-provided config
50
+ ...this.kafkaConfig,
51
+ // Override with our logic
52
+ "group.id": groupId,
53
+ "auto.offset.reset": this.kafkaConfig["auto.offset.reset"] || "earliest",
54
+ "allow.auto.create.topics": this.kafkaConfig["allow.auto.create.topics"] || false,
55
+ "enable.auto.commit": this.kafkaConfig["enable.auto.commit"] || false,
56
+ };
57
+ return this.kafkaClient.get().consumer(consumerConfig);
58
+ }
59
+ /** @inheritdoc */
60
+ getKafkaClient() {
61
+ return this.kafkaClient.get();
62
+ }
63
+ /** @inheritdoc */
64
+ async getAdminClient() {
65
+ return this.adminClient.get();
66
+ }
67
+ /** @inheritdoc */
68
+ async getProducer() {
69
+ return this.producer.get();
70
+ }
71
+ /** @inheritdoc */
72
+ async getKafkaAdminClient(_clusterId, _envId) {
73
+ return this.getAdminClient();
74
+ }
75
+ /** @inheritdoc */
76
+ async getKafkaProducer(_clusterId, _envId) {
77
+ return this.getProducer();
78
+ }
79
+ /** @inheritdoc */
80
+ async buildKafkaConsumer(_clusterId, _envId, groupId) {
81
+ return this.getConsumer(groupId);
82
+ }
83
+ /** @inheritdoc */
84
+ async disconnect() {
85
+ await this.adminClient.close();
86
+ await this.producer.close();
87
+ this.kafkaClient.close();
88
+ }
89
+ }
90
+ /**
91
+ * Constructs a {@link DirectClientManager} from a single direct connection config.
92
+ */
93
+ export function constructDirectClientManager(conn) {
94
+ const kafkaClientConfig = {
95
+ "client.id": "mcp-confluent",
96
+ ...(conn.kafka?.bootstrap_servers && {
97
+ "bootstrap.servers": conn.kafka.bootstrap_servers,
98
+ }),
99
+ ...(conn.kafka?.auth
100
+ ? {
101
+ "security.protocol": "sasl_ssl",
102
+ "sasl.mechanisms": "PLAIN",
103
+ "sasl.username": conn.kafka.auth.key,
104
+ "sasl.password": conn.kafka.auth.secret,
105
+ }
106
+ : {}),
107
+ ...conn.kafka?.extra_properties,
108
+ };
109
+ return new DirectClientManager({
110
+ kafka: kafkaClientConfig,
111
+ endpoints: {
112
+ cloud: conn.confluent_cloud?.endpoint ?? CONFLUENT_CLOUD_DEFAULT_ENDPOINT,
113
+ flink: conn.flink?.endpoint,
114
+ schemaRegistry: conn.schema_registry?.endpoint,
115
+ kafka: conn.kafka?.rest_endpoint,
116
+ telemetry: conn.telemetry?.endpoint,
117
+ },
118
+ auth: {
119
+ cloud: {
120
+ apiKey: conn.confluent_cloud?.auth.key,
121
+ apiSecret: conn.confluent_cloud?.auth.secret,
122
+ },
123
+ tableflow: {
124
+ apiKey: conn.tableflow?.auth.key,
125
+ apiSecret: conn.tableflow?.auth.secret,
126
+ },
127
+ flink: {
128
+ apiKey: conn.flink?.auth.key,
129
+ apiSecret: conn.flink?.auth.secret,
130
+ },
131
+ schemaRegistry: {
132
+ apiKey: conn.schema_registry?.auth?.key,
133
+ apiSecret: conn.schema_registry?.auth?.secret,
134
+ },
135
+ kafka: {
136
+ apiKey: conn.kafka?.auth?.key,
137
+ apiSecret: conn.kafka?.auth?.secret,
138
+ },
139
+ telemetry: {
140
+ apiKey: conn.telemetry?.auth.key,
141
+ apiSecret: conn.telemetry?.auth.secret,
142
+ },
143
+ },
144
+ });
145
+ }
146
+ //# sourceMappingURL=direct-client-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direct-client-manager.js","sourceRoot":"","sources":["../../src/confluent/direct-client-manager.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,46 @@
1
1
  import { Middleware } from "openapi-fetch";
2
+ /**
3
+ * Thrown by the bearer middleware when the token getter returns undefined —
4
+ * typically because OAuth bootstrap has not completed (or has been cleared by
5
+ * shutdown) at the moment a request is about to be sent. Surfaces a clear
6
+ * message for callers; tool handlers can catch it explicitly to return
7
+ * `{ isError: true }` instead of letting it propagate as a protocol-level
8
+ * error from the MCP transport.
9
+ */
10
+ export declare class BearerTokenUnavailableError extends Error {
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * Build a {@link Middleware} that attaches `Authorization: Bearer <token>`
15
+ * read from `getToken()` and sets a `User-Agent` header containing this
16
+ * package's version. The closure is supplied by the caller; this middleware
17
+ * has no knowledge of where the token comes from or when it expires. Throws
18
+ * {@link BearerTokenUnavailableError} when `getToken` returns `undefined`.
19
+ */
20
+ export declare const createBearerMiddleware: (getToken: () => string | undefined) => Middleware;
2
21
  export interface ConfluentEndpoints {
3
22
  cloud?: string;
4
- tableflow?: string;
5
23
  flink?: string;
6
24
  schemaRegistry?: string;
7
25
  kafka?: string;
8
26
  telemetry?: string;
9
27
  }
10
- export interface ConfluentAuth {
28
+ /**
29
+ * Discriminated union over the two authentication shapes the middleware
30
+ * understands. The `api_key` variant's `type` field is optional so existing
31
+ * call sites that pass `{ apiKey, apiSecret }` keep working.
32
+ */
33
+ export type ConfluentAuth = {
34
+ type?: "api_key";
11
35
  apiKey?: string;
12
36
  apiSecret?: string;
13
- }
37
+ } | {
38
+ type: "oauth";
39
+ getToken: () => string | undefined;
40
+ };
14
41
  /**
15
- * Creates a middleware that adds Authorization header using the provided auth credentials
42
+ * Creates a middleware that attaches an Authorization header. Dispatches on
43
+ * the `type` discriminator: `oauth` → bearer; `api_key` (or unset) → Basic.
16
44
  */
17
45
  export declare const createAuthMiddleware: (auth: ConfluentAuth) => Middleware;
18
46
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,aAAa,KAAG,UAkBzD,CAAC"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C;;;;;;;GAOG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,MAAM,GAAG,SAAS,KACjC,UAYD,CAAC;AAEH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,aAAa,KAAG,UAK1D,CAAC"}
@@ -1,9 +1,53 @@
1
1
  import { logger } from "../logger.js";
2
2
  import pkg from "../../package.json" with { type: "json" };
3
3
  /**
4
- * Creates a middleware that adds Authorization header using the provided auth credentials
4
+ * Thrown by the bearer middleware when the token getter returns undefined —
5
+ * typically because OAuth bootstrap has not completed (or has been cleared by
6
+ * shutdown) at the moment a request is about to be sent. Surfaces a clear
7
+ * message for callers; tool handlers can catch it explicitly to return
8
+ * `{ isError: true }` instead of letting it propagate as a protocol-level
9
+ * error from the MCP transport.
5
10
  */
6
- export const createAuthMiddleware = (auth) => ({
11
+ export class BearerTokenUnavailableError extends Error {
12
+ constructor(message) {
13
+ super(message);
14
+ this.name = "BearerTokenUnavailableError";
15
+ }
16
+ }
17
+ /**
18
+ * Build a {@link Middleware} that attaches `Authorization: Bearer <token>`
19
+ * read from `getToken()` and sets a `User-Agent` header containing this
20
+ * package's version. The closure is supplied by the caller; this middleware
21
+ * has no knowledge of where the token comes from or when it expires. Throws
22
+ * {@link BearerTokenUnavailableError} when `getToken` returns `undefined`.
23
+ */
24
+ export const createBearerMiddleware = (getToken) => ({
25
+ async onRequest({ request }) {
26
+ const token = getToken();
27
+ if (!token) {
28
+ throw new BearerTokenUnavailableError("OAuth token is not currently available.");
29
+ }
30
+ request.headers.set("Authorization", `Bearer ${token}`);
31
+ request.headers.set("User-Agent", `mcp-confluent-local/${pkg.version}`);
32
+ return request;
33
+ },
34
+ });
35
+ /**
36
+ * Creates a middleware that attaches an Authorization header. Dispatches on
37
+ * the `type` discriminator: `oauth` → bearer; `api_key` (or unset) → Basic.
38
+ */
39
+ export const createAuthMiddleware = (auth) => {
40
+ if (auth.type === "oauth") {
41
+ return createBearerMiddleware(auth.getToken);
42
+ }
43
+ return createApiKeyMiddleware(auth);
44
+ };
45
+ /**
46
+ * Original Basic-auth middleware, unchanged from before the discriminated
47
+ * union was introduced. Extracted to a named factory so {@link createAuthMiddleware}
48
+ * can dispatch to it without inlining its body.
49
+ */
50
+ const createApiKeyMiddleware = (auth) => ({
7
51
  async onRequest({ request }) {
8
52
  logger.debug({ request }, "Processing request");
9
53
  if (auth.apiKey && auth.apiSecret) {
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAgB3D;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAmB,EAAc,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC9E,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrD,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAC3D,wBAAwB,OAAO,oCAAoC,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAkC,EACtB,EAAE,CAAC,CAAC;IAChB,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,2BAA2B,CACnC,yCAAyC,CAC1C,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC;AAmBH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAmB,EAAc,EAAE;IACtE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAG/B,EAAc,EAAE,CAAC,CAAC;IACjB,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC9E,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrD,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAC3D,wBAAwB,OAAO,oCAAoC,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC"}
@@ -1,12 +1,22 @@
1
+ import { KafkaJS } from "@confluentinc/kafka-javascript";
2
+ import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
3
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
1
4
  import { Analytics } from "@segment/analytics-node";
2
- import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
5
+ import * as dotenv from "dotenv";
6
+ import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
7
+ import { createServer as httpCreateServer } from "node:http";
3
8
  import { arch, homedir, platform, release } from "node:os";
4
9
  export declare const buildConfig: {
5
10
  TELEMETRY_WRITE_KEY: string;
6
11
  };
12
+ export declare const dotenvLib: {
13
+ config: typeof dotenv.config;
14
+ };
7
15
  export declare const fs: {
16
+ existsSync: typeof existsSync;
8
17
  readFileSync: typeof readFileSync;
9
18
  writeFileSync: typeof writeFileSync;
19
+ appendFileSync: typeof appendFileSync;
10
20
  mkdirSync: typeof mkdirSync;
11
21
  };
12
22
  export declare const os: {
@@ -17,47 +27,30 @@ export declare const os: {
17
27
  };
18
28
  export declare const path: {
19
29
  join: (...paths: string[]) => string;
30
+ resolve: (...paths: string[]) => string;
31
+ dirname: (path: string) => string;
32
+ basename: (path: string, suffix?: string) => string;
20
33
  };
21
34
  export declare const segment: {
22
35
  Analytics: typeof Analytics;
23
36
  };
24
- export declare const config: {
25
- env: {
26
- HTTP_PORT: number;
27
- HTTP_HOST: string;
28
- HTTP_MCP_ENDPOINT_PATH: string;
29
- SSE_MCP_ENDPOINT_PATH: string;
30
- SSE_MCP_MESSAGE_ENDPOINT_PATH: string;
31
- LOG_LEVEL: "info" | "fatal" | "error" | "warn" | "debug" | "trace";
32
- MCP_AUTH_DISABLED: boolean;
33
- DO_NOT_TRACK: boolean;
34
- MCP_ALLOWED_HOSTS: string[];
35
- MCP_API_KEY?: string | undefined;
36
- BOOTSTRAP_SERVERS?: string | undefined;
37
- KAFKA_API_KEY?: string | undefined;
38
- KAFKA_API_SECRET?: string | undefined;
39
- FLINK_API_KEY?: string | undefined;
40
- FLINK_API_SECRET?: string | undefined;
41
- CONFLUENT_CLOUD_API_KEY?: string | undefined;
42
- CONFLUENT_CLOUD_API_SECRET?: string | undefined;
43
- SCHEMA_REGISTRY_API_KEY?: string | undefined;
44
- SCHEMA_REGISTRY_API_SECRET?: string | undefined;
45
- TABLEFLOW_API_KEY?: string | undefined;
46
- TABLEFLOW_API_SECRET?: string | undefined;
47
- FLINK_ENV_ID?: string | undefined;
48
- FLINK_ORG_ID?: string | undefined;
49
- FLINK_REST_ENDPOINT?: string | undefined;
50
- FLINK_COMPUTE_POOL_ID?: string | undefined;
51
- FLINK_ENV_NAME?: string | undefined;
52
- FLINK_DATABASE_NAME?: string | undefined;
53
- KAFKA_CLUSTER_ID?: string | undefined;
54
- KAFKA_ENV_ID?: string | undefined;
55
- CONFLUENT_CLOUD_REST_ENDPOINT?: string | undefined;
56
- SCHEMA_REGISTRY_ENDPOINT?: string | undefined;
57
- KAFKA_REST_ENDPOINT?: string | undefined;
58
- TELEMETRY_ENDPOINT?: string | undefined;
59
- TELEMETRY_API_KEY?: string | undefined;
60
- TELEMETRY_API_SECRET?: string | undefined;
61
- };
37
+ export declare const nodeFetch: {
38
+ fetch: typeof fetch;
39
+ };
40
+ export declare const nodeCrypto: {
41
+ randomBytes: (size: number) => Buffer;
42
+ };
43
+ export declare const nodeHttp: {
44
+ createServer: typeof httpCreateServer;
45
+ };
46
+ export declare const nodeOpen: {
47
+ open: (target: string) => Promise<void>;
48
+ };
49
+ export declare const sdkTransports: {
50
+ StreamableHTTPServerTransport: typeof StreamableHTTPServerTransport;
51
+ SSEServerTransport: typeof SSEServerTransport;
52
+ };
53
+ export declare const kafkaDeps: {
54
+ Kafka: typeof KafkaJS.Kafka;
62
55
  };
63
56
  //# sourceMappingURL=node-deps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-deps.d.ts","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAG3D,eAAO,MAAM,WAAW;;CAA0B,CAAC;AACnD,eAAO,MAAM,EAAE;;;;CAA6C,CAAC;AAC7D,eAAO,MAAM,EAAE;;;;;CAAuC,CAAC;AACvD,eAAO,MAAM,IAAI;;CAAW,CAAC;AAC7B,eAAO,MAAM,OAAO;;CAAgB,CAAC;AACrC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoB,CAAC"}
1
+ {"version":3,"file":"node-deps.d.ts","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAG3D,eAAO,MAAM,WAAW;;CAA0B,CAAC;AACnD,eAAO,MAAM,SAAS;;CAA4B,CAAC;AACnD,eAAO,MAAM,EAAE;;;;;;CAMd,CAAC;AACF,eAAO,MAAM,EAAE;;;;;CAAuC,CAAC;AACvD,eAAO,MAAM,IAAI;;;;;CAAuC,CAAC;AACzD,eAAO,MAAM,OAAO;;CAAgB,CAAC;AACrC,eAAO,MAAM,SAAS;;CAA8B,CAAC;AAIrD,eAAO,MAAM,UAAU;wBACD,MAAM,KAAG,MAAM;CACpC,CAAC;AACF,eAAO,MAAM,QAAQ;;CAAqC,CAAC;AAG3D,eAAO,MAAM,QAAQ;mBACE,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;CAI5C,CAAC;AACF,eAAO,MAAM,aAAa;;;CAGzB,CAAC;AAGF,eAAO,MAAM,SAAS;;CAA2B,CAAC"}
@@ -1,14 +1,49 @@
1
- // Wrappers for easier stubbing in tests since sinon can't stub ES module imports directly
1
+ // Wrappers for easier stubbing in tests — ESM live bindings can't be stubbed at runtime,
2
+ // but property access on these namespace objects can be (via `vi.spyOn`).
3
+ import { KafkaJS } from "@confluentinc/kafka-javascript";
4
+ import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
5
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
2
6
  import { Analytics } from "@segment/analytics-node";
3
7
  import { TELEMETRY_WRITE_KEY } from "../build-config.js";
4
- import envProxy from "../env.js";
5
- import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
8
+ import * as dotenv from "dotenv";
9
+ import { randomBytes } from "node:crypto";
10
+ import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
11
+ import { createServer as httpCreateServer } from "node:http";
6
12
  import { arch, homedir, platform, release } from "node:os";
7
- import { join } from "node:path";
13
+ import { basename, dirname, join, resolve } from "node:path";
8
14
  export const buildConfig = { TELEMETRY_WRITE_KEY };
9
- export const fs = { readFileSync, writeFileSync, mkdirSync };
15
+ export const dotenvLib = { config: dotenv.config };
16
+ export const fs = {
17
+ existsSync,
18
+ readFileSync,
19
+ writeFileSync,
20
+ appendFileSync,
21
+ mkdirSync,
22
+ };
10
23
  export const os = { homedir, platform, release, arch };
11
- export const path = { join };
24
+ export const path = { join, resolve, dirname, basename };
12
25
  export const segment = { Analytics };
13
- export const config = { env: envProxy };
26
+ export const nodeFetch = { fetch: globalThis.fetch };
27
+ // Wrapped as a single-signature arrow so spies don't have to disambiguate
28
+ // between the sync and callback overloads of the underlying `node:crypto`
29
+ // `randomBytes`. The codebase only uses the sync form.
30
+ export const nodeCrypto = {
31
+ randomBytes: (size) => randomBytes(size),
32
+ };
33
+ export const nodeHttp = { createServer: httpCreateServer };
34
+ // `open` is loaded lazily so non-OAuth runs don't pay the import cost (it
35
+ // pulls in is-wsl, default-browser, etc.).
36
+ export const nodeOpen = {
37
+ open: async (target) => {
38
+ const { default: open } = await import("open");
39
+ await open(target);
40
+ },
41
+ };
42
+ export const sdkTransports = {
43
+ StreamableHTTPServerTransport,
44
+ SSEServerTransport,
45
+ };
46
+ // KafkaJS constructor wrapped so tests can spy on `kafkaDeps.Kafka` and return
47
+ // a mock Kafka instance without needing vi.mock on the external module.
48
+ export const kafkaDeps = { Kafka: KafkaJS.Kafka };
14
49
  //# sourceMappingURL=node-deps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-deps.js","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,mBAAmB,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AAC7D,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"node-deps.js","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,0EAA0E;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,mBAAmB,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,cAAc;IACd,SAAS;CACV,CAAC;AACF,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;AACrD,0EAA0E;AAC1E,0EAA0E;AAC1E,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;CACzD,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAC3D,0EAA0E;AAC1E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,KAAK,EAAE,MAAc,EAAiB,EAAE;QAC5C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;CACF,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,6BAA6B;IAC7B,kBAAkB;CACnB,CAAC;AACF,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { type AuthErrors } from "../../confluent/oauth/errors.js";
2
+ import type { Auth0Config, ConfluentTokenSet } from "../../confluent/oauth/types.js";
3
+ /**
4
+ * Owns one user's Confluent OAuth lifecycle — token state plus the
5
+ * transformations that advance it. Internal state advances via atomic
6
+ * transform functions under {@link AuthContext.updateTokens} so each step is
7
+ * atomic and no caller mutates the token set directly.
8
+ */
9
+ export declare class AuthContext {
10
+ private readonly auth0Config;
11
+ private internalTokens;
12
+ private cleared;
13
+ private refreshTimer;
14
+ private inflightRefresh;
15
+ private errors;
16
+ private failedRefreshAttempts;
17
+ private constructor();
18
+ /** Runs the auth code → CP → DP chain and wraps the result in a context. */
19
+ static newFromInitialLogin(auth0Config: Auth0Config, authCode: string, codeVerifier: string): Promise<AuthContext>;
20
+ /** Build a context from an already-acquired token set. */
21
+ static fromTokens(auth0Config: Auth0Config, tokens: ConfluentTokenSet): AuthContext;
22
+ /** Opaque access token — stable across refreshes. */
23
+ get accessToken(): string;
24
+ /**
25
+ * Current control-plane bearer token, or `undefined` if the context is
26
+ * cleared or the CP token has expired. Call this immediately before each
27
+ * API request — don't cache the returned string across awaits.
28
+ */
29
+ getControlPlaneToken(): string | undefined;
30
+ /**
31
+ * Current data-plane bearer token, or `undefined` if the context is
32
+ * cleared or the DP token has expired. Same usage guidance as
33
+ * {@link getControlPlaneToken}.
34
+ */
35
+ getDataPlaneToken(): string | undefined;
36
+ /**
37
+ * Readonly view of current auth-lifecycle errors. Consumers check this to decide
38
+ * whether to prompt re-auth (when a non-transient error has been flagged).
39
+ */
40
+ getErrors(): Readonly<AuthErrors>;
41
+ /** True when the refresh token is no longer usable (expired or cleared). */
42
+ refreshTokenExpired(now?: number): boolean;
43
+ /**
44
+ * Pure predicate: should the refresh loop call `refresh()` on this context
45
+ * right now? True when the refresh token is still live, no non-transient
46
+ * error has been recorded, and the CP token is within the refresh window.
47
+ */
48
+ shouldAttemptRefresh(now?: number): boolean;
49
+ /**
50
+ * Rotate the refresh token, then derive new CP and DP tokens. The rotated
51
+ * refresh token is persisted before the CP/DP leg so a phase-2 failure
52
+ * leaves the context with a valid (fresh) refresh token. The next scheduler
53
+ * tick still re-rotates (we don't cache the id_token across ticks), but the
54
+ * session isn't bricked by a partial failure.
55
+ *
56
+ * Single-flight: concurrent callers (e.g., the refresh loop + an explicit
57
+ * tool-triggered call) await the same in-flight promise. Refresh tokens are
58
+ * single-use, so overlapping calls would burn the same token.
59
+ */
60
+ refresh(): Promise<void>;
61
+ private doRefresh;
62
+ /**
63
+ * Records a refresh failure on the context. A failure is transient unless
64
+ * its message matches a known-permanent signal, or the consecutive failure
65
+ * counter hits {@link MAX_CONSECUTIVE_TRANSIENT_FAILURES}. A non-transient
66
+ * record flips `shouldAttemptRefresh` to `false` until the context is
67
+ * cleared / re-authenticated.
68
+ */
69
+ private recordRefreshError;
70
+ /**
71
+ * Mark this context as cleared — subsequent `refresh()` is a no-op, any
72
+ * running refresh loop is stopped, and the accessors (`getControlPlaneToken`,
73
+ * `getDataPlaneToken`) return `undefined`. Internal state is not exposed to
74
+ * consumers, so no field scrubbing is needed.
75
+ */
76
+ clear(): void;
77
+ /**
78
+ * Starts a background loop that refreshes the CP/DP token pair just before
79
+ * the CP token expires. The loop self-reschedules: each fire sets the next
80
+ * `setTimeout` at `controlPlaneExpiresAt - REFRESH_WINDOW_MS` from the
81
+ * post-refresh state, so the schedule tracks the actual token expiry.
82
+ */
83
+ startRefreshLoop(): void;
84
+ private scheduleNextRefresh;
85
+ /** Stops the background refresh loop. Safe to call even if not started. */
86
+ stopRefreshLoop(): void;
87
+ /**
88
+ * Applies a named transform to the token set. Each transform returns a
89
+ * whole new {@link ConfluentTokenSet}; callers never mutate the state
90
+ * directly.
91
+ */
92
+ private updateTokens;
93
+ }
94
+ //# sourceMappingURL=auth-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-context.d.ts","sourceRoot":"","sources":["../../../src/confluent/oauth/auth-context.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,UAAU,EAEhB,MAAM,gCAAgC,CAAC;AAcxC,OAAO,KAAK,EACV,WAAW,EAEX,iBAAiB,EAGlB,MAAM,+BAA+B,CAAC;AAkBvC;;;;;GAKG;AACH,qBAAa,WAAW;IASpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR9B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO;IAOP,4EAA4E;WAC/D,mBAAmB,CAC9B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,WAAW,CAAC;IAqBvB,0DAA0D;IAC1D,MAAM,CAAC,UAAU,CACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,iBAAiB,GACxB,WAAW;IAId,qDAAqD;IACrD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;OAIG;IACH,oBAAoB,IAAI,MAAM,GAAG,SAAS;IAO1C;;;;OAIG;IACH,iBAAiB,IAAI,MAAM,GAAG,SAAS;IAMvC;;;OAGG;IACH,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC;IAIjC,4EAA4E;IAC5E,mBAAmB,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO;IAQtD;;;;OAIG;IACH,oBAAoB,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO;IASvD;;;;;;;;;;OAUG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAYhB,SAAS;IAiFvB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;OAKG;IACH,gBAAgB,IAAI,IAAI;IAexB,OAAO,CAAC,mBAAmB;IAqD3B,2EAA2E;IAC3E,eAAe,IAAI,IAAI;IAQvB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAMrB"}