@confluentinc/mcp-confluent 1.4.0 → 1.5.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 (344) hide show
  1. package/README.md +52 -31
  2. package/config.example.yaml +36 -7
  3. package/config.oauth.example.yaml +14 -1
  4. package/dist/config/env-config.d.ts +9 -3
  5. package/dist/config/env-config.d.ts.map +1 -1
  6. package/dist/config/env-config.js +15 -34
  7. package/dist/config/env-config.js.map +1 -1
  8. package/dist/config/models.d.ts +105 -13
  9. package/dist/config/models.d.ts.map +1 -1
  10. package/dist/config/models.js +49 -37
  11. package/dist/config/models.js.map +1 -1
  12. package/dist/confluent/base-client-manager.d.ts +2 -0
  13. package/dist/confluent/base-client-manager.d.ts.map +1 -1
  14. package/dist/confluent/base-client-manager.js +4 -0
  15. package/dist/confluent/base-client-manager.js.map +1 -1
  16. package/dist/confluent/client-manager.d.ts +14 -0
  17. package/dist/confluent/client-manager.d.ts.map +1 -1
  18. package/dist/confluent/oauth/auth0-config.d.ts +26 -4
  19. package/dist/confluent/oauth/auth0-config.d.ts.map +1 -1
  20. package/dist/confluent/oauth/auth0-config.js +59 -19
  21. package/dist/confluent/oauth/auth0-config.js.map +1 -1
  22. package/dist/confluent/oauth/types.d.ts +1 -2
  23. package/dist/confluent/oauth/types.d.ts.map +1 -1
  24. package/dist/confluent/oauth-client-manager.d.ts +5 -2
  25. package/dist/confluent/oauth-client-manager.d.ts.map +1 -1
  26. package/dist/confluent/oauth-client-manager.js +28 -6
  27. package/dist/confluent/oauth-client-manager.js.map +1 -1
  28. package/dist/confluent/oauth-resource-resolvers.d.ts +11 -0
  29. package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -1
  30. package/dist/confluent/oauth-resource-resolvers.js +24 -0
  31. package/dist/confluent/oauth-resource-resolvers.js.map +1 -1
  32. package/dist/confluent/schema-registry-helper.d.ts +114 -7
  33. package/dist/confluent/schema-registry-helper.d.ts.map +1 -1
  34. package/dist/confluent/schema-registry-helper.js +302 -40
  35. package/dist/confluent/schema-registry-helper.js.map +1 -1
  36. package/dist/confluent/tools/base-tools.d.ts +165 -21
  37. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  38. package/dist/confluent/tools/base-tools.js +223 -20
  39. package/dist/confluent/tools/base-tools.js.map +1 -1
  40. package/dist/confluent/tools/cluster-arg-resolvers.d.ts +21 -0
  41. package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -1
  42. package/dist/confluent/tools/cluster-arg-resolvers.js +45 -0
  43. package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -1
  44. package/dist/confluent/tools/connection-predicates.d.ts +70 -7
  45. package/dist/confluent/tools/connection-predicates.d.ts.map +1 -1
  46. package/dist/confluent/tools/connection-predicates.js +69 -6
  47. package/dist/confluent/tools/connection-predicates.js.map +1 -1
  48. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +1 -1
  49. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
  50. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +1 -2
  51. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  52. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +9 -5
  53. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  54. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +1 -2
  55. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  56. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +9 -5
  57. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  58. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +1 -2
  59. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  60. package/dist/confluent/tools/handlers/catalog/delete-tag.js +9 -5
  61. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  62. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +2 -3
  63. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  64. package/dist/confluent/tools/handlers/catalog/list-tags.js +14 -6
  65. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  66. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +1 -2
  67. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  68. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +9 -5
  69. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  70. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  71. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +1 -1
  72. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  73. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +8 -8
  74. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -1
  75. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +9 -10
  76. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -1
  77. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  78. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +1 -2
  79. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  80. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  81. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +1 -2
  82. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  83. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.d.ts.map +1 -1
  84. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js +1 -2
  85. package/dist/confluent/tools/handlers/connect/get-connector-config-handler.js.map +1 -1
  86. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.d.ts.map +1 -1
  87. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js +1 -2
  88. package/dist/confluent/tools/handlers/connect/get-connector-error-recommendations-handler.js.map +1 -1
  89. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.d.ts.map +1 -1
  90. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js +1 -2
  91. package/dist/confluent/tools/handlers/connect/get-connector-error-summary-handler.js.map +1 -1
  92. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.d.ts.map +1 -1
  93. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js +36 -11
  94. package/dist/confluent/tools/handlers/connect/get-connector-logs-handler.js.map +1 -1
  95. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.d.ts.map +1 -1
  96. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js +1 -2
  97. package/dist/confluent/tools/handlers/connect/get-connector-offsets-handler.js.map +1 -1
  98. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.d.ts.map +1 -1
  99. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js +1 -2
  100. package/dist/confluent/tools/handlers/connect/get-connector-status-handler.js.map +1 -1
  101. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.d.ts.map +1 -1
  102. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js +1 -2
  103. package/dist/confluent/tools/handlers/connect/get-connector-tasks-handler.js.map +1 -1
  104. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  105. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +1 -2
  106. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  107. package/dist/confluent/tools/handlers/connect/pause-connector-handler.d.ts.map +1 -1
  108. package/dist/confluent/tools/handlers/connect/pause-connector-handler.js +1 -2
  109. package/dist/confluent/tools/handlers/connect/pause-connector-handler.js.map +1 -1
  110. package/dist/confluent/tools/handlers/connect/restart-connector-handler.d.ts.map +1 -1
  111. package/dist/confluent/tools/handlers/connect/restart-connector-handler.js +1 -2
  112. package/dist/confluent/tools/handlers/connect/restart-connector-handler.js.map +1 -1
  113. package/dist/confluent/tools/handlers/connect/resume-connector-handler.d.ts.map +1 -1
  114. package/dist/confluent/tools/handlers/connect/resume-connector-handler.js +1 -2
  115. package/dist/confluent/tools/handlers/connect/resume-connector-handler.js.map +1 -1
  116. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.d.ts.map +1 -1
  117. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js +1 -2
  118. package/dist/confluent/tools/handlers/connect/update-connector-config-handler.js.map +1 -1
  119. package/dist/confluent/tools/handlers/diagnostics/config-help-handler.d.ts +42 -0
  120. package/dist/confluent/tools/handlers/diagnostics/config-help-handler.d.ts.map +1 -0
  121. package/dist/confluent/tools/handlers/diagnostics/config-help-handler.js +297 -0
  122. package/dist/confluent/tools/handlers/diagnostics/config-help-handler.js.map +1 -0
  123. package/dist/confluent/tools/handlers/diagnostics/describe-configured-connection-handler.d.ts +31 -0
  124. package/dist/confluent/tools/handlers/diagnostics/describe-configured-connection-handler.d.ts.map +1 -0
  125. package/dist/confluent/tools/handlers/diagnostics/describe-configured-connection-handler.js +116 -0
  126. package/dist/confluent/tools/handlers/diagnostics/describe-configured-connection-handler.js.map +1 -0
  127. package/dist/confluent/tools/handlers/diagnostics/describe-fields.d.ts +52 -0
  128. package/dist/confluent/tools/handlers/diagnostics/describe-fields.d.ts.map +1 -0
  129. package/dist/confluent/tools/handlers/diagnostics/describe-fields.js +114 -0
  130. package/dist/confluent/tools/handlers/diagnostics/describe-fields.js.map +1 -0
  131. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +19 -42
  132. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -1
  133. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +95 -81
  134. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -1
  135. package/dist/confluent/tools/handlers/diagnostics/list-configured-connections-handler.d.ts +27 -0
  136. package/dist/confluent/tools/handlers/diagnostics/list-configured-connections-handler.d.ts.map +1 -0
  137. package/dist/confluent/tools/handlers/diagnostics/list-configured-connections-handler.js +93 -0
  138. package/dist/confluent/tools/handlers/diagnostics/list-configured-connections-handler.js.map +1 -0
  139. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +1 -1
  140. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  141. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +1 -1
  142. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  143. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
  144. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +24 -21
  145. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
  146. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
  147. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +24 -21
  148. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
  149. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
  150. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +9 -7
  151. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
  152. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
  153. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +14 -12
  154. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
  155. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
  156. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +14 -12
  157. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
  158. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  159. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +27 -22
  160. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  161. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  162. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +20 -12
  163. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  164. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
  165. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +20 -12
  166. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
  167. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
  168. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +20 -18
  169. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
  170. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
  171. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +24 -22
  172. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
  173. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +3 -2
  174. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
  175. package/dist/confluent/tools/handlers/flink/flink-sql-helper.js +133 -57
  176. package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
  177. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +27 -6
  178. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -1
  179. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +36 -7
  180. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -1
  181. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
  182. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +20 -12
  183. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
  184. package/dist/confluent/tools/handlers/flink/{read-flink-statement-handler.d.ts → get-flink-statement-results-handler.d.ts} +2 -2
  185. package/dist/confluent/tools/handlers/flink/get-flink-statement-results-handler.d.ts.map +1 -0
  186. package/dist/confluent/tools/handlers/flink/{read-flink-statement-handler.js → get-flink-statement-results-handler.js} +30 -22
  187. package/dist/confluent/tools/handlers/flink/get-flink-statement-results-handler.js.map +1 -0
  188. package/dist/confluent/tools/handlers/flink/list-compute-pools-handler.d.ts +10 -0
  189. package/dist/confluent/tools/handlers/flink/list-compute-pools-handler.d.ts.map +1 -0
  190. package/dist/confluent/tools/handlers/flink/list-compute-pools-handler.js +118 -0
  191. package/dist/confluent/tools/handlers/flink/list-compute-pools-handler.js.map +1 -0
  192. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  193. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +19 -17
  194. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  195. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  196. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +1 -1
  197. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  198. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +15 -5
  199. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
  200. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +54 -10
  201. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
  202. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  203. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +12 -3
  204. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  205. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  206. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +1 -1
  207. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  208. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.d.ts.map +1 -1
  209. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js +1 -1
  210. package/dist/confluent/tools/handlers/kafka/describe-consumer-group-handler.js.map +1 -1
  211. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.d.ts.map +1 -1
  212. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js +1 -1
  213. package/dist/confluent/tools/handlers/kafka/get-consumer-group-lag-handler.js.map +1 -1
  214. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.d.ts.map +1 -1
  215. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js +1 -1
  216. package/dist/confluent/tools/handlers/kafka/get-partition-offsets-handler.js.map +1 -1
  217. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
  218. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +1 -1
  219. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
  220. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.d.ts.map +1 -1
  221. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js +1 -1
  222. package/dist/confluent/tools/handlers/kafka/list-consumer-groups-handler.js.map +1 -1
  223. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  224. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +1 -1
  225. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  226. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +8 -1
  227. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  228. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +140 -34
  229. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  230. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +1 -2
  231. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
  232. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +3 -3
  233. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
  234. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +1 -2
  235. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
  236. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +6 -4
  237. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
  238. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -1
  239. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +2 -1
  240. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -1
  241. package/dist/confluent/tools/handlers/schema/create-schema-handler.d.ts +10 -0
  242. package/dist/confluent/tools/handlers/schema/create-schema-handler.d.ts.map +1 -0
  243. package/dist/confluent/tools/handlers/schema/create-schema-handler.js +76 -0
  244. package/dist/confluent/tools/handlers/schema/create-schema-handler.js.map +1 -0
  245. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +1 -1
  246. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
  247. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +1 -1
  248. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  249. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +1 -2
  250. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  251. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +9 -5
  252. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  253. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +1 -2
  254. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  255. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +9 -5
  256. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  257. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
  258. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +2 -2
  259. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
  260. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
  261. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +2 -2
  262. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
  263. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
  264. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +2 -2
  265. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
  266. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
  267. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +2 -2
  268. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
  269. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
  270. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +1 -1
  271. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
  272. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
  273. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +1 -1
  274. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
  275. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +15 -10
  276. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -1
  277. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +17 -14
  278. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -1
  279. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
  280. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +2 -2
  281. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
  282. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
  283. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +2 -2
  284. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
  285. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
  286. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +2 -2
  287. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
  288. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
  289. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +2 -2
  290. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
  291. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
  292. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +1 -1
  293. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
  294. package/dist/confluent/tools/tool-availability.d.ts +59 -28
  295. package/dist/confluent/tools/tool-availability.d.ts.map +1 -1
  296. package/dist/confluent/tools/tool-availability.js +101 -69
  297. package/dist/confluent/tools/tool-availability.js.map +1 -1
  298. package/dist/confluent/tools/tool-metadata-handler.d.ts +51 -0
  299. package/dist/confluent/tools/tool-metadata-handler.d.ts.map +1 -0
  300. package/dist/confluent/tools/tool-metadata-handler.js +61 -0
  301. package/dist/confluent/tools/tool-metadata-handler.js.map +1 -0
  302. package/dist/confluent/tools/tool-name.d.ts +7 -2
  303. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  304. package/dist/confluent/tools/tool-name.js +6 -1
  305. package/dist/confluent/tools/tool-name.js.map +1 -1
  306. package/dist/confluent/tools/tool-registry.d.ts.map +1 -1
  307. package/dist/confluent/tools/tool-registry.js +24 -2
  308. package/dist/confluent/tools/tool-registry.js.map +1 -1
  309. package/dist/env-schema.d.ts +0 -1
  310. package/dist/env-schema.d.ts.map +1 -1
  311. package/dist/env-schema.js +0 -7
  312. package/dist/env-schema.js.map +1 -1
  313. package/dist/env.d.ts +0 -1
  314. package/dist/env.d.ts.map +1 -1
  315. package/dist/index.d.ts +54 -64
  316. package/dist/index.d.ts.map +1 -1
  317. package/dist/index.js +78 -324
  318. package/dist/index.js.map +1 -1
  319. package/dist/lazy.d.ts +4 -2
  320. package/dist/lazy.d.ts.map +1 -1
  321. package/dist/lazy.js +27 -12
  322. package/dist/lazy.js.map +1 -1
  323. package/dist/mcp/server.d.ts.map +1 -1
  324. package/dist/mcp/server.js +8 -5
  325. package/dist/mcp/server.js.map +1 -1
  326. package/dist/preflight.d.ts +33 -0
  327. package/dist/preflight.d.ts.map +1 -0
  328. package/dist/preflight.js +68 -0
  329. package/dist/preflight.js.map +1 -0
  330. package/dist/server-main.d.ts +98 -0
  331. package/dist/server-main.d.ts.map +1 -0
  332. package/dist/server-main.js +383 -0
  333. package/dist/server-main.js.map +1 -0
  334. package/dist/server-runtime.d.ts +20 -5
  335. package/dist/server-runtime.d.ts.map +1 -1
  336. package/dist/server-runtime.js +45 -28
  337. package/dist/server-runtime.js.map +1 -1
  338. package/dist/utils/quote-join-ids.d.ts +9 -0
  339. package/dist/utils/quote-join-ids.d.ts.map +1 -0
  340. package/dist/utils/quote-join-ids.js +11 -0
  341. package/dist/utils/quote-join-ids.js.map +1 -0
  342. package/package.json +32 -34
  343. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +0 -1
  344. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ import { CallToolResult } from "../../../../confluent/schema.js";
2
+ import { ToolCategory, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ToolMetadataHandler } from "../../../../confluent/tools/tool-metadata-handler.js";
4
+ import { ServerRuntime } from "../../../../server-runtime.js";
5
+ /**
6
+ * Discovery tool: the per-connection counterpart to `list-configured-connections`.
7
+ * Given one `connectionId`, returns its non-secret config card plus which
8
+ * connection-routable tools are enabled on it and, for those that aren't, the
9
+ * reason each is gated off.
10
+ *
11
+ * The enabled/disabled split is read from each handler's
12
+ * {@link import("../../../../confluent/tools/base-tools.js").ToolHandler.connectionVerdicts}
13
+ * indexed at the requested connection — the same source `explain-disabled-tools`
14
+ * consumes. The read-only overlay therefore needs no special-casing here: a
15
+ * mutating tool on a `read_only` connection surfaces in the
16
+ * {@link ToolDisabledReason.ReadOnlyConnection} bucket automatically, kept
17
+ * distinct from the service-block-missing buckets, and the text summary renders
18
+ * that bucket affirmatively as the set of writes the flag suppresses.
19
+ *
20
+ * Always enabled (predicate is `alwaysEnabled`) so an operator can introspect a
21
+ * connection even when its config left every routable tool disabled. The
22
+ * connection-routability filter and the catalog thunk both come from
23
+ * {@link ToolMetadataHandler}.
24
+ */
25
+ export declare class DescribeConfiguredConnectionHandler extends ToolMetadataHandler {
26
+ handle(runtime: ServerRuntime, toolArguments?: Record<string, unknown>): CallToolResult;
27
+ getToolConfig(): ToolConfig;
28
+ readonly category = ToolCategory.McpServerDiagnostics;
29
+ readonly predicate: import("../../../../confluent/tools/connection-predicates.js").ConnectionPredicate;
30
+ }
31
+ //# sourceMappingURL=describe-configured-connection-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe-configured-connection-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/diagnostics/describe-configured-connection-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAEL,YAAY,EACZ,UAAU,EACX,MAAM,oCAAoC,CAAC;AAM5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8BvD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,mCAAoC,SAAQ,mBAAmB;IAC1E,MAAM,CACJ,OAAO,EAAE,aAAa,EACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,cAAc;IAmDjB,aAAa,IAAI,UAAU;IAU3B,QAAQ,CAAC,QAAQ,qCAAqC;IACtD,QAAQ,CAAC,SAAS,8EAAiB;CACpC"}
@@ -0,0 +1,116 @@
1
+ import { READ_ONLY, ToolCategory, } from "../../../../confluent/tools/base-tools.js";
2
+ import { alwaysEnabled, ToolDisabledReason, } from "../../../../confluent/tools/connection-predicates.js";
3
+ import { buildConnectionCard } from "../../../../confluent/tools/handlers/diagnostics/describe-fields.js";
4
+ import { ToolMetadataHandler } from "../../../../confluent/tools/tool-metadata-handler.js";
5
+ import { ToolName } from "../../../../confluent/tools/tool-name.js";
6
+ import { quoteJoinIds } from "../../../../utils/quote-join-ids.js";
7
+ import { z } from "zod";
8
+ const describeConfiguredConnectionArguments = z.object({
9
+ connectionId: z
10
+ .string()
11
+ .min(1, "connectionId cannot be empty")
12
+ .describe("The id of the configured connection to describe. One of the keys reported by 'list-configured-connections'."),
13
+ });
14
+ /**
15
+ * Discovery tool: the per-connection counterpart to `list-configured-connections`.
16
+ * Given one `connectionId`, returns its non-secret config card plus which
17
+ * connection-routable tools are enabled on it and, for those that aren't, the
18
+ * reason each is gated off.
19
+ *
20
+ * The enabled/disabled split is read from each handler's
21
+ * {@link import("../../../../confluent/tools/base-tools.js").ToolHandler.connectionVerdicts}
22
+ * indexed at the requested connection — the same source `explain-disabled-tools`
23
+ * consumes. The read-only overlay therefore needs no special-casing here: a
24
+ * mutating tool on a `read_only` connection surfaces in the
25
+ * {@link ToolDisabledReason.ReadOnlyConnection} bucket automatically, kept
26
+ * distinct from the service-block-missing buckets, and the text summary renders
27
+ * that bucket affirmatively as the set of writes the flag suppresses.
28
+ *
29
+ * Always enabled (predicate is `alwaysEnabled`) so an operator can introspect a
30
+ * connection even when its config left every routable tool disabled. The
31
+ * connection-routability filter and the catalog thunk both come from
32
+ * {@link ToolMetadataHandler}.
33
+ */
34
+ export class DescribeConfiguredConnectionHandler extends ToolMetadataHandler {
35
+ handle(runtime, toolArguments) {
36
+ const { connectionId } = describeConfiguredConnectionArguments.parse(toolArguments ?? {});
37
+ const conn = runtime.config.connections[connectionId];
38
+ if (conn === undefined) {
39
+ return this.createResponse(`Unknown connection id "${connectionId}". Configured connections: ${quoteJoinIds(runtime.config.getConnectionIds()) || "none"}.`, true);
40
+ }
41
+ const { scalars, blocks } = buildConnectionCard(conn);
42
+ const enabledTools = [];
43
+ const disabledTools = {};
44
+ for (const [name, handler] of this.connectionRoutableTools(runtime)) {
45
+ // Every configured connection has a verdict (connectionVerdicts iterates
46
+ // runtime.config.connections), so the lookup is always defined.
47
+ const verdict = handler.connectionVerdicts(runtime).get(connectionId);
48
+ if (verdict.enabled) {
49
+ enabledTools.push(name);
50
+ }
51
+ else {
52
+ const bucket = disabledTools[verdict.reason] ?? [];
53
+ disabledTools[verdict.reason] = bucket;
54
+ bucket.push(name);
55
+ }
56
+ }
57
+ enabledTools.sort((a, b) => a.localeCompare(b));
58
+ for (const tools of Object.values(disabledTools)) {
59
+ tools.sort((a, b) => a.localeCompare(b));
60
+ }
61
+ const description = {
62
+ connectionId,
63
+ ...scalars,
64
+ readOnly: conn.read_only === true,
65
+ blocks,
66
+ enabledTools,
67
+ disabledTools,
68
+ };
69
+ return this.createStructuredResponse(renderCard(description, conn.type), description);
70
+ }
71
+ getToolConfig() {
72
+ return {
73
+ name: ToolName.DESCRIBE_CONFIGURED_CONNECTION,
74
+ description: "Describe one configured connection by id: its non-secret config (type, endpoints, resource ids — never credentials), whether it is read-only, the tools you can invoke against it, and, for tools that are unavailable on it, the config gap or policy keeping each one off. Pass the connection id from 'list-configured-connections'. Call this to learn what a specific connection supports before routing a tool call to it.",
75
+ inputSchema: describeConfiguredConnectionArguments.shape,
76
+ annotations: READ_ONLY,
77
+ };
78
+ }
79
+ category = ToolCategory.McpServerDiagnostics;
80
+ predicate = alwaysEnabled;
81
+ }
82
+ /**
83
+ * Human-readable summary of the connection card. The structured payload is
84
+ * authoritative; this text is the at-a-glance view. The read-only suppressed
85
+ * line reads the {@link ToolDisabledReason.ReadOnlyConnection} bucket directly,
86
+ * so it surfaces with no enum-specific branching beyond that one key.
87
+ */
88
+ function renderCard(card, type) {
89
+ const lines = [];
90
+ const readOnlyMarker = card.readOnly ? ", read-only" : "";
91
+ lines.push(`Connection "${card.connectionId}" (${type}${readOnlyMarker})`);
92
+ const description = card.description;
93
+ if (typeof description === "string") {
94
+ lines.push(`Description: ${description}`);
95
+ }
96
+ const blockNames = Object.keys(card.blocks).sort((a, b) => a.localeCompare(b));
97
+ if (blockNames.length > 0) {
98
+ lines.push(`Configured blocks: ${blockNames.join(", ")}`);
99
+ }
100
+ const enabledCount = card.enabledTools.length;
101
+ lines.push(`${enabledCount} tool${enabledCount === 1 ? "" : "s"} enabled${enabledCount > 0 ? `: ${card.enabledTools.join(", ")}` : ""}`);
102
+ const suppressed = card.disabledTools[ToolDisabledReason.ReadOnlyConnection];
103
+ if (card.readOnly && suppressed !== undefined && suppressed.length > 0) {
104
+ lines.push(`${suppressed.length} mutating tool${suppressed.length === 1 ? "" : "s"} suppressed by read_only: ${suppressed.join(", ")}`);
105
+ }
106
+ const disabledEntries = Object.entries(card.disabledTools).sort(([a], [b]) => a.localeCompare(b));
107
+ if (disabledEntries.length > 0) {
108
+ const disabledCount = disabledEntries.reduce((sum, [, tools]) => sum + tools.length, 0);
109
+ lines.push(`${disabledCount} tool${disabledCount === 1 ? "" : "s"} disabled:`);
110
+ for (const [reason, tools] of disabledEntries) {
111
+ lines.push(` ${reason} (${tools.length}): ${tools.join(", ")}`);
112
+ }
113
+ }
114
+ return lines.join("\n");
115
+ }
116
+ //# sourceMappingURL=describe-configured-connection-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe-configured-connection-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/diagnostics/describe-configured-connection-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type { ConfluentCloudDirectConfig, ConnectionConfig, DirectConnectionConfig, FlinkDirectConfig, KafkaDirectConfig, OAuthConnectionConfig, SchemaRegistryDirectConfig, TableflowDirectConfig, TelemetryDirectConfig } from "../../../../config/models.js";
2
+ /**
3
+ * How the `describe-configured-connection` card treats one connection-config
4
+ * field. The visibility maps below are keyed `Record<keyof T, FieldVisibility>`
5
+ * over each connection arm and service block, so adding a config field fails
6
+ * `tsc --noEmit` (which runs in the pre-push hook and CI) until it is
7
+ * classified here — a new knob can never ship without a deliberate
8
+ * surface/withhold decision, and a secret-leak audit stays a single-file review.
9
+ *
10
+ * - `public` — non-secret scalar; surfaced in the card.
11
+ * - `secret` — credential material (`auth` blocks); never surfaced. Audit these.
12
+ * - `withheld` — non-secret but deliberately not surfaced: either a structured /
13
+ * opaque value (`extra_properties`) or one the card surfaces by other means
14
+ * (`read_only`, echoed as the coerced top-level `readOnly` boolean instead).
15
+ * - `block` — a nested service block; surfaced via its own map in
16
+ * {@link SERVICE_BLOCK_VISIBILITY}. Only appears at the connection level.
17
+ */
18
+ export type FieldVisibility = "public" | "secret" | "withheld" | "block";
19
+ export declare const KAFKA_FIELD_VISIBILITY: Readonly<Record<keyof KafkaDirectConfig, FieldVisibility>>;
20
+ export declare const SCHEMA_REGISTRY_FIELD_VISIBILITY: Readonly<Record<keyof SchemaRegistryDirectConfig, FieldVisibility>>;
21
+ export declare const CONFLUENT_CLOUD_FIELD_VISIBILITY: Readonly<Record<keyof ConfluentCloudDirectConfig, FieldVisibility>>;
22
+ export declare const TABLEFLOW_FIELD_VISIBILITY: Readonly<Record<keyof TableflowDirectConfig, FieldVisibility>>;
23
+ export declare const TELEMETRY_FIELD_VISIBILITY: Readonly<Record<keyof TelemetryDirectConfig, FieldVisibility>>;
24
+ export declare const FLINK_FIELD_VISIBILITY: Readonly<Record<keyof FlinkDirectConfig, FieldVisibility>>;
25
+ export declare const DIRECT_CONNECTION_FIELD_VISIBILITY: Readonly<Record<keyof DirectConnectionConfig, FieldVisibility>>;
26
+ export declare const OAUTH_CONNECTION_FIELD_VISIBILITY: Readonly<Record<keyof OAuthConnectionConfig, FieldVisibility>>;
27
+ /**
28
+ * Field-visibility map for each direct-connection service block, keyed by the
29
+ * block's connection-field name. The keys are exactly the
30
+ * {@link DIRECT_CONNECTION_FIELD_VISIBILITY} entries classified `"block"`
31
+ * (pinned by the drift-catch test in `describe-fields.test.ts`).
32
+ */
33
+ export declare const SERVICE_BLOCK_VISIBILITY: Readonly<Record<string, Readonly<Record<string, FieldVisibility>>>>;
34
+ /**
35
+ * The config-derived portion of a `describe-configured-connection` card:
36
+ * `scalars` holds the connection's `public` connection-level fields (e.g.
37
+ * `type`, `description`, and OAuth's `ccloud_env` / `kafka_debug`); `blocks`
38
+ * maps each present service block to its `public` fields. Secrets and
39
+ * `withheld` fields never appear in either.
40
+ */
41
+ export interface ConnectionCard {
42
+ readonly scalars: Record<string, unknown>;
43
+ readonly blocks: Record<string, Record<string, unknown>>;
44
+ }
45
+ /**
46
+ * Project a connection into its non-secret card, driven entirely by the
47
+ * visibility maps. OAuth connections carry no service blocks, so `blocks` is
48
+ * empty for them; the `public`/`secret`/`withheld`/`block` switch is the single
49
+ * place the surface/withhold decision is enforced at runtime.
50
+ */
51
+ export declare function buildConnectionCard(conn: ConnectionConfig): ConnectionCard;
52
+ //# sourceMappingURL=describe-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe-fields.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/diagnostics/describe-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAEzE,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,iBAAiB,EAAE,eAAe,CAAC,CAUjD,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CACrD,MAAM,CAAC,MAAM,0BAA0B,EAAE,eAAe,CAAC,CAI1D,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CACrD,MAAM,CAAC,MAAM,0BAA0B,EAAE,eAAe,CAAC,CAK1D,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,qBAAqB,EAAE,eAAe,CAAC,CAGrD,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAC/C,MAAM,CAAC,MAAM,qBAAqB,EAAE,eAAe,CAAC,CAIrD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,iBAAiB,EAAE,eAAe,CAAC,CASjD,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CACvD,MAAM,CAAC,MAAM,sBAAsB,EAAE,eAAe,CAAC,CAatD,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,QAAQ,CACtD,MAAM,CAAC,MAAM,qBAAqB,EAAE,eAAe,CAAC,CAOrD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC7C,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAQ1D,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAmC1E"}
@@ -0,0 +1,114 @@
1
+ export const KAFKA_FIELD_VISIBILITY = {
2
+ bootstrap_servers: "public",
3
+ rest_endpoint: "public",
4
+ cluster_id: "public",
5
+ env_id: "public",
6
+ auth: "secret",
7
+ // Free-form librdkafka property bag; can carry credential-ish values, so it
8
+ // stays unsurfaced even though it is not inherently a secret.
9
+ extra_properties: "withheld",
10
+ };
11
+ export const SCHEMA_REGISTRY_FIELD_VISIBILITY = {
12
+ endpoint: "public",
13
+ auth: "secret",
14
+ };
15
+ export const CONFLUENT_CLOUD_FIELD_VISIBILITY = {
16
+ endpoint: "public",
17
+ organization_id: "public",
18
+ auth: "secret",
19
+ };
20
+ export const TABLEFLOW_FIELD_VISIBILITY = {
21
+ auth: "secret",
22
+ };
23
+ export const TELEMETRY_FIELD_VISIBILITY = {
24
+ endpoint: "public",
25
+ auth: "secret",
26
+ };
27
+ export const FLINK_FIELD_VISIBILITY = {
28
+ endpoint: "public",
29
+ environment_id: "public",
30
+ organization_id: "public",
31
+ compute_pool_id: "public",
32
+ catalog_name: "public",
33
+ database_name: "public",
34
+ auth: "secret",
35
+ };
36
+ export const DIRECT_CONNECTION_FIELD_VISIBILITY = {
37
+ type: "public",
38
+ description: "public",
39
+ // Echoed as the coerced top-level `readOnly` boolean by the handler, so the
40
+ // raw snake_case field is withheld from the generic scalar pass.
41
+ read_only: "withheld",
42
+ kafka: "block",
43
+ schema_registry: "block",
44
+ confluent_cloud: "block",
45
+ tableflow: "block",
46
+ telemetry: "block",
47
+ flink: "block",
48
+ };
49
+ export const OAUTH_CONNECTION_FIELD_VISIBILITY = {
50
+ type: "public",
51
+ description: "public",
52
+ read_only: "withheld",
53
+ ccloud_env: "public",
54
+ kafka_debug: "public",
55
+ };
56
+ /**
57
+ * Field-visibility map for each direct-connection service block, keyed by the
58
+ * block's connection-field name. The keys are exactly the
59
+ * {@link DIRECT_CONNECTION_FIELD_VISIBILITY} entries classified `"block"`
60
+ * (pinned by the drift-catch test in `describe-fields.test.ts`).
61
+ */
62
+ export const SERVICE_BLOCK_VISIBILITY = {
63
+ kafka: KAFKA_FIELD_VISIBILITY,
64
+ schema_registry: SCHEMA_REGISTRY_FIELD_VISIBILITY,
65
+ confluent_cloud: CONFLUENT_CLOUD_FIELD_VISIBILITY,
66
+ tableflow: TABLEFLOW_FIELD_VISIBILITY,
67
+ telemetry: TELEMETRY_FIELD_VISIBILITY,
68
+ flink: FLINK_FIELD_VISIBILITY,
69
+ };
70
+ /**
71
+ * Project a connection into its non-secret card, driven entirely by the
72
+ * visibility maps. OAuth connections carry no service blocks, so `blocks` is
73
+ * empty for them; the `public`/`secret`/`withheld`/`block` switch is the single
74
+ * place the surface/withhold decision is enforced at runtime.
75
+ */
76
+ export function buildConnectionCard(conn) {
77
+ const connectionMap = conn.type === "oauth"
78
+ ? OAUTH_CONNECTION_FIELD_VISIBILITY
79
+ : DIRECT_CONNECTION_FIELD_VISIBILITY;
80
+ const fields = conn;
81
+ const scalars = {};
82
+ const blocks = {};
83
+ for (const [key, visibility] of Object.entries(connectionMap)) {
84
+ const value = fields[key];
85
+ switch (visibility) {
86
+ case "public":
87
+ if (value !== undefined)
88
+ scalars[key] = value;
89
+ break;
90
+ case "block":
91
+ if (value !== undefined) {
92
+ blocks[key] = projectBlock(SERVICE_BLOCK_VISIBILITY[key], value);
93
+ }
94
+ break;
95
+ case "secret":
96
+ case "withheld":
97
+ break;
98
+ default:
99
+ throw new Error(`Wacky -- unhandled field visibility "${visibility}" for connection field "${key}"`);
100
+ }
101
+ }
102
+ return { scalars, blocks };
103
+ }
104
+ /** Project one service block to the `public` fields it actually carries. */
105
+ function projectBlock(blockMap, blockValue) {
106
+ const out = {};
107
+ for (const [field, visibility] of Object.entries(blockMap)) {
108
+ if (visibility === "public" && blockValue[field] !== undefined) {
109
+ out[field] = blockValue[field];
110
+ }
111
+ }
112
+ return out;
113
+ }
114
+ //# sourceMappingURL=describe-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describe-fields.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/diagnostics/describe-fields.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,sBAAsB,GAE/B;IACF,iBAAiB,EAAE,QAAQ;IAC3B,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,QAAQ;IACd,4EAA4E;IAC5E,8DAA8D;IAC9D,gBAAgB,EAAE,UAAU;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAEzC;IACF,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAEzC;IACF,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,QAAQ;IACzB,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAEnC;IACF,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAEnC;IACF,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAE/B;IACF,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,QAAQ;IACxB,eAAe,EAAE,QAAQ;IACzB,eAAe,EAAE,QAAQ;IACzB,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,QAAQ;IACvB,IAAI,EAAE,QAAQ;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAE3C;IACF,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,QAAQ;IACrB,4EAA4E;IAC5E,iEAAiE;IACjE,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,OAAO;IACxB,eAAe,EAAE,OAAO;IACxB,SAAS,EAAE,OAAO;IAClB,SAAS,EAAE,OAAO;IAClB,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAE1C;IACF,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,QAAQ;CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAEjC;IACF,KAAK,EAAE,sBAAsB;IAC7B,eAAe,EAAE,gCAAgC;IACjD,eAAe,EAAE,gCAAgC;IACjD,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,0BAA0B;IACrC,KAAK,EAAE,sBAAsB;CAC9B,CAAC;AAcF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAsB;IACxD,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,KAAK,OAAO;QACnB,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,kCAAkC,CAAC;IACzC,MAAM,MAAM,GAAG,IAA0C,CAAC;IAE1D,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,MAAM,GAA4C,EAAE,CAAC;IAE3D,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC9C,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CACxB,wBAAwB,CAAC,GAAG,CAAE,EAC9B,KAAgC,CACjC,CAAC;gBACJ,CAAC;gBACD,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,UAAU;gBACb,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CACb,wCAAwC,UAAoB,2BAA2B,GAAG,GAAG,CAC9F,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED,4EAA4E;AAC5E,SAAS,YAAY,CACnB,QAAmD,EACnD,UAAmC;IAEnC,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/D,GAAG,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,55 +1,32 @@
1
1
  import { CallToolResult } from "../../../../confluent/schema.js";
2
- import { BaseToolHandler, ToolCategory, ToolConfig, ToolHandler } from "../../../../confluent/tools/base-tools.js";
3
- import { ToolName } from "../../../../confluent/tools/tool-name.js";
2
+ import { ToolCategory, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ToolMetadataHandler } from "../../../../confluent/tools/tool-metadata-handler.js";
4
4
  import { ServerRuntime } from "../../../../server-runtime.js";
5
5
  /**
6
- * Diagnostic tool that surfaces *why* tools are absent from `tools/list`.
6
+ * Diagnostic tool that surfaces *why* tools are absent from `tools/list` or
7
+ * unavailable on a given connection.
7
8
  *
8
- * The MCP protocol already advertises the enabled tool set via `tools/list`;
9
- * what it does not surface is the predicate-driven decision behind every
10
- * absence — which config piece is missing, and which tools each gap would
11
- * unlock. This handler returns that view.
9
+ * `tools/list` advertises the enabled tool set but not the predicate-driven
10
+ * decision behind every absence. This handler returns that view, shaped around
11
+ * connections: one section per configured connection listing the tools
12
+ * disabled on it (bucketed by the missing config piece, or by functional area
13
+ * under `group_by="category"`). A tool enabled on one connection and disabled
14
+ * on another shows up in the latter's section, so the cross-connection
15
+ * asymmetry is readable by comparing sections. A zero-connection config
16
+ * collapses to a dedicated summary; a single-connection config is simply one
17
+ * section. Connection-independent tools are advertised everywhere and never
18
+ * appear in a section.
12
19
  *
13
- * v1 scope (today's release): the server enforces a single configured
14
- * connection (see `enforceSingleConnectionOnly()` in
15
- * `src/config/models.ts`), so the output is a flat list of disabled tools
16
- * grouped by the missing config piece (kafka block, flink block, schema
17
- * registry block, …). Tools enabled on the active connection are
18
- * intentionally absent — `tools/list` already advertises them.
19
- *
20
- * v2 plan (when multi-connection support lands — issue #151's follow-ups):
21
- * regrow output around connections. The text body becomes one block per
22
- * connection (header + per-connection gaps) plus a `Cross-connection
23
- * deltas` section that surfaces tools enabled on some connections but not
24
- * others — the canonical "what does connection B need to reach parity with
25
- * connection A?" view. The structured `_meta` shape mirrors that change;
26
- * see the {@linkcode ToolGatingReport} JSDoc in `tool-availability.ts` for
27
- * the exact target type.
28
- *
29
- * Until v2 lands, the helper accepts a multi-connection runtime without
30
- * crashing, but the v1 flatten is *lossy*: a tool whose predicate is
31
- * enabled on at least one configured connection is reported as enabled
32
- * (and therefore omitted from `disabledGroups` entirely), and a tool
33
- * disabled on multiple connections with different reasons is bucketed
34
- * under the first disabled verdict its iteration produces — the
35
- * cross-connection asymmetry vanishes from the output. Today's
36
- * single-connection invariant means neither lossy case can fire in
37
- * production; this paragraph exists so a future reader does not mistake
38
- * defensive iteration for parity reporting.
20
+ * The structured `_meta` mirrors the rendered text; see the
21
+ * {@linkcode ToolGatingReport} JSDoc in `tool-availability.ts`.
39
22
  *
40
23
  * Always enabled (predicate is `alwaysEnabled`) so an operator can call it
41
24
  * to diagnose a config that left every other tool disabled.
42
25
  *
43
- * The handlers iterable is supplied at construction time via a thunk so
44
- * this module does not need to import `ToolHandlerRegistry`. Importing the
45
- * registry from a registered handler would create an ESM cycle, leaving
46
- * the registry's static initializer running before this class's binding
47
- * is set. The thunk is invoked at request time, after every module is
48
- * fully loaded, sidestepping the cycle entirely.
26
+ * The tool catalog is supplied through the thunk that {@link
27
+ * ToolMetadataHandler} owns, for the ESM-cycle reason documented there.
49
28
  */
50
- export declare class ExplainDisabledToolsHandler extends BaseToolHandler {
51
- private readonly listHandlers;
52
- constructor(listHandlers: () => Iterable<readonly [ToolName, ToolHandler]>);
29
+ export declare class ExplainDisabledToolsHandler extends ToolMetadataHandler {
53
30
  handle(runtime: ServerRuntime, toolArguments: Record<string, unknown> | undefined): CallToolResult;
54
31
  getToolConfig(): ToolConfig;
55
32
  readonly category = ToolCategory.McpServerDiagnostics;
@@ -1 +1 @@
1
- {"version":3,"file":"explain-disabled-tools-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,YAAY,EACZ,UAAU,EACV,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAYvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,2BAA4B,SAAQ,eAAe;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAE3B;gBAEU,YAAY,EAAE,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAK1E,MAAM,CACJ,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,cAAc;IAYjB,aAAa,IAAI,UAAU;IAU3B,QAAQ,CAAC,QAAQ,qCAAqC;IACtD,QAAQ,CAAC,SAAS,8EAAiB;CACpC"}
1
+ {"version":3,"file":"explain-disabled-tools-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAEL,YAAY,EACZ,UAAU,EACX,MAAM,oCAAoC,CAAC;AAY5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAYvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,2BAA4B,SAAQ,mBAAmB;IAClE,MAAM,CACJ,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,cAAc;IAYjB,aAAa,IAAI,UAAU;IAU3B,QAAQ,CAAC,QAAQ,qCAAqC;IACtD,QAAQ,CAAC,SAAS,8EAAiB;CACpC"}