@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,65 @@
1
+ export async function resolveKafkaBootstrap(cloudClient, clusterId, envId) {
2
+ const { data, error } = await cloudClient.GET("/cmk/v2/clusters/{id}", {
3
+ params: { path: { id: clusterId }, query: { environment: envId } },
4
+ });
5
+ if (error !== undefined) {
6
+ throw new Error(`Failed to read Kafka cluster ${clusterId} in environment ${envId}: ${JSON.stringify(error)}`);
7
+ }
8
+ const bootstrap = data?.spec?.kafka_bootstrap_endpoint;
9
+ if (typeof bootstrap !== "string" || bootstrap.length === 0) {
10
+ throw new Error(`Cluster ${clusterId} in environment ${envId} has no kafka_bootstrap_endpoint`);
11
+ }
12
+ return bootstrap;
13
+ }
14
+ export async function resolveKafkaRestEndpoint(cloudClient, clusterId, envId) {
15
+ const { data, error } = await cloudClient.GET("/cmk/v2/clusters/{id}", {
16
+ params: { path: { id: clusterId }, query: { environment: envId } },
17
+ });
18
+ if (error !== undefined) {
19
+ throw new Error(`Failed to read Kafka cluster ${clusterId} in environment ${envId}: ${JSON.stringify(error)}`);
20
+ }
21
+ const httpEndpoint = data?.spec?.http_endpoint;
22
+ if (typeof httpEndpoint !== "string" || httpEndpoint.length === 0) {
23
+ throw new Error(`Cluster ${clusterId} in environment ${envId} has no http_endpoint`);
24
+ }
25
+ return httpEndpoint;
26
+ }
27
+ export async function resolveSchemaRegistryEndpoint(cloudClient, clusterId, envId) {
28
+ const { data, error } = await cloudClient.GET("/srcm/v3/clusters/{id}", {
29
+ params: { path: { id: clusterId }, query: { environment: envId } },
30
+ });
31
+ if (error !== undefined) {
32
+ throw new Error(`Failed to read Schema Registry cluster ${clusterId} in environment ${envId}: ${JSON.stringify(error)}`);
33
+ }
34
+ const httpEndpoint = data?.spec?.http_endpoint;
35
+ if (typeof httpEndpoint !== "string" || httpEndpoint.length === 0) {
36
+ throw new Error(`Schema Registry cluster ${clusterId} in environment ${envId} has no http_endpoint`);
37
+ }
38
+ return httpEndpoint;
39
+ }
40
+ export async function resolveSchemaRegistryClusterId(cloudClient, envId) {
41
+ const { data, error } = await cloudClient.GET("/srcm/v3/clusters", {
42
+ params: { query: { environment: envId } },
43
+ });
44
+ if (error !== undefined) {
45
+ throw new Error(`Failed to list Schema Registry clusters in environment ${envId}: ${JSON.stringify(error)}`);
46
+ }
47
+ const clusters = data?.data ?? [];
48
+ if (clusters.length === 0) {
49
+ throw new Error(`No Schema Registry cluster found in environment ${envId}. ` +
50
+ `Schema Registry must be enabled on the environment in Confluent Cloud.`);
51
+ }
52
+ if (clusters.length > 1) {
53
+ // Defensive: CCloud's documented invariant is one SR per environment.
54
+ // If that ever changes, callers will need to pick a specific cluster
55
+ // rather than have us silently take the first.
56
+ throw new Error(`Multiple Schema Registry clusters found in environment ${envId} (count: ${clusters.length}). ` +
57
+ `Single SR per environment is assumed; multi-SR is not supported.`);
58
+ }
59
+ const id = clusters[0]?.id;
60
+ if (typeof id !== "string" || id.length === 0) {
61
+ throw new Error(`Schema Registry cluster in environment ${envId} has no id`);
62
+ }
63
+ return id;
64
+ }
65
+ //# sourceMappingURL=oauth-resource-resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-resource-resolvers.js","sourceRoot":"","sources":["../../src/confluent/oauth-resource-resolvers.ts"],"names":[],"mappings":"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"}
@@ -36,17 +36,13 @@ export type MessageOptions = {
36
36
  };
37
37
  /**
38
38
  * Result of checking if a schema is needed for a message.
39
- * Can indicate:
40
- * - A schema is needed and provides the latest schema details
41
- * - No schema exists and needs to be provided
42
- * - No schema action is needed
39
+ * Returned only when schema registry is in use, the caller did not supply a
40
+ * schema, and no schema is registered for the subject yet — that's the one
41
+ * case the caller must resolve before serialization can proceed. Otherwise
42
+ * null: schema registry is disabled, or the caller supplied a schema
43
+ * (register-and-use path), or one is already registered (use-latest path).
43
44
  */
44
45
  export type SchemaCheckResult = {
45
- type: "schema-needed";
46
- latestSchema: string;
47
- subject: string;
48
- schemaType: string;
49
- } | {
50
46
  type: "no-schema";
51
47
  subject: string;
52
48
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-registry-helper.d.ts","sourceRoot":"","sources":["../../src/confluent/schema-registry-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,YAAY,EAMZ,oBAAoB,EACpB,SAAS,EACT,UAAU,EAEX,MAAM,8BAA8B,CAAC;AAGtC;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtC,IAAI,CAAC;AAET;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,CAkBZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,GACnB,YAAY,CAed;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAoB5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,CAiB5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAgE1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CAOlB"}
1
+ {"version":3,"file":"schema-registry-helper.d.ts","sourceRoot":"","sources":["../../src/confluent/schema-registry-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,YAAY,EAMZ,oBAAoB,EACpB,SAAS,EACT,UAAU,EAEX,MAAM,8BAA8B,CAAC;AAGtC;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,CAkBZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,GACnB,YAAY,CAed;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAa5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,CAiB5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAgE1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CAOlB"}
@@ -72,15 +72,7 @@ export async function checkSchemaNeeded(topicName, options, serdeType, registry)
72
72
  const latest = registry
73
73
  ? await getLatestSchemaIfExists(registry, subject)
74
74
  : null;
75
- if (latest) {
76
- return {
77
- type: "schema-needed",
78
- latestSchema: latest.schema,
79
- subject,
80
- schemaType: latest.schemaType,
81
- };
82
- }
83
- else {
75
+ if (!latest) {
84
76
  return { type: "no-schema", subject };
85
77
  }
86
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema-registry-helper.js","sourceRoot":"","sources":["../../src/confluent/schema-registry-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-registry-helper.js","sourceRoot":"","sources":["../../src/confluent/schema-registry-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,gBAAgB,EAChB,cAAc,EAGd,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAElB,SAAS,GAGV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AA6CxC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAkC,EAClC,QAA8B,EAC9B,SAAoB,EACpB,QAAiB;IAEjB,MAAM,gBAAgB,GACpB,OAAO,QAAQ,KAAK,QAAQ;QAC1B,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE;QAC3B,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAEjC,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC;QACrE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC;QACrE,QAAQ,EAAE,GAAG,EAAE,CACb,IAAI,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC;KAChE,CAAC;IAEF,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAClC,QAA8B,EAC9B,SAAoB;IAEpB,MAAM,kBAAkB,GAAuB,EAAE,CAAC;IAElD,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC;QACzE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC;QACzE,QAAQ,EAAE,GAAG,EAAE,CACb,IAAI,oBAAoB,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,CAAC;KACpE,CAAC;IAEF,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,OAAuB,EACvB,SAAoB,EACpB,QAA0C;IAE1C,IAAI,OAAO,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACjD,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;YACf,GAAG,SAAS,IAAI,SAAS,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,QAAQ;YACrB,CAAC,CAAC,MAAM,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC;YAClD,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA8B,EAC9B,OAAe;IAEf,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC/D,4EAA4E;QAC5E,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAe,CAAC;QAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAO,EAAE,UAAU,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IACE,GAAG;YACH,OAAO,GAAG,KAAK,QAAQ;YACvB,QAAQ,IAAI,GAAG;YACd,GAA2B,CAAC,MAAM,KAAK,GAAG,EAC3C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAAiB,EACjB,OAAuB,EACvB,SAAoB,EACpB,QAA0C;IAE1C,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CACT,2GAA2G,CAC5G,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YACxC,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,yBAAyB;IACzB,MAAM,OAAO,GACX,OAAO,CAAC,OAAO;QACf,GAAG,SAAS,IAAI,SAAS,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAElE,IAAI,QAA4B,CAAC;IACjC,8BAA8B;IAC9B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAChC,OAAO,EACP;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,EACD,OAAO,CAAC,SAAS,CAClB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,0CAA0C,OAAO,MAAM,GAAG,EAAE,CAC7D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,wBAAwB;IACxB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,IAAI,UAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,UAAU,GAAG,aAAa,CACxB,OAAO,CAAC,UAAU,EAClB,QAAQ,EACR,SAAS,EACT,QAAQ,CACT,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC;QACH,OAAO,MAAM,UAAU,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4CAA4C,OAAO,MAAM,GAAG,EAAE,CAC/D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAa,EACb,OAAe,EACf,UAAsB,EACtB,QAA8B,EAC9B,SAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACtE,OAAO,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -1,5 +1,34 @@
1
1
  export declare enum TelemetryEvent {
2
- TOOL_CALL = "Tool Call"
2
+ /**
3
+ * Emitted once after successful startup so we can count boots independently
4
+ * of tool calls.
5
+ */
6
+ SERVER_START = "Server Start",
7
+ /**
8
+ * Emitted once for every tool call for telemetry on tool usage.
9
+ */
10
+ TOOL_CALL = "Tool Call",
11
+ /**
12
+ * Emitted once per terminal OAuth PKCE login attempt (success or failure).
13
+ * Refresh-token rotations are not tracked here.
14
+ */
15
+ CCLOUD_AUTHENTICATION = "CCloud Authentication",
16
+ /**
17
+ * Emitted when the user clicks "Copy" on the agent-skills install hint shown
18
+ * on the OAuth success page. Fired by a same-origin beacon from the callback
19
+ * page to the local callback server.
20
+ */
21
+ AGENT_SKILLS_HINT_COPIED = "Agent Skills Hint Copied"
22
+ }
23
+ /**
24
+ * Inputs to {@link TelemetryService.initialize}. `writeKey` is whatever the
25
+ * caller resolved (YAML override, build-config injected value, or undefined);
26
+ * the service treats `undefined`/`""` as "telemetry off" and otherwise hands
27
+ * the value to the Segment Analytics constructor.
28
+ */
29
+ export interface TelemetryInitOptions {
30
+ readonly doNotTrack: boolean;
31
+ readonly writeKey: string | undefined;
3
32
  }
4
33
  export declare const FALLBACK_MACHINE_ID = "00000000-0000-0000-0000-000000000000";
5
34
  export declare class TelemetryService {
@@ -9,6 +38,14 @@ export declare class TelemetryService {
9
38
  private serverSessionId;
10
39
  private commonProperties;
11
40
  private constructor();
41
+ /**
42
+ * Bootstrap-time entry point. The caller (main()) is responsible for
43
+ * resolving `writeKey` from its sources — typically
44
+ * `mcpConfig.server.analytics?.write_key ?? buildConfig.TELEMETRY_WRITE_KEY`
45
+ * — before invoking this. A falsy `writeKey` (`undefined` or `""`) keeps
46
+ * analytics disabled even when `doNotTrack` is false.
47
+ */
48
+ static initialize(opts: TelemetryInitOptions): void;
12
49
  static getInstance(): TelemetryService;
13
50
  setCommonProperties(properties: Record<string, unknown>): void;
14
51
  track(event: TelemetryEvent, properties: Record<string, unknown>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/confluent/telemetry.ts"],"names":[],"mappings":"AAWA,oBAAY,cAAc;IACxB,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAsC1E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD,OAAO,CAAC,SAAS,CAAuD;IACxE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO;IAwBP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASvE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKzD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/confluent/telemetry.ts"],"names":[],"mappings":"AAIA,oBAAY,cAAc;IACxB;;;OAGG;IACH,YAAY,iBAAiB;IAC7B;;OAEG;IACH,SAAS,cAAc;IACvB;;;OAGG;IACH,qBAAqB,0BAA0B;IAC/C;;;;OAIG;IACH,wBAAwB,6BAA6B;CACtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAsC1E,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD,OAAO,CAAC,SAAS,CAAuD;IACxE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO;IAoBP;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IASnD,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAStC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9D,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASvE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKzD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
@@ -1,9 +1,28 @@
1
- import { buildConfig, config, fs, os, path, segment, } from "../confluent/node-deps.js";
1
+ import { fs, os, path, segment } from "../confluent/node-deps.js";
2
2
  import { logger } from "../logger.js";
3
3
  import { randomUUID } from "node:crypto";
4
4
  export var TelemetryEvent;
5
5
  (function (TelemetryEvent) {
6
+ /**
7
+ * Emitted once after successful startup so we can count boots independently
8
+ * of tool calls.
9
+ */
10
+ TelemetryEvent["SERVER_START"] = "Server Start";
11
+ /**
12
+ * Emitted once for every tool call for telemetry on tool usage.
13
+ */
6
14
  TelemetryEvent["TOOL_CALL"] = "Tool Call";
15
+ /**
16
+ * Emitted once per terminal OAuth PKCE login attempt (success or failure).
17
+ * Refresh-token rotations are not tracked here.
18
+ */
19
+ TelemetryEvent["CCLOUD_AUTHENTICATION"] = "CCloud Authentication";
20
+ /**
21
+ * Emitted when the user clicks "Copy" on the agent-skills install hint shown
22
+ * on the OAuth success page. Fired by a same-origin beacon from the callback
23
+ * page to the local callback server.
24
+ */
25
+ TelemetryEvent["AGENT_SKILLS_HINT_COPIED"] = "Agent Skills Hint Copied";
7
26
  })(TelemetryEvent || (TelemetryEvent = {}));
8
27
  export const FALLBACK_MACHINE_ID = "00000000-0000-0000-0000-000000000000";
9
28
  const CONFIG_DIR = ".mcp-confluent";
@@ -47,11 +66,8 @@ export class TelemetryService {
47
66
  machineId;
48
67
  serverSessionId;
49
68
  commonProperties;
50
- constructor() {
51
- // runtime env var can override the build-time value for local dev/testing
52
- const writeKey = process.env.TELEMETRY_WRITE_KEY || buildConfig.TELEMETRY_WRITE_KEY;
53
- const disabled = config.env.DO_NOT_TRACK;
54
- const enabled = !disabled && !!writeKey;
69
+ constructor(opts) {
70
+ const enabled = !opts.doNotTrack && !!opts.writeKey;
55
71
  this.machineId = getOrCreateMachineId();
56
72
  this.serverSessionId = randomUUID();
57
73
  this.commonProperties = {
@@ -61,16 +77,29 @@ export class TelemetryService {
61
77
  osArch: os.arch(),
62
78
  };
63
79
  if (enabled) {
64
- this.analytics = new segment.Analytics({ writeKey });
80
+ this.analytics = new segment.Analytics({ writeKey: opts.writeKey });
65
81
  logger.info("Telemetry enabled");
66
82
  }
67
83
  else {
68
84
  logger.info("Telemetry disabled");
69
85
  }
70
86
  }
87
+ /**
88
+ * Bootstrap-time entry point. The caller (main()) is responsible for
89
+ * resolving `writeKey` from its sources — typically
90
+ * `mcpConfig.server.analytics?.write_key ?? buildConfig.TELEMETRY_WRITE_KEY`
91
+ * — before invoking this. A falsy `writeKey` (`undefined` or `""`) keeps
92
+ * analytics disabled even when `doNotTrack` is false.
93
+ */
94
+ static initialize(opts) {
95
+ if (TelemetryService.instance) {
96
+ throw new Error("TelemetryService has already been initialized — initialize() must be called exactly once before getInstance()");
97
+ }
98
+ TelemetryService.instance = new TelemetryService(opts);
99
+ }
71
100
  static getInstance() {
72
101
  if (!TelemetryService.instance) {
73
- TelemetryService.instance = new TelemetryService();
102
+ throw new Error("TelemetryService.initialize() must be called before getInstance()");
74
103
  }
75
104
  return TelemetryService.instance;
76
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/confluent/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/confluent/telemetry.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import type { ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
2
- import { ClientManager } from "../../confluent/client-manager.js";
2
+ import type { ConnectionConfig } from "../../config/models.js";
3
+ import type { BaseClientManager } from "../../confluent/base-client-manager.js";
3
4
  import { CallToolResult } from "../../confluent/schema.js";
5
+ import { ConnectionPredicate, PredicateResult } from "../../confluent/tools/connection-predicates.js";
4
6
  import { ToolName } from "../../confluent/tools/tool-name.js";
5
- import { EnvVar } from "../../env-schema.js";
7
+ import { ServerRuntime } from "../../server-runtime.js";
6
8
  import { ZodRawShape } from "zod";
7
9
  /**
8
10
  * Standard MCP tool annotations.
@@ -11,24 +13,61 @@ import { ZodRawShape } from "zod";
11
13
  export declare const READ_ONLY: ToolAnnotations;
12
14
  export declare const CREATE_UPDATE: ToolAnnotations;
13
15
  export declare const DESTRUCTIVE: ToolAnnotations;
16
+ /**
17
+ * Operator-facing taxonomy of tool kinds.
18
+ *
19
+ * Answers "what kind of tool is this?" — orthogonal to the
20
+ * {@linkcode ConnectionPredicate}-based "is this tool enabled?" question that
21
+ * lives next door. Predicates gate advertisement; categories classify intent.
22
+ */
23
+ export declare enum ToolCategory {
24
+ Billing = "billing",
25
+ Catalog = "catalog",
26
+ ConfluentCloud = "confluent-cloud",
27
+ Connect = "connect",
28
+ Docs = "docs",
29
+ Flink = "flink",
30
+ Kafka = "kafka",
31
+ McpServerDiagnostics = "mcp-server-diagnostics",
32
+ Metrics = "metrics",
33
+ SchemaRegistry = "schema-registry",
34
+ Tableflow = "tableflow"
35
+ }
14
36
  export interface ToolHandler {
15
- handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
37
+ handle(runtime: ServerRuntime, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
16
38
  getToolConfig(): ToolConfig;
17
39
  /**
18
- * Returns an array of environment variables required for this tool to function.
19
- *
20
- * This method is used to conditionally enable/disable tools based on the availability
21
- * of required environment variables. Tools will be disabled if any of their required
22
- * environment variables are not set at process startup time.
40
+ * The connection predicate that gates this tool's enablement. Lifted onto
41
+ * the interface so the MCP tool-call wrapper can compare it against
42
+ * `alwaysEnabled` to skip the OAuth login gate for tools that don't touch
43
+ * the client manager (currently the doc-lookup tools). See
44
+ * {@linkcode BaseToolHandler.predicate} for the rules around setting it.
45
+ */
46
+ readonly predicate: ConnectionPredicate;
47
+ /**
48
+ * The {@linkcode ToolCategory} this tool belongs to — operator-facing
49
+ * taxonomy, orthogonal to {@linkcode predicate}. See
50
+ * {@linkcode BaseToolHandler.category} for the rules around setting it.
51
+ */
52
+ readonly category: ToolCategory;
53
+ /**
54
+ * IDs of connections that satisfy this tool's service requirements. A
55
+ * non-empty result enables the tool; an empty result disables it. Always a
56
+ * subset of `runtime.config.connections` keys.
23
57
  *
24
- * @returns Array of environment variable names required by this tool
58
+ * Implementations that extend {@linkcode BaseToolHandler} (the standard
59
+ * path for every tool in this codebase) must not override this — declare
60
+ * a {@linkcode BaseToolHandler.predicate} property and let the base class
61
+ * derive the result.
25
62
  */
26
- getRequiredEnvVars(): readonly EnvVar[];
63
+ enabledConnectionIds(runtime: ServerRuntime): string[];
27
64
  /**
28
- * Returns true if this tool can only be used with Confluent Cloud REST APIs.
29
- * Override in subclasses for cloud-only tools.
65
+ * Per-connection verdict map for this tool: `{ enabled: true }` for
66
+ * connections that satisfy its requirements, `{ enabled: false; reason }`
67
+ * for those that don't. Powers startup-log grouping and the
68
+ * `describe-tool-availability` diagnostic tool.
30
69
  */
31
- isConfluentCloudOnly(): boolean;
70
+ connectionVerdicts(runtime: ServerRuntime): Map<string, PredicateResult>;
32
71
  }
33
72
  export interface ToolConfig {
34
73
  name: ToolName;
@@ -37,23 +76,101 @@ export interface ToolConfig {
37
76
  annotations: ToolAnnotations;
38
77
  }
39
78
  export declare abstract class BaseToolHandler implements ToolHandler {
40
- abstract handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
79
+ abstract handle(runtime: ServerRuntime, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
41
80
  abstract getToolConfig(): ToolConfig;
42
81
  /**
43
- * Return an array of environment variable names required for the operation of this tool.
82
+ * The connection predicate that gates this tool. The single customization
83
+ * seam for tool enablement — declared as a one-line readonly property:
84
+ *
85
+ * readonly predicate = hasKafka; // base predicate
86
+ * readonly predicate = kafkaBootstrapOrOAuth; // named composite
87
+ * readonly predicate = alwaysEnabled; // no requirement
88
+ *
89
+ * **Must reference a named export from `connection-predicates.ts`.** Do
90
+ * not compose with `allOf(...)` or `widenForOAuth(...)` at the use site.
91
+ * If no existing named export expresses the gate you need, add one —
92
+ * with a per-predicate test in `connection-predicates.test.ts` matching
93
+ * the depth of the existing `hasKafka` / `flinkWithTelemetry` blocks —
94
+ * and reference that. Enforced mechanically: the `predicate property`
95
+ * block in `tool-registry.test.ts` maintains an explicit
96
+ * `Readonly<Record<ToolName, ConnectionPredicate>>` (`EXPECTED_PREDICATES`)
97
+ * pinning every tool to its expected predicate. The `Record` over
98
+ * `ToolName` makes exhaustiveness a compile-time check (a missing tool
99
+ * is a `tsc` error, not a runtime one), and the value type rejects
100
+ * combinators at compile time. The `it.each` over the record fails with
101
+ * the offending tool name in the row label whenever a handler's
102
+ * `predicate` drifts from the table. New tools or rewires are a one-line
103
+ * table edit.
104
+ *
105
+ * Both {@linkcode enabledConnectionIds} and {@linkcode connectionVerdicts}
106
+ * are derived from this property and are marked `@final`; never override
107
+ * either method. The retired iteration helpers `connectionIdsWhere` and
108
+ * `connectionReasonsWhere` are no longer exported — the base class walks
109
+ * `runtime.config.connections` for you.
110
+ */
111
+ abstract readonly predicate: ConnectionPredicate;
112
+ /**
113
+ * The {@linkcode ToolCategory} this tool belongs to — operator-facing
114
+ * taxonomy answering "what kind of tool is this?" Orthogonal to
115
+ * {@linkcode predicate} (which gates advertisement); category classifies
116
+ * intent for grouping in diagnostic surfaces and AI-client UX.
117
+ */
118
+ abstract readonly category: ToolCategory;
119
+ /**
120
+ * IDs of connections that satisfy this tool's {@linkcode predicate}. A
121
+ * non-empty result enables the tool; an empty result disables it.
122
+ *
123
+ * Customize tool gating by declaring {@linkcode predicate}, never by
124
+ * replacing this derivation.
125
+ *
126
+ * @final — concrete on `BaseToolHandler`; subclasses must not override.
127
+ */
128
+ enabledConnectionIds(runtime: ServerRuntime): string[];
129
+ /**
130
+ * Per-connection verdict map for this tool, derived from
131
+ * {@linkcode predicate}. Powers grouped startup logging and
132
+ * the diagnostic-tool surface.
133
+ *
134
+ * Customize tool gating by declaring {@linkcode predicate}, never by
135
+ * replacing this derivation.
44
136
  *
45
- * Preferable to return a constant array of EnvVars defined in src/env-schema.ts for easier determination
46
- * of which tools require which subset of env vars.
137
+ * @final — concrete on `BaseToolHandler`; subclasses must not override.
138
+ */
139
+ connectionVerdicts(runtime: ServerRuntime): Map<string, PredicateResult>;
140
+ /**
141
+ * Resolves the single connection enabled for this tool, returning the
142
+ * connection id, its config, and the matching client manager. Designed
143
+ * for handlers that look up `runtime.clientManagers[connId]` (multi-
144
+ * connection-ready shape).
47
145
  *
48
- * If any of the required environment variables are not set at process
49
- * startup time, the tool will be disabled and not returned by the tool loader.
146
+ * Selects `enabledConnectionIds(runtime)[0]` — current runtime is single-
147
+ * connection, so this is unambiguous; if multi-connection support lands
148
+ * later, handlers can switch to iterating ids.
50
149
  */
51
- abstract getRequiredEnvVars(): readonly EnvVar[];
150
+ protected resolveSoleConnection(runtime: ServerRuntime): {
151
+ connId: string;
152
+ conn: ConnectionConfig;
153
+ clientManager: BaseClientManager;
154
+ };
52
155
  /**
53
- * Default implementation returns false, indicating the tool is not Confluent Cloud only.
54
- * Override in subclasses for cloud-only tools.
156
+ * Resolves a required string from an explicit tool argument, falling back to
157
+ * a connection-config value. Throws if neither is present.
158
+ * `label` is the human-readable field name (e.g. `"Organization ID"`);
159
+ * the thrown message is `"${label} is required"`.
160
+ * The returned value is always trimmed.
55
161
  */
56
- isConfluentCloudOnly(): boolean;
162
+ protected resolveParam(argValue: string | undefined, configValue: string | undefined, label: string): string;
163
+ /** Like resolveParam but returns undefined instead of throwing when both are absent or blank. The returned value is always trimmed. */
164
+ protected resolveOptionalParam(argValue: string | undefined, configValue: string | undefined): string | undefined;
57
165
  createResponse(message: string, isError?: boolean, _meta?: Record<string, unknown>): CallToolResult;
166
+ /**
167
+ * Variant of {@link createResponse} that surfaces the response's
168
+ * machine-readable payload via MCP's `structuredContent` channel (per the
169
+ * [2025-11-25 spec](https://modelcontextprotocol.io/specification/2025-11-25/server/tools)).
170
+ * The `message` carries the human-readable summary on `content`; the
171
+ * `structuredContent` field carries the typed JSON payload callers (or
172
+ * `outputSchema` validators) can consume directly.
173
+ */
174
+ createStructuredResponse(message: string, structuredContent: Record<string, unknown>): CallToolResult;
58
175
  }
59
176
  //# sourceMappingURL=base-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-tools.d.ts","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,eAEd,CAAC;AAEX,eAAO,MAAM,aAAa,EAAE,eAGlB,CAAC;AAEX,eAAO,MAAM,WAAW,EAAE,eAGhB,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,MAAM,CACJ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;IAE5C,aAAa,IAAI,UAAU,CAAC;IAE5B;;;;;;;;OAQG;IACH,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAAC;IAExC;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,8BAAsB,eAAgB,YAAW,WAAW;IAC1D,QAAQ,CAAC,MAAM,CACb,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAE3C,QAAQ,CAAC,aAAa,IAAI,UAAU;IAEpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,kBAAkB,IAAI,SAAS,MAAM,EAAE;IAEhD;;;OAGG;IACH,oBAAoB,IAAI,OAAO;IAI/B,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,EACxB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,cAAc;CAalB"}
1
+ {"version":3,"file":"base-tools.d.ts","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,92 @@ export const DESTRUCTIVE = {
13
13
  destructiveHint: true,
14
14
  readOnlyHint: false,
15
15
  };
16
+ /**
17
+ * Operator-facing taxonomy of tool kinds.
18
+ *
19
+ * Answers "what kind of tool is this?" — orthogonal to the
20
+ * {@linkcode ConnectionPredicate}-based "is this tool enabled?" question that
21
+ * lives next door. Predicates gate advertisement; categories classify intent.
22
+ */
23
+ export var ToolCategory;
24
+ (function (ToolCategory) {
25
+ ToolCategory["Billing"] = "billing";
26
+ ToolCategory["Catalog"] = "catalog";
27
+ ToolCategory["ConfluentCloud"] = "confluent-cloud";
28
+ ToolCategory["Connect"] = "connect";
29
+ ToolCategory["Docs"] = "docs";
30
+ ToolCategory["Flink"] = "flink";
31
+ ToolCategory["Kafka"] = "kafka";
32
+ ToolCategory["McpServerDiagnostics"] = "mcp-server-diagnostics";
33
+ ToolCategory["Metrics"] = "metrics";
34
+ ToolCategory["SchemaRegistry"] = "schema-registry";
35
+ ToolCategory["Tableflow"] = "tableflow";
36
+ })(ToolCategory || (ToolCategory = {}));
16
37
  export class BaseToolHandler {
17
38
  /**
18
- * Default implementation returns false, indicating the tool is not Confluent Cloud only.
19
- * Override in subclasses for cloud-only tools.
39
+ * IDs of connections that satisfy this tool's {@linkcode predicate}. A
40
+ * non-empty result enables the tool; an empty result disables it.
41
+ *
42
+ * Customize tool gating by declaring {@linkcode predicate}, never by
43
+ * replacing this derivation.
44
+ *
45
+ * @final — concrete on `BaseToolHandler`; subclasses must not override.
46
+ */
47
+ enabledConnectionIds(runtime) {
48
+ return Object.entries(runtime.config.connections)
49
+ .filter(([, conn]) => this.predicate(conn).enabled)
50
+ .map(([id]) => id);
51
+ }
52
+ /**
53
+ * Per-connection verdict map for this tool, derived from
54
+ * {@linkcode predicate}. Powers grouped startup logging and
55
+ * the diagnostic-tool surface.
56
+ *
57
+ * Customize tool gating by declaring {@linkcode predicate}, never by
58
+ * replacing this derivation.
59
+ *
60
+ * @final — concrete on `BaseToolHandler`; subclasses must not override.
20
61
  */
21
- isConfluentCloudOnly() {
22
- return false;
62
+ connectionVerdicts(runtime) {
63
+ return new Map(Object.entries(runtime.config.connections).map(([id, conn]) => [
64
+ id,
65
+ this.predicate(conn),
66
+ ]));
67
+ }
68
+ /**
69
+ * Resolves the single connection enabled for this tool, returning the
70
+ * connection id, its config, and the matching client manager. Designed
71
+ * for handlers that look up `runtime.clientManagers[connId]` (multi-
72
+ * connection-ready shape).
73
+ *
74
+ * Selects `enabledConnectionIds(runtime)[0]` — current runtime is single-
75
+ * connection, so this is unambiguous; if multi-connection support lands
76
+ * later, handlers can switch to iterating ids.
77
+ */
78
+ resolveSoleConnection(runtime) {
79
+ const connId = this.enabledConnectionIds(runtime)[0];
80
+ return {
81
+ connId,
82
+ conn: runtime.config.connections[connId],
83
+ clientManager: runtime.clientManagers[connId],
84
+ };
85
+ }
86
+ /**
87
+ * Resolves a required string from an explicit tool argument, falling back to
88
+ * a connection-config value. Throws if neither is present.
89
+ * `label` is the human-readable field name (e.g. `"Organization ID"`);
90
+ * the thrown message is `"${label} is required"`.
91
+ * The returned value is always trimmed.
92
+ */
93
+ resolveParam(argValue, configValue, label) {
94
+ const resolved = argValue?.trim() || configValue?.trim();
95
+ if (!resolved)
96
+ throw new Error(`${label} is required`);
97
+ return resolved;
98
+ }
99
+ /** Like resolveParam but returns undefined instead of throwing when both are absent or blank. The returned value is always trimmed. */
100
+ resolveOptionalParam(argValue, configValue) {
101
+ return argValue?.trim() || configValue?.trim() || undefined;
23
102
  }
24
103
  createResponse(message, isError = false, _meta) {
25
104
  const response = {
@@ -34,5 +113,20 @@ export class BaseToolHandler {
34
113
  };
35
114
  return response;
36
115
  }
116
+ /**
117
+ * Variant of {@link createResponse} that surfaces the response's
118
+ * machine-readable payload via MCP's `structuredContent` channel (per the
119
+ * [2025-11-25 spec](https://modelcontextprotocol.io/specification/2025-11-25/server/tools)).
120
+ * The `message` carries the human-readable summary on `content`; the
121
+ * `structuredContent` field carries the typed JSON payload callers (or
122
+ * `outputSchema` validators) can consume directly.
123
+ */
124
+ createStructuredResponse(message, structuredContent) {
125
+ return {
126
+ content: [{ type: "text", text: message }],
127
+ structuredContent,
128
+ isError: false,
129
+ };
130
+ }
37
131
  }
38
132
  //# sourceMappingURL=base-tools.js.map