@confluentinc/mcp-confluent 1.2.2 → 1.4.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 (508) hide show
  1. package/README.md +299 -240
  2. package/assets/oauth-templates/callback-failure.html +22 -0
  3. package/assets/oauth-templates/callback-success.html +99 -0
  4. package/assets/oauth-templates/logo.html +91 -0
  5. package/assets/oauth-templates/styles.html +110 -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 +478 -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 +399 -0
  25. package/dist/config/models.d.ts.map +1 -0
  26. package/dist/config/models.js +406 -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 +133 -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 +154 -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 +33 -39
  53. package/dist/confluent/node-deps.d.ts.map +1 -1
  54. package/dist/confluent/node-deps.js +48 -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 +13 -0
  65. package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
  66. package/dist/confluent/oauth/callback-pages.js +47 -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 +45 -0
  81. package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
  82. package/dist/confluent/oauth/pkce-login.js +270 -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/schema-registry-helper.d.ts +5 -9
  105. package/dist/confluent/schema-registry-helper.d.ts.map +1 -1
  106. package/dist/confluent/schema-registry-helper.js +1 -9
  107. package/dist/confluent/schema-registry-helper.js.map +1 -1
  108. package/dist/confluent/telemetry.d.ts +38 -1
  109. package/dist/confluent/telemetry.d.ts.map +1 -1
  110. package/dist/confluent/telemetry.js +37 -8
  111. package/dist/confluent/telemetry.js.map +1 -1
  112. package/dist/confluent/tools/base-tools.d.ts +140 -23
  113. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  114. package/dist/confluent/tools/base-tools.js +98 -4
  115. package/dist/confluent/tools/base-tools.js.map +1 -1
  116. package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
  117. package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
  118. package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
  119. package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
  120. package/dist/confluent/tools/connection-predicates.d.ts +176 -0
  121. package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
  122. package/dist/confluent/tools/connection-predicates.js +284 -0
  123. package/dist/confluent/tools/connection-predicates.js.map +1 -0
  124. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +5 -6
  125. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
  126. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +40 -11
  127. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
  128. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +6 -6
  129. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  130. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +6 -9
  131. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  132. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +6 -6
  133. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  134. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +6 -9
  135. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  136. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +6 -6
  137. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  138. package/dist/confluent/tools/handlers/catalog/delete-tag.js +6 -9
  139. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  140. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +6 -6
  141. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  142. package/dist/confluent/tools/handlers/catalog/list-tags.js +6 -9
  143. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  144. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +6 -6
  145. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  146. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +6 -9
  147. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  148. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +5 -6
  149. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  150. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +11 -13
  151. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  152. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +34 -0
  153. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
  154. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +47 -0
  155. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
  156. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
  157. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  158. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +21 -21
  159. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  160. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
  161. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  162. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +10 -15
  163. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  164. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.d.ts +9 -0
  165. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.d.ts.map +1 -0
  166. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js +35 -0
  167. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js.map +1 -0
  168. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.d.ts +9 -0
  169. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.d.ts.map +1 -0
  170. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js +66 -0
  171. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js.map +1 -0
  172. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.d.ts +9 -0
  173. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.d.ts.map +1 -0
  174. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js +131 -0
  175. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js.map +1 -0
  176. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.d.ts +9 -0
  177. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.d.ts.map +1 -0
  178. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js +244 -0
  179. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js.map +1 -0
  180. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.d.ts +9 -0
  181. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.d.ts.map +1 -0
  182. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js +35 -0
  183. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js.map +1 -0
  184. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.d.ts +9 -0
  185. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.d.ts.map +1 -0
  186. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js +44 -0
  187. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js.map +1 -0
  188. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.d.ts +9 -0
  189. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.d.ts.map +1 -0
  190. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js +35 -0
  191. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js.map +1 -0
  192. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
  193. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  194. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +15 -17
  195. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  196. package/dist/confluent/tools/handlers/connect/pause-connector-handler.d.ts +9 -0
  197. package/dist/confluent/tools/handlers/connect/pause-connector-handler.d.ts.map +1 -0
  198. package/dist/confluent/tools/handlers/connect/pause-connector-handler.js +35 -0
  199. package/dist/confluent/tools/handlers/connect/pause-connector-handler.js.map +1 -0
  200. package/dist/confluent/tools/handlers/connect/restart-connector-handler.d.ts +9 -0
  201. package/dist/confluent/tools/handlers/connect/restart-connector-handler.d.ts.map +1 -0
  202. package/dist/confluent/tools/handlers/connect/restart-connector-handler.js +35 -0
  203. package/dist/confluent/tools/handlers/connect/restart-connector-handler.js.map +1 -0
  204. package/dist/confluent/tools/handlers/connect/resume-connector-handler.d.ts +9 -0
  205. package/dist/confluent/tools/handlers/connect/resume-connector-handler.d.ts.map +1 -0
  206. package/dist/confluent/tools/handlers/connect/resume-connector-handler.js +35 -0
  207. package/dist/confluent/tools/handlers/connect/resume-connector-handler.js.map +1 -0
  208. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.d.ts +9 -0
  209. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.d.ts.map +1 -0
  210. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js +44 -0
  211. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js.map +1 -0
  212. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +58 -0
  213. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
  214. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +135 -0
  215. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
  216. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +18 -0
  217. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
  218. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +235 -0
  219. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
  220. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +14 -0
  221. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
  222. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +286 -0
  223. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
  224. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +11 -12
  225. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
  226. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +11 -14
  227. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  228. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +5 -6
  229. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
  230. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +6 -9
  231. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  232. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +32 -11
  233. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
  234. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +22 -16
  235. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
  236. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
  237. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
  238. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +34 -30
  239. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
  240. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
  241. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
  242. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
  243. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
  244. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
  245. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
  246. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +34 -30
  247. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
  248. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
  249. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
  250. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +21 -24
  251. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
  252. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
  253. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
  254. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +21 -24
  255. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
  256. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
  257. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
  258. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +22 -33
  259. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
  260. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
  261. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  262. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +18 -23
  263. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  264. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
  265. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  266. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -13
  267. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  268. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
  269. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
  270. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +7 -13
  271. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
  272. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
  273. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
  274. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +8 -15
  275. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
  276. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
  277. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
  278. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
  279. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
  280. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
  281. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +11 -17
  282. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
  283. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +15 -2
  284. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
  285. package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
  286. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +22 -0
  287. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
  288. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +32 -0
  289. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
  290. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
  291. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
  292. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +7 -13
  293. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
  294. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
  295. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  296. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -17
  297. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  298. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
  299. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
  300. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -13
  301. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
  302. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +5 -6
  303. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  304. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +22 -20
  305. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  306. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +216 -30
  307. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
  308. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +797 -70
  309. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
  310. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.d.ts +48 -0
  311. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.d.ts.map +1 -0
  312. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.js +84 -0
  313. package/dist/confluent/tools/handlers/kafka/consumer-group-enums.js.map +1 -0
  314. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.d.ts +54 -0
  315. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.d.ts.map +1 -0
  316. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.js +89 -0
  317. package/dist/confluent/tools/handlers/kafka/consumer-group-helpers.js.map +1 -0
  318. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +5 -5
  319. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  320. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +52 -15
  321. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  322. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +5 -5
  323. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  324. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +26 -8
  325. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  326. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.d.ts +64 -0
  327. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.d.ts.map +1 -0
  328. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js +140 -0
  329. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js.map +1 -0
  330. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.d.ts +73 -0
  331. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.d.ts.map +1 -0
  332. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js +337 -0
  333. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js.map +1 -0
  334. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.d.ts +43 -0
  335. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.d.ts.map +1 -0
  336. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js +123 -0
  337. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js.map +1 -0
  338. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +5 -6
  339. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
  340. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +22 -20
  341. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
  342. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.d.ts +45 -0
  343. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.d.ts.map +1 -0
  344. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js +86 -0
  345. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js.map +1 -0
  346. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +5 -5
  347. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  348. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +25 -10
  349. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  350. package/dist/confluent/tools/handlers/kafka/partition-watermarks.d.ts +54 -0
  351. package/dist/confluent/tools/handlers/kafka/partition-watermarks.d.ts.map +1 -0
  352. package/dist/confluent/tools/handlers/kafka/partition-watermarks.js +56 -0
  353. package/dist/confluent/tools/handlers/kafka/partition-watermarks.js.map +1 -0
  354. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +8 -8
  355. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  356. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +57 -46
  357. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  358. package/dist/confluent/tools/handlers/kafka/topic-metadata.d.ts +18 -0
  359. package/dist/confluent/tools/handlers/kafka/topic-metadata.d.ts.map +1 -0
  360. package/dist/confluent/tools/handlers/kafka/topic-metadata.js +18 -0
  361. package/dist/confluent/tools/handlers/kafka/topic-metadata.js.map +1 -0
  362. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +6 -6
  363. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
  364. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +6 -9
  365. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
  366. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +24 -6
  367. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
  368. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +88 -53
  369. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
  370. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +50 -0
  371. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
  372. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +116 -0
  373. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
  374. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +5 -5
  375. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
  376. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +13 -8
  377. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
  378. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +5 -5
  379. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
  380. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +13 -7
  381. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  382. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +6 -6
  383. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  384. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +6 -9
  385. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  386. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +6 -6
  387. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  388. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +6 -9
  389. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  390. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
  391. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
  392. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +17 -13
  393. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
  394. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
  395. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
  396. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +6 -12
  397. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
  398. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
  399. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
  400. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +7 -13
  401. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
  402. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
  403. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
  404. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +6 -12
  405. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
  406. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
  407. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
  408. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +5 -9
  409. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
  410. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
  411. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
  412. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +18 -21
  413. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
  414. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +26 -0
  415. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
  416. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +28 -0
  417. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
  418. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
  419. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
  420. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +17 -13
  421. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
  422. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
  423. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
  424. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +6 -12
  425. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
  426. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
  427. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
  428. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +7 -13
  429. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
  430. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
  431. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
  432. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +6 -12
  433. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
  434. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
  435. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
  436. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +5 -9
  437. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
  438. package/dist/confluent/tools/tool-availability.d.ts +91 -0
  439. package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
  440. package/dist/confluent/tools/tool-availability.js +130 -0
  441. package/dist/confluent/tools/tool-availability.js.map +1 -0
  442. package/dist/confluent/tools/tool-name.d.ts +20 -2
  443. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  444. package/dist/confluent/tools/tool-name.js +19 -1
  445. package/dist/confluent/tools/tool-name.js.map +1 -1
  446. package/dist/confluent/tools/tool-registry.d.ts +17 -0
  447. package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
  448. package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +66 -22
  449. package/dist/confluent/tools/tool-registry.js.map +1 -0
  450. package/dist/env-schema.d.ts +6 -7
  451. package/dist/env-schema.d.ts.map +1 -1
  452. package/dist/env-schema.js +30 -44
  453. package/dist/env-schema.js.map +1 -1
  454. package/dist/env.d.ts +17 -7
  455. package/dist/env.d.ts.map +1 -1
  456. package/dist/env.js +16 -6
  457. package/dist/env.js.map +1 -1
  458. package/dist/index.d.ts +74 -1
  459. package/dist/index.d.ts.map +1 -1
  460. package/dist/index.js +302 -166
  461. package/dist/index.js.map +1 -1
  462. package/dist/logger.d.ts.map +1 -1
  463. package/dist/logger.js +21 -20
  464. package/dist/logger.js.map +1 -1
  465. package/dist/mcp/server.d.ts +29 -0
  466. package/dist/mcp/server.d.ts.map +1 -0
  467. package/dist/mcp/server.js +53 -0
  468. package/dist/mcp/server.js.map +1 -0
  469. package/dist/mcp/transports/auth.d.ts +20 -4
  470. package/dist/mcp/transports/auth.d.ts.map +1 -1
  471. package/dist/mcp/transports/auth.js +27 -7
  472. package/dist/mcp/transports/auth.js.map +1 -1
  473. package/dist/mcp/transports/http.d.ts +8 -2
  474. package/dist/mcp/transports/http.d.ts.map +1 -1
  475. package/dist/mcp/transports/http.js +57 -42
  476. package/dist/mcp/transports/http.js.map +1 -1
  477. package/dist/mcp/transports/manager.d.ts +23 -9
  478. package/dist/mcp/transports/manager.d.ts.map +1 -1
  479. package/dist/mcp/transports/manager.js +27 -24
  480. package/dist/mcp/transports/manager.js.map +1 -1
  481. package/dist/mcp/transports/server.d.ts +1 -1
  482. package/dist/mcp/transports/server.d.ts.map +1 -1
  483. package/dist/mcp/transports/server.js +17 -5
  484. package/dist/mcp/transports/server.js.map +1 -1
  485. package/dist/mcp/transports/session-registry.d.ts +33 -0
  486. package/dist/mcp/transports/session-registry.d.ts.map +1 -0
  487. package/dist/mcp/transports/session-registry.js +65 -0
  488. package/dist/mcp/transports/session-registry.js.map +1 -0
  489. package/dist/mcp/transports/sse.d.ts +13 -2
  490. package/dist/mcp/transports/sse.d.ts.map +1 -1
  491. package/dist/mcp/transports/sse.js +58 -46
  492. package/dist/mcp/transports/sse.js.map +1 -1
  493. package/dist/server-runtime.d.ts +28 -0
  494. package/dist/server-runtime.d.ts.map +1 -0
  495. package/dist/server-runtime.js +73 -0
  496. package/dist/server-runtime.js.map +1 -0
  497. package/package.json +26 -9
  498. package/dist/confluent/helpers.d.ts +0 -11
  499. package/dist/confluent/helpers.d.ts.map +0 -1
  500. package/dist/confluent/helpers.js +0 -17
  501. package/dist/confluent/helpers.js.map +0 -1
  502. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +0 -11
  503. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +0 -1
  504. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +0 -59
  505. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +0 -1
  506. package/dist/confluent/tools/tool-factory.d.ts +0 -9
  507. package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
  508. package/dist/confluent/tools/tool-factory.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ import { CallToolResult } from "../../../../confluent/schema.js";
2
+ import { BaseToolHandler, ToolCategory, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ServerRuntime } from "../../../../server-runtime.js";
4
+ import { z } from "zod";
5
+ export declare const getPartitionOffsetsArgs: z.ZodObject<{
6
+ topicName: z.ZodString;
7
+ partition: z.ZodOptional<z.ZodNumber>;
8
+ cluster_id: z.ZodOptional<z.ZodString>;
9
+ environment_id: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>;
11
+ /**
12
+ * One partition's offset metadata as the tool returns it. `lowWatermark` and
13
+ * `highWatermark` are strings to preserve int64 precision past JS's 2^53
14
+ * safe-integer boundary; `messageCount` is a `Number` because the BigInt
15
+ * subtraction is done server-side and asking an LLM caller to subtract two
16
+ * int64-typed strings is the wrong ergonomic trade.
17
+ */
18
+ export type PartitionOffsetInfo = {
19
+ partition: number;
20
+ lowWatermark: string;
21
+ highWatermark: string;
22
+ messageCount: number;
23
+ };
24
+ /** Structured response payload mirrored into `result.structuredContent`. */
25
+ export type GetPartitionOffsetsResponse = {
26
+ topicName: string;
27
+ partitions: PartitionOffsetInfo[];
28
+ };
29
+ /**
30
+ * Read-only tool that returns per-partition low/high watermarks (and the
31
+ * derived message count) for a single Kafka topic. Thin wrapper over the
32
+ * broker's `Admin.fetchTopicOffsets` admin call — the metadata primitive
33
+ * that `consume-messages` already relies on internally for `start:
34
+ * "earliest" / "latest" / {timestamp} / {tail}` resolution but doesn't
35
+ * surface in its response.
36
+ */
37
+ export declare class GetPartitionOffsetsHandler extends BaseToolHandler {
38
+ handle(runtime: ServerRuntime, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
39
+ getToolConfig(): ToolConfig;
40
+ readonly category = ToolCategory.Kafka;
41
+ readonly predicate: import("../../../../confluent/tools/connection-predicates.js").ConnectionPredicate;
42
+ }
43
+ //# sourceMappingURL=get-partition-offsets-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-partition-offsets-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/get-partition-offsets-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,UAAU,EACX,MAAM,oCAAoC,CAAC;AAc5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,uBAAuB;;;;;iBA0BlC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC,CAAC;AAsBF;;;;;;;GAOG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IACvD,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAkF1B,aAAa,IAAI,UAAU;IAY3B,QAAQ,CAAC,QAAQ,sBAAsB;IACvC,QAAQ,CAAC,SAAS,8EAAyB;CAC5C"}
@@ -0,0 +1,123 @@
1
+ import { KafkaJS } from "@confluentinc/kafka-javascript";
2
+ import { BaseToolHandler, READ_ONLY, ToolCategory, } from "../../../../confluent/tools/base-tools.js";
3
+ import { disposeIfOAuth, formatKafkaError, resolveKafkaClusterArgs, } from "../../../../confluent/tools/cluster-arg-resolvers.js";
4
+ import { kafkaBootstrapOrOAuth } from "../../../../confluent/tools/connection-predicates.js";
5
+ import { fetchPartitionWatermarks, narrowMessageCount, } from "../../../../confluent/tools/handlers/kafka/partition-watermarks.js";
6
+ import { ToolName } from "../../../../confluent/tools/tool-name.js";
7
+ import { logger } from "../../../../logger.js";
8
+ import { z } from "zod";
9
+ export const getPartitionOffsetsArgs = z.object({
10
+ topicName: z
11
+ .string()
12
+ .nonempty()
13
+ .describe("Name of the Kafka topic to fetch partition offsets for."),
14
+ partition: z
15
+ .number()
16
+ .int()
17
+ .nonnegative()
18
+ .optional()
19
+ .describe("Optional. Restrict the response to this partition (0-indexed). " +
20
+ "Omit to return every partition of the topic."),
21
+ cluster_id: z
22
+ .string()
23
+ .optional()
24
+ .describe("Confluent Cloud logical Kafka cluster ID (lkc-...). Discover via list-clusters."),
25
+ environment_id: z
26
+ .string()
27
+ .optional()
28
+ .describe("Confluent Cloud environment ID (env-...) that owns the cluster. Discover via list-environments."),
29
+ });
30
+ function mapToPartitionOffsetInfo(topicName, watermark) {
31
+ const low = BigInt(watermark.low);
32
+ const high = BigInt(watermark.high);
33
+ const diff = high - low;
34
+ return {
35
+ partition: watermark.partition,
36
+ lowWatermark: watermark.low,
37
+ highWatermark: watermark.high,
38
+ messageCount: narrowMessageCount(diff, {
39
+ topicName,
40
+ partition: watermark.partition,
41
+ low: watermark.low,
42
+ high: watermark.high,
43
+ }),
44
+ };
45
+ }
46
+ /**
47
+ * Read-only tool that returns per-partition low/high watermarks (and the
48
+ * derived message count) for a single Kafka topic. Thin wrapper over the
49
+ * broker's `Admin.fetchTopicOffsets` admin call — the metadata primitive
50
+ * that `consume-messages` already relies on internally for `start:
51
+ * "earliest" / "latest" / {timestamp} / {tail}` resolution but doesn't
52
+ * surface in its response.
53
+ */
54
+ export class GetPartitionOffsetsHandler extends BaseToolHandler {
55
+ async handle(runtime, toolArguments) {
56
+ const parsed = getPartitionOffsetsArgs.parse(toolArguments);
57
+ const { connId, clientManager } = this.resolveSoleConnection(runtime);
58
+ const resolved = resolveKafkaClusterArgs(parsed, runtime, connId);
59
+ const admin = await clientManager.getKafkaAdminClient(resolved.clusterId, resolved.envId);
60
+ try {
61
+ let watermarks;
62
+ try {
63
+ watermarks = await fetchPartitionWatermarks(admin, parsed.topicName);
64
+ }
65
+ catch (err) {
66
+ // Two distinct librdkafka codes report the same conceptual failure:
67
+ // - ERR_UNKNOWN_TOPIC_OR_PART (broker-issued, single underscore)
68
+ // - ERR__UNKNOWN_TOPIC (local-side, double underscore — fires when
69
+ // the client's own metadata cache rejects the topic before
70
+ // reaching the broker)
71
+ // Only those two get the friendly "topic not found" message;
72
+ // everything else (auth denials, TLS failures, broker timeouts,
73
+ // unknown shapes) flows through formatKafkaError so callers see
74
+ // actionable signal instead of a misleading not-found label.
75
+ const isUnknownTopic = err instanceof KafkaJS.KafkaJSError &&
76
+ (err.code === KafkaJS.ErrorCodes.ERR_UNKNOWN_TOPIC_OR_PART ||
77
+ err.code === KafkaJS.ErrorCodes.ERR__UNKNOWN_TOPIC);
78
+ if (isUnknownTopic) {
79
+ logger.warn({ error: err, topicName: parsed.topicName }, `fetchTopicOffsets rejected for "${parsed.topicName}" — surfacing as topic-not-found`);
80
+ return this.createResponse(`Topic "${parsed.topicName}" not found on this cluster.`, true);
81
+ }
82
+ return this.createResponse(`Failed to fetch partition offsets for "${parsed.topicName}": ${formatKafkaError(err)}`, true);
83
+ }
84
+ if (watermarks.length === 0) {
85
+ return this.createResponse(`Topic "${parsed.topicName}" not found on this cluster.`, true);
86
+ }
87
+ if (parsed.partition !== undefined) {
88
+ const numPartitions = watermarks.length;
89
+ const requested = parsed.partition;
90
+ const match = watermarks.find((w) => w.partition === requested);
91
+ if (!match) {
92
+ return this.createResponse(`Topic "${parsed.topicName}" has ${numPartitions} partition(s) ` +
93
+ `(0..${numPartitions - 1}); requested partition ${requested} is out of range.`, true);
94
+ }
95
+ watermarks = [match];
96
+ }
97
+ const payload = {
98
+ topicName: parsed.topicName,
99
+ partitions: watermarks.map((w) => mapToPartitionOffsetInfo(parsed.topicName, w)),
100
+ };
101
+ const summary = `Partition offsets for "${parsed.topicName}" ` +
102
+ `(${payload.partitions.length} partition(s)):\n` +
103
+ JSON.stringify(payload, null, 2);
104
+ return this.createStructuredResponse(summary, payload);
105
+ }
106
+ finally {
107
+ await disposeIfOAuth(runtime, connId, admin);
108
+ }
109
+ }
110
+ getToolConfig() {
111
+ return {
112
+ name: ToolName.GET_PARTITION_OFFSETS,
113
+ description: "Return per-partition low/high watermarks and message counts for a Kafka topic. " +
114
+ "Use this to size a backfill, measure lag relative to a known offset, or check whether a topic is still receiving writes — without consuming. " +
115
+ "Pass `partition` to restrict the response to a single partition.",
116
+ inputSchema: getPartitionOffsetsArgs.shape,
117
+ annotations: READ_ONLY,
118
+ };
119
+ }
120
+ category = ToolCategory.Kafka;
121
+ predicate = kafkaBootstrapOrOAuth;
122
+ }
123
+ //# sourceMappingURL=get-partition-offsets-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-partition-offsets-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/get-partition-offsets-handler.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
- import { ClientManager } from "../../../../confluent/client-manager.js";
2
1
  import { CallToolResult } from "../../../../confluent/schema.js";
3
- import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
4
- import { EnvVar } from "../../../../env-schema.js";
2
+ import { BaseToolHandler, ToolCategory, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ServerRuntime } from "../../../../server-runtime.js";
5
4
  /**
6
5
  * Handler for retrieving Kafka topic configurations through Confluent Cloud REST API.
7
6
  * This implementation uses Confluent's REST API endpoints to fetch topic configuration
8
7
  * details that aren't directly accessible through the native Kafka admin client API.
9
8
  */
10
9
  export declare class GetTopicConfigHandler extends BaseToolHandler {
11
- handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
10
+ handle(runtime: ServerRuntime, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
12
11
  getToolConfig(): ToolConfig;
13
- getRequiredEnvVars(): readonly EnvVar[];
14
- isConfluentCloudOnly(): boolean;
12
+ readonly category = ToolCategory.Kafka;
13
+ readonly predicate: import("../../../../confluent/tools/connection-predicates.js").ConnectionPredicate;
15
14
  }
16
15
  //# sourceMappingURL=get-topic-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-topic-config.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/get-topic-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAgC,MAAM,oBAAoB,CAAC;AAe1E;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IAClD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAkD1B,aAAa,IAAI,UAAU;IAS3B,kBAAkB,IAAI,SAAS,MAAM,EAAE;IAIvC,oBAAoB,IAAI,OAAO;CAGhC"}
1
+ {"version":3,"file":"get-topic-config.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/get-topic-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,UAAU,EACX,MAAM,oCAAoC,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAuBvD;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IAClD,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAgD1B,aAAa,IAAI,UAAU;IAQ3B,QAAQ,CAAC,QAAQ,sBAAsB;IACvC,QAAQ,CAAC,SAAS,8EAA4B;CAC/C"}
@@ -1,18 +1,22 @@
1
- import { getEnsuredParam } from "../../../../confluent/helpers.js";
2
- import { BaseToolHandler, READ_ONLY, } from "../../../../confluent/tools/base-tools.js";
1
+ import { BaseToolHandler, READ_ONLY, ToolCategory, } from "../../../../confluent/tools/base-tools.js";
2
+ import { resolveKafkaRestArgs } from "../../../../confluent/tools/cluster-arg-resolvers.js";
3
+ import { kafkaRestWithAuthOrOAuth } from "../../../../confluent/tools/connection-predicates.js";
3
4
  import { ToolName } from "../../../../confluent/tools/tool-name.js";
4
- import { KAFKA_REST_REQUIRED_ENV_VARS } from "../../../../env-schema.js";
5
5
  import { wrapAsPathBasedClient } from "openapi-fetch";
6
6
  import { z } from "zod";
7
7
  const getTopicConfigArguments = z.object({
8
- clusterId: z
9
- .string()
10
- .optional()
11
- .describe("The unique identifier for the Kafka cluster."),
12
8
  topicName: z
13
9
  .string()
14
10
  .describe("Name of the topic to get configuration for")
15
11
  .nonempty(),
12
+ clusterId: z
13
+ .string()
14
+ .optional()
15
+ .describe("Confluent Cloud logical Kafka cluster ID (lkc-...). Discover via list-clusters."),
16
+ environmentId: z
17
+ .string()
18
+ .optional()
19
+ .describe("Confluent Cloud environment ID (env-...) that owns the cluster. Discover via list-environments."),
16
20
  });
17
21
  /**
18
22
  * Handler for retrieving Kafka topic configurations through Confluent Cloud REST API.
@@ -20,17 +24,19 @@ const getTopicConfigArguments = z.object({
20
24
  * details that aren't directly accessible through the native Kafka admin client API.
21
25
  */
22
26
  export class GetTopicConfigHandler extends BaseToolHandler {
23
- async handle(clientManager, toolArguments) {
24
- const { clusterId, topicName } = getTopicConfigArguments.parse(toolArguments);
25
- const kafka_cluster_id = getEnsuredParam("KAFKA_CLUSTER_ID", "Kafka Cluster ID is required", clusterId);
26
- const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudKafkaRestClient());
27
+ async handle(runtime, toolArguments) {
28
+ const parsed = getTopicConfigArguments.parse(toolArguments);
29
+ const { connId, clientManager } = this.resolveSoleConnection(runtime);
30
+ const { clusterId, envId } = resolveKafkaRestArgs(parsed, runtime, connId);
31
+ const restClient = await clientManager.getConfluentCloudKafkaRestClient(clusterId, envId);
32
+ const pathBasedClient = wrapAsPathBasedClient(restClient);
27
33
  // First, get topic details
28
- const { data: topicData, error: topicError } = await pathBasedClient[`/kafka/v3/clusters/${kafka_cluster_id}/topics/${topicName}`].GET();
34
+ const { data: topicData, error: topicError } = await pathBasedClient[`/kafka/v3/clusters/${clusterId}/topics/${parsed.topicName}`].GET();
29
35
  if (topicError) {
30
36
  return this.createResponse(`Failed to retrieve topic details: ${JSON.stringify(topicError)}`, true);
31
37
  }
32
38
  // Then, get topic configurations
33
- const { data: configData, error: configError } = await pathBasedClient[`/kafka/v3/clusters/${kafka_cluster_id}/topics/${topicName}/configs`].GET();
39
+ const { data: configData, error: configError } = await pathBasedClient[`/kafka/v3/clusters/${clusterId}/topics/${parsed.topicName}/configs`].GET();
34
40
  if (configError) {
35
41
  return this.createResponse(`Failed to retrieve topic configuration: ${JSON.stringify(configError)}`, true);
36
42
  }
@@ -39,7 +45,7 @@ export class GetTopicConfigHandler extends BaseToolHandler {
39
45
  topicDetails: topicData,
40
46
  topicConfig: configData,
41
47
  };
42
- return this.createResponse(`Topic configuration for '${topicName}':\n${JSON.stringify(response, null, 2)}`);
48
+ return this.createResponse(`Topic configuration for '${parsed.topicName}':\n${JSON.stringify(response, null, 2)}`);
43
49
  }
44
50
  getToolConfig() {
45
51
  return {
@@ -49,11 +55,7 @@ export class GetTopicConfigHandler extends BaseToolHandler {
49
55
  annotations: READ_ONLY,
50
56
  };
51
57
  }
52
- getRequiredEnvVars() {
53
- return KAFKA_REST_REQUIRED_ENV_VARS;
54
- }
55
- isConfluentCloudOnly() {
56
- return true;
57
- }
58
+ category = ToolCategory.Kafka;
59
+ predicate = kafkaRestWithAuthOrOAuth;
58
60
  }
59
61
  //# sourceMappingURL=get-topic-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-topic-config.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/get-topic-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,eAAe,EACf,SAAS,GAEV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAU,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,4CAA4C,CAAC;SACtD,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAC5B,uBAAuB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,eAAe,CACtC,kBAAkB,EAClB,8BAA8B,EAC9B,SAAS,CACV,CAAC;QAEF,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,gCAAgC,EAAE,CACjD,CAAC;QAEF,2BAA2B;QAC3B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,GAC1C,MAAM,eAAe,CACnB,sBAAsB,gBAAgB,WAAW,SAAS,EAAE,CAC7D,CAAC,GAAG,EAAE,CAAC;QAEV,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,cAAc,CACxB,qCAAqC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EACjE,IAAI,CACL,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAC5C,MAAM,eAAe,CACnB,sBAAsB,gBAAgB,WAAW,SAAS,UAAU,CACrE,CAAC,GAAG,EAAE,CAAC;QAEV,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,cAAc,CACxB,2CAA2C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EACxE,IAAI,CACL,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,MAAM,QAAQ,GAAG;YACf,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,UAAU;SACxB,CAAC;QAEF,OAAO,IAAI,CAAC,cAAc,CACxB,4BAA4B,SAAS,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,gBAAgB;YAC/B,WAAW,EAAE,4DAA4D;YACzE,WAAW,EAAE,uBAAuB,CAAC,KAAK;YAC1C,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"get-topic-config.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/get-topic-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { CallToolResult } from "../../../../confluent/schema.js";
2
+ import { BaseToolHandler, ToolCategory, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ServerRuntime } from "../../../../server-runtime.js";
4
+ import { z } from "zod";
5
+ export declare const listConsumerGroupsArgs: z.ZodObject<{
6
+ matchStates: z.ZodOptional<z.ZodArray<z.ZodEnum<{
7
+ Unknown: "Unknown";
8
+ PreparingRebalance: "PreparingRebalance";
9
+ CompletingRebalance: "CompletingRebalance";
10
+ Stable: "Stable";
11
+ Dead: "Dead";
12
+ Empty: "Empty";
13
+ }>>>;
14
+ matchType: z.ZodOptional<z.ZodEnum<{
15
+ Classic: "Classic";
16
+ Consumer: "Consumer";
17
+ }>>;
18
+ cluster_id: z.ZodOptional<z.ZodString>;
19
+ environment_id: z.ZodOptional<z.ZodString>;
20
+ }, z.core.$strip>;
21
+ /**
22
+ * Wire-format response payload. `Record<string, unknown>` compatibility lets it
23
+ * thread cleanly through MCP's `structuredContent` channel without a boundary
24
+ * cast at the call site.
25
+ */
26
+ export type ListConsumerGroupsResponse = {
27
+ groups: Array<{
28
+ groupId: string;
29
+ state: string;
30
+ type: string;
31
+ protocolType: string;
32
+ isSimpleConsumerGroup: boolean;
33
+ }>;
34
+ errors: Array<{
35
+ message: string;
36
+ code?: number;
37
+ }>;
38
+ } & Record<string, unknown>;
39
+ export declare class ListConsumerGroupsHandler extends BaseToolHandler {
40
+ readonly category = ToolCategory.Kafka;
41
+ readonly predicate: import("../../../../confluent/tools/connection-predicates.js").ConnectionPredicate;
42
+ getToolConfig(): ToolConfig;
43
+ handle(runtime: ServerRuntime, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
44
+ }
45
+ //# sourceMappingURL=list-consumer-groups-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-consumer-groups-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-consumer-groups-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,UAAU,EACX,MAAM,oCAAoC,CAAC;AAe5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;iBA6BjC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,qBAAqB,EAAE,OAAO,CAAC;KAChC,CAAC,CAAC;IACH,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,qBAAa,yBAA0B,SAAQ,eAAe;IAC5D,QAAQ,CAAC,QAAQ,sBAAsB;IACvC,QAAQ,CAAC,SAAS,8EAAyB;IAE3C,aAAa,IAAI,UAAU;IAcrB,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;CA2D3B"}
@@ -0,0 +1,86 @@
1
+ import { BaseToolHandler, READ_ONLY, ToolCategory, } from "../../../../confluent/tools/base-tools.js";
2
+ import { disposeIfOAuth, resolveKafkaClusterArgs, } from "../../../../confluent/tools/cluster-arg-resolvers.js";
3
+ import { kafkaBootstrapOrOAuth } from "../../../../confluent/tools/connection-predicates.js";
4
+ import { STATE_NAME_TO_ENUM, STATE_NAMES, stateName, TYPE_NAME_TO_ENUM, TYPE_NAMES, typeName, } from "../../../../confluent/tools/handlers/kafka/consumer-group-enums.js";
5
+ import { ToolName } from "../../../../confluent/tools/tool-name.js";
6
+ import { z } from "zod";
7
+ export const listConsumerGroupsArgs = z.object({
8
+ matchStates: z
9
+ .array(z.enum(STATE_NAMES))
10
+ .nonempty()
11
+ .optional()
12
+ .describe("Filter to groups in any of these states. Omit to return all. " +
13
+ 'Options: "Stable" (live), "Empty" (orphaned), "Dead", ' +
14
+ '"PreparingRebalance", "CompletingRebalance", "Unknown".'),
15
+ matchType: z
16
+ .enum(TYPE_NAMES)
17
+ .optional()
18
+ .describe("Filter to groups of this protocol type. Omit to return both. " +
19
+ 'Options: "Consumer" (new, KIP-848), "Classic" (legacy generation-based).'),
20
+ cluster_id: z
21
+ .string()
22
+ .optional()
23
+ .describe("Confluent Cloud logical Kafka cluster ID (lkc-...). Discover via list-clusters."),
24
+ environment_id: z
25
+ .string()
26
+ .optional()
27
+ .describe("Confluent Cloud environment ID (env-...) that owns the cluster. Discover via list-environments."),
28
+ });
29
+ export class ListConsumerGroupsHandler extends BaseToolHandler {
30
+ category = ToolCategory.Kafka;
31
+ predicate = kafkaBootstrapOrOAuth;
32
+ getToolConfig() {
33
+ return {
34
+ name: ToolName.LIST_CONSUMER_GROUPS,
35
+ description: "List consumer groups on a Kafka cluster — wraps the broker's " +
36
+ "listGroups admin call. Optional filters narrow the result " +
37
+ "server-side. Response carries one entry per group with groupId, " +
38
+ "state, type, protocolType, and isSimpleConsumerGroup, plus an " +
39
+ "errors array of any per-broker partial failures.",
40
+ inputSchema: listConsumerGroupsArgs.shape,
41
+ annotations: READ_ONLY,
42
+ };
43
+ }
44
+ async handle(runtime, toolArguments) {
45
+ const parsed = listConsumerGroupsArgs.parse(toolArguments);
46
+ const { connId, clientManager } = this.resolveSoleConnection(runtime);
47
+ const { clusterId, envId } = resolveKafkaClusterArgs(parsed, runtime, connId);
48
+ const admin = await clientManager.getKafkaAdminClient(clusterId, envId);
49
+ try {
50
+ const options = {};
51
+ if (parsed.matchStates !== undefined) {
52
+ options.matchConsumerGroupStates = parsed.matchStates.map((name) => STATE_NAME_TO_ENUM[name]);
53
+ }
54
+ if (parsed.matchType !== undefined) {
55
+ options.matchConsumerGroupTypes = [TYPE_NAME_TO_ENUM[parsed.matchType]];
56
+ }
57
+ const { groups: rawGroups, errors: rawErrors } = await admin.listGroups(options);
58
+ const filtered = parsed.matchStates !== undefined || parsed.matchType !== undefined;
59
+ if (rawGroups.length === 0 && rawErrors.length > 0) {
60
+ return this.createResponse(rawErrors[0].message, true);
61
+ }
62
+ const payload = {
63
+ groups: rawGroups.map((g) => ({
64
+ groupId: g.groupId,
65
+ state: stateName(g.state),
66
+ type: typeName(g.type),
67
+ protocolType: g.protocolType,
68
+ isSimpleConsumerGroup: g.isSimpleConsumerGroup,
69
+ })),
70
+ errors: rawErrors.map((e) => ({ message: e.message, code: e.code })),
71
+ };
72
+ const count = payload.groups.length;
73
+ const noun = count === 1 ? "group" : "groups";
74
+ const suffix = filtered ? " (filtered)" : "";
75
+ const summary = count === 0
76
+ ? `Found 0 consumer ${noun}${suffix}.`
77
+ : `Found ${count} consumer ${noun}${suffix}:\n` +
78
+ JSON.stringify(payload, null, 2);
79
+ return this.createStructuredResponse(summary, payload);
80
+ }
81
+ finally {
82
+ await disposeIfOAuth(runtime, connId, admin);
83
+ }
84
+ }
85
+ }
86
+ //# sourceMappingURL=list-consumer-groups-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-consumer-groups-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-consumer-groups-handler.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { ClientManager } from "../../../../confluent/client-manager.js";
2
1
  import { CallToolResult } from "../../../../confluent/schema.js";
3
- import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
4
- import { EnvVar } from "../../../../env-schema.js";
2
+ import { BaseToolHandler, ToolCategory, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ServerRuntime } from "../../../../server-runtime.js";
5
4
  export declare class ListTopicsHandler extends BaseToolHandler {
6
- handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
5
+ handle(runtime: ServerRuntime, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
7
6
  getToolConfig(): ToolConfig;
8
- getRequiredEnvVars(): EnvVar[];
7
+ readonly category = ToolCategory.Kafka;
8
+ readonly predicate: import("../../../../confluent/tools/connection-predicates.js").ConnectionPredicate;
9
9
  }
10
10
  //# sourceMappingURL=list-topics-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-topics-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-topics-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAO5C,qBAAa,iBAAkB,SAAQ,eAAe;IAC9C,MAAM,CACV,aAAa,EAAE,aAAa,EAE5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAK1B,aAAa,IAAI,UAAU;IAS3B,kBAAkB,IAAI,MAAM,EAAE;CAG/B"}
1
+ {"version":3,"file":"list-topics-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-topics-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,UAAU,EACX,MAAM,oCAAoC,CAAC;AAO5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAkBvD,qBAAa,iBAAkB,SAAQ,eAAe;IAC9C,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAgB1B,aAAa,IAAI,UAAU;IAS3B,QAAQ,CAAC,QAAQ,sBAAsB;IACvC,QAAQ,CAAC,SAAS,8EAAyB;CAC5C"}
@@ -1,15 +1,31 @@
1
- import { BaseToolHandler, READ_ONLY, } from "../../../../confluent/tools/base-tools.js";
1
+ import { BaseToolHandler, READ_ONLY, ToolCategory, } from "../../../../confluent/tools/base-tools.js";
2
+ import { disposeIfOAuth, resolveKafkaClusterArgs, } from "../../../../confluent/tools/cluster-arg-resolvers.js";
3
+ import { kafkaBootstrapOrOAuth } from "../../../../confluent/tools/connection-predicates.js";
2
4
  import { ToolName } from "../../../../confluent/tools/tool-name.js";
3
5
  import { z } from "zod";
4
6
  const listTopicArgs = z.object({
5
- // No arguments
7
+ cluster_id: z
8
+ .string()
9
+ .optional()
10
+ .describe("Confluent Cloud logical Kafka cluster ID (lkc-...). Discover via list-clusters."),
11
+ environment_id: z
12
+ .string()
13
+ .optional()
14
+ .describe("Confluent Cloud environment ID (env-...) that owns the cluster. Discover via list-environments."),
6
15
  });
7
16
  export class ListTopicsHandler extends BaseToolHandler {
8
- async handle(clientManager,
9
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
- toolArguments) {
11
- const topics = await (await clientManager.getAdminClient()).listTopics();
12
- return this.createResponse(`Kafka topics: ${topics.join(",")}`);
17
+ async handle(runtime, toolArguments) {
18
+ const parsed = listTopicArgs.parse(toolArguments);
19
+ const { connId, clientManager } = this.resolveSoleConnection(runtime);
20
+ const resolved = resolveKafkaClusterArgs(parsed, runtime, connId);
21
+ const admin = await clientManager.getKafkaAdminClient(resolved.clusterId, resolved.envId);
22
+ try {
23
+ const topics = await admin.listTopics();
24
+ return this.createResponse(`Kafka topics: ${topics.join(",")}`);
25
+ }
26
+ finally {
27
+ await disposeIfOAuth(runtime, connId, admin);
28
+ }
13
29
  }
14
30
  getToolConfig() {
15
31
  return {
@@ -19,8 +35,7 @@ export class ListTopicsHandler extends BaseToolHandler {
19
35
  annotations: READ_ONLY,
20
36
  };
21
37
  }
22
- getRequiredEnvVars() {
23
- return ["BOOTSTRAP_SERVERS"];
24
- }
38
+ category = ToolCategory.Kafka;
39
+ predicate = kafkaBootstrapOrOAuth;
25
40
  }
26
41
  //# sourceMappingURL=list-topics-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-topics-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-topics-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,SAAS,GAEV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,KAAK,CAAC,MAAM,CACV,aAA4B;IAC5B,6DAA6D;IAC7D,aAAsC;QAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,WAAW;YAC1B,WAAW,EAAE,uCAAuC;YACpD,WAAW,EAAE,aAAa,CAAC,KAAK;YAChC,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"list-topics-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-topics-handler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,SAAS,EACT,YAAY,GAEb,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,cAAc,EACd,uBAAuB,GACxB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iFAAiF,CAClF;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iGAAiG,CAClG;CACJ,CAAC,CAAC;AAEH,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,KAAK,CAAC,MAAM,CACV,OAAsB,EACtB,aAAsC;QAEtC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,mBAAmB,CACnD,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,KAAK,CACf,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;gBAAS,CAAC;YACT,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,WAAW;YAC1B,WAAW,EAAE,uCAAuC;YACpD,WAAW,EAAE,aAAa,CAAC,KAAK;YAChC,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAEQ,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC;IAC9B,SAAS,GAAG,qBAAqB,CAAC;CAC5C"}
@@ -0,0 +1,54 @@
1
+ import { KafkaJS } from "@confluentinc/kafka-javascript";
2
+ /**
3
+ * Per-partition low/high watermark pair, normalized to the fields the
4
+ * consume handler and the standalone `get-partition-offsets` tool both
5
+ * read. The upstream `admin.fetchTopicOffsets` response also carries a
6
+ * committed `offset` field (the next-to-be-committed group offset, not
7
+ * the partition end-of-log), which neither caller uses; this type drops
8
+ * it so a shared response shape governs both surfaces.
9
+ */
10
+ export interface PartitionWatermark {
11
+ partition: number;
12
+ low: string;
13
+ high: string;
14
+ }
15
+ /**
16
+ * Narrow a {@link BigInt} difference to a JS `Number`, saturating at
17
+ * {@link Number.MAX_SAFE_INTEGER} or {@link Number.MIN_SAFE_INTEGER}
18
+ * when the result would lose precision. The narrow path is the only one
19
+ * expected to fire in practice (even a million-msg/sec partition with
20
+ * infinite retention takes ~285 years to exceed 2^53 - 1); the
21
+ * saturation arms are defensive sentinels — hence the `Wacky --` log
22
+ * signaling "this branch firing means something genuinely surprising
23
+ * happened". Symmetric guards on both ends of the safe range so a `diff`
24
+ * produced by an unexpected caller pattern (e.g. a far-ahead committed
25
+ * offset, or a cross-partition sum of many negative lags) can't silently
26
+ * lose precision.
27
+ *
28
+ * `context` is forwarded verbatim into the log payload so each caller
29
+ * can name the dimensions it knows about (`{topicName, partition}` for
30
+ * the standalone watermark tool, `{groupId, topic, partition}` for the
31
+ * consumer-group lag tool) without this helper hard-coding either.
32
+ */
33
+ export declare function narrowMessageCount(diff: bigint, context: Record<string, unknown>): number;
34
+ /**
35
+ * Thin wrapper around `admin.fetchTopicOffsets(topic)` that normalizes
36
+ * the response to {@link PartitionWatermark}. Shared seam between the
37
+ * consume handler's per-call watermark cache (see
38
+ * {@link createWatermarkCache}) and standalone
39
+ * `get-partition-offsets` tool — single source of truth for the
40
+ * response shape both surfaces see.
41
+ */
42
+ export declare function fetchPartitionWatermarks(admin: KafkaJS.Admin, topic: string): Promise<PartitionWatermark[]>;
43
+ /**
44
+ * Lazy per-topic memoized watermark fetcher. The consume handler hits
45
+ * `admin.fetchTopicOffsets` from four independent resolution paths
46
+ * within a single tool call (explicit-offset bounds check, timestamp's
47
+ * silent-substitution cross-check, earliest-minority low-watermark
48
+ * seek, and tail-mode seek resolution); the cache keeps the admin
49
+ * round-trip count linear in the number of distinct topics rather than
50
+ * the number of resolution sites.
51
+ */
52
+ export type WatermarkCache = (topic: string) => Promise<PartitionWatermark[]>;
53
+ export declare function createWatermarkCache(admin: KafkaJS.Admin): WatermarkCache;
54
+ //# sourceMappingURL=partition-watermarks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partition-watermarks.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/partition-watermarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAGzD;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAkBR;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAG/B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAE9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAUzE"}