@confluentinc/mcp-confluent 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +171 -193
- package/assets/oauth-templates/callback-failure.html +22 -0
- package/assets/oauth-templates/callback-success.html +19 -0
- package/assets/oauth-templates/logo.html +91 -0
- package/assets/oauth-templates/styles.html +49 -0
- package/config.example.yaml +149 -0
- package/config.oauth.example.yaml +45 -0
- package/dist/cli.d.ts +59 -12
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +131 -61
- package/dist/cli.js.map +1 -1
- package/dist/config/env-config.d.ts +33 -0
- package/dist/config/env-config.d.ts.map +1 -0
- package/dist/config/env-config.js +473 -0
- package/dist/config/env-config.js.map +1 -0
- package/dist/config/index.d.ts +31 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +76 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/interpolation.d.ts +9 -0
- package/dist/config/interpolation.d.ts.map +1 -0
- package/dist/config/interpolation.js +51 -0
- package/dist/config/interpolation.js.map +1 -0
- package/dist/config/models.d.ts +396 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +401 -0
- package/dist/config/models.js.map +1 -0
- package/dist/config/validation.d.ts +9 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +46 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/confluent/base-client-manager.d.ts +100 -0
- package/dist/confluent/base-client-manager.d.ts.map +1 -0
- package/dist/confluent/base-client-manager.js +188 -0
- package/dist/confluent/base-client-manager.js.map +1 -0
- package/dist/confluent/client-manager.d.ts +42 -77
- package/dist/confluent/client-manager.d.ts.map +1 -1
- package/dist/confluent/client-manager.js +5 -213
- package/dist/confluent/client-manager.js.map +1 -1
- package/dist/confluent/config-telemetry.d.ts +41 -0
- package/dist/confluent/config-telemetry.d.ts.map +1 -0
- package/dist/confluent/config-telemetry.js +17 -0
- package/dist/confluent/config-telemetry.js.map +1 -0
- package/dist/confluent/direct-client-manager.d.ts +43 -0
- package/dist/confluent/direct-client-manager.d.ts.map +1 -0
- package/dist/confluent/direct-client-manager.js +146 -0
- package/dist/confluent/direct-client-manager.js.map +1 -0
- package/dist/confluent/middleware.d.ts +32 -4
- package/dist/confluent/middleware.d.ts.map +1 -1
- package/dist/confluent/middleware.js +46 -2
- package/dist/confluent/middleware.js.map +1 -1
- package/dist/confluent/node-deps.d.ts +32 -39
- package/dist/confluent/node-deps.d.ts.map +1 -1
- package/dist/confluent/node-deps.js +42 -7
- package/dist/confluent/node-deps.js.map +1 -1
- package/dist/confluent/oauth/auth-context.d.ts +94 -0
- package/dist/confluent/oauth/auth-context.d.ts.map +1 -0
- package/dist/confluent/oauth/auth-context.js +323 -0
- package/dist/confluent/oauth/auth-context.js.map +1 -0
- package/dist/confluent/oauth/auth0-config.d.ts +12 -0
- package/dist/confluent/oauth/auth0-config.d.ts.map +1 -0
- package/dist/confluent/oauth/auth0-config.js +43 -0
- package/dist/confluent/oauth/auth0-config.js.map +1 -0
- package/dist/confluent/oauth/callback-pages.d.ts +5 -0
- package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
- package/dist/confluent/oauth/callback-pages.js +38 -0
- package/dist/confluent/oauth/callback-pages.js.map +1 -0
- package/dist/confluent/oauth/crypto-utils.d.ts +16 -0
- package/dist/confluent/oauth/crypto-utils.d.ts.map +1 -0
- package/dist/confluent/oauth/crypto-utils.js +23 -0
- package/dist/confluent/oauth/crypto-utils.js.map +1 -0
- package/dist/confluent/oauth/errors.d.ts +27 -0
- package/dist/confluent/oauth/errors.d.ts.map +1 -0
- package/dist/confluent/oauth/errors.js +6 -0
- package/dist/confluent/oauth/errors.js.map +1 -0
- package/dist/confluent/oauth/oauth-holder.d.ts +34 -0
- package/dist/confluent/oauth/oauth-holder.d.ts.map +1 -0
- package/dist/confluent/oauth/oauth-holder.js +155 -0
- package/dist/confluent/oauth/oauth-holder.js.map +1 -0
- package/dist/confluent/oauth/pkce-login.d.ts +26 -0
- package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
- package/dist/confluent/oauth/pkce-login.js +161 -0
- package/dist/confluent/oauth/pkce-login.js.map +1 -0
- package/dist/confluent/oauth/token-chain.d.ts +53 -0
- package/dist/confluent/oauth/token-chain.d.ts.map +1 -0
- package/dist/confluent/oauth/token-chain.js +141 -0
- package/dist/confluent/oauth/token-chain.js.map +1 -0
- package/dist/confluent/oauth/token-lifetimes.d.ts +13 -0
- package/dist/confluent/oauth/token-lifetimes.d.ts.map +1 -0
- package/dist/confluent/oauth/token-lifetimes.js +13 -0
- package/dist/confluent/oauth/token-lifetimes.js.map +1 -0
- package/dist/confluent/oauth/types.d.ts +68 -0
- package/dist/confluent/oauth/types.d.ts.map +1 -0
- package/dist/confluent/oauth/types.js +2 -0
- package/dist/confluent/oauth/types.js.map +1 -0
- package/dist/confluent/oauth-client-manager.d.ts +78 -0
- package/dist/confluent/oauth-client-manager.d.ts.map +1 -0
- package/dist/confluent/oauth-client-manager.js +265 -0
- package/dist/confluent/oauth-client-manager.js.map +1 -0
- package/dist/confluent/oauth-resource-resolvers.d.ts +6 -0
- package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -0
- package/dist/confluent/oauth-resource-resolvers.js +65 -0
- package/dist/confluent/oauth-resource-resolvers.js.map +1 -0
- package/dist/confluent/telemetry.d.ts +32 -1
- package/dist/confluent/telemetry.d.ts.map +1 -1
- package/dist/confluent/telemetry.js +31 -8
- package/dist/confluent/telemetry.js.map +1 -1
- package/dist/confluent/tools/base-tools.d.ts +98 -23
- package/dist/confluent/tools/base-tools.d.ts.map +1 -1
- package/dist/confluent/tools/base-tools.js +62 -4
- package/dist/confluent/tools/base-tools.js.map +1 -1
- package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
- package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
- package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
- package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
- package/dist/confluent/tools/connection-predicates.d.ts +168 -0
- package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
- package/dist/confluent/tools/connection-predicates.js +273 -0
- package/dist/confluent/tools/connection-predicates.js.map +1 -0
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +4 -8
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +4 -8
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +4 -8
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/delete-tag.js +4 -8
- package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/list-tags.js +4 -8
- package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +4 -8
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +9 -12
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +21 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +22 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js +21 -21
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +10 -15
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +15 -17
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +10 -15
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +57 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +122 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +17 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +234 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +13 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +285 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js +4 -8
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js +4 -8
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +16 -9
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +18 -12
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +15 -21
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +15 -21
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +12 -20
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +12 -20
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +13 -29
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +18 -23
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +8 -15
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +11 -17
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +2 -2
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +21 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +31 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -16
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -13
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +3 -5
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +20 -19
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +5 -4
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +23 -16
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +50 -14
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +24 -7
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +3 -5
- package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/get-topic-config.js +20 -19
- package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +23 -9
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +51 -32
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +4 -5
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +4 -8
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +22 -5
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +86 -52
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +49 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +115 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +11 -7
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +11 -6
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +4 -5
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +4 -8
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +4 -5
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +4 -8
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +17 -13
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +7 -13
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +5 -9
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +19 -21
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +25 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +27 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +17 -13
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +7 -13
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +6 -12
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +5 -9
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/tool-availability.d.ts +74 -0
- package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
- package/dist/confluent/tools/tool-availability.js +121 -0
- package/dist/confluent/tools/tool-availability.js.map +1 -0
- package/dist/confluent/tools/tool-name.d.ts +5 -1
- package/dist/confluent/tools/tool-name.d.ts.map +1 -1
- package/dist/confluent/tools/tool-name.js +4 -0
- package/dist/confluent/tools/tool-name.js.map +1 -1
- package/dist/confluent/tools/tool-registry.d.ts +18 -0
- package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
- package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +32 -19
- package/dist/confluent/tools/tool-registry.js.map +1 -0
- package/dist/env-schema.d.ts +5 -7
- package/dist/env-schema.d.ts.map +1 -1
- package/dist/env-schema.js +20 -39
- package/dist/env-schema.js.map +1 -1
- package/dist/env.d.ts +16 -7
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +16 -6
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +74 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +279 -166
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +21 -20
- package/dist/logger.js.map +1 -1
- package/dist/mcp/server.d.ts +29 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +52 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/transports/auth.d.ts +20 -4
- package/dist/mcp/transports/auth.d.ts.map +1 -1
- package/dist/mcp/transports/auth.js +27 -7
- package/dist/mcp/transports/auth.js.map +1 -1
- package/dist/mcp/transports/http.d.ts +8 -2
- package/dist/mcp/transports/http.d.ts.map +1 -1
- package/dist/mcp/transports/http.js +57 -42
- package/dist/mcp/transports/http.js.map +1 -1
- package/dist/mcp/transports/manager.d.ts +23 -9
- package/dist/mcp/transports/manager.d.ts.map +1 -1
- package/dist/mcp/transports/manager.js +27 -24
- package/dist/mcp/transports/manager.js.map +1 -1
- package/dist/mcp/transports/server.d.ts +1 -1
- package/dist/mcp/transports/server.d.ts.map +1 -1
- package/dist/mcp/transports/server.js +17 -5
- package/dist/mcp/transports/server.js.map +1 -1
- package/dist/mcp/transports/session-registry.d.ts +33 -0
- package/dist/mcp/transports/session-registry.d.ts.map +1 -0
- package/dist/mcp/transports/session-registry.js +65 -0
- package/dist/mcp/transports/session-registry.js.map +1 -0
- package/dist/mcp/transports/sse.d.ts +13 -2
- package/dist/mcp/transports/sse.d.ts.map +1 -1
- package/dist/mcp/transports/sse.js +58 -46
- package/dist/mcp/transports/sse.js.map +1 -1
- package/dist/server-runtime.d.ts +28 -0
- package/dist/server-runtime.d.ts.map +1 -0
- package/dist/server-runtime.js +73 -0
- package/dist/server-runtime.js.map +1 -0
- package/package.json +25 -9
- package/dist/confluent/helpers.d.ts +0 -11
- package/dist/confluent/helpers.d.ts.map +0 -1
- package/dist/confluent/helpers.js +0 -17
- package/dist/confluent/helpers.js.map +0 -1
- package/dist/confluent/tools/tool-factory.d.ts +0 -9
- package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
- package/dist/confluent/tools/tool-factory.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/confluent/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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 {
|
|
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 {
|
|
7
|
+
import { ServerRuntime } from "../../server-runtime.js";
|
|
6
8
|
import { ZodRawShape } from "zod";
|
|
7
9
|
/**
|
|
8
10
|
* Standard MCP tool annotations.
|
|
@@ -12,23 +14,34 @@ export declare const READ_ONLY: ToolAnnotations;
|
|
|
12
14
|
export declare const CREATE_UPDATE: ToolAnnotations;
|
|
13
15
|
export declare const DESTRUCTIVE: ToolAnnotations;
|
|
14
16
|
export interface ToolHandler {
|
|
15
|
-
handle(
|
|
17
|
+
handle(runtime: ServerRuntime, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
|
|
16
18
|
getToolConfig(): ToolConfig;
|
|
17
19
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
20
|
+
* The connection predicate that gates this tool's enablement. Lifted onto
|
|
21
|
+
* the interface so the MCP tool-call wrapper can compare it against
|
|
22
|
+
* `alwaysEnabled` to skip the OAuth login gate for tools that don't touch
|
|
23
|
+
* the client manager (currently the doc-lookup tools). See
|
|
24
|
+
* {@linkcode BaseToolHandler.predicate} for the rules around setting it.
|
|
25
|
+
*/
|
|
26
|
+
readonly predicate: ConnectionPredicate;
|
|
27
|
+
/**
|
|
28
|
+
* IDs of connections that satisfy this tool's service requirements. A
|
|
29
|
+
* non-empty result enables the tool; an empty result disables it. Always a
|
|
30
|
+
* subset of `runtime.config.connections` keys.
|
|
23
31
|
*
|
|
24
|
-
*
|
|
32
|
+
* Implementations that extend {@linkcode BaseToolHandler} (the standard
|
|
33
|
+
* path for every tool in this codebase) must not override this — declare
|
|
34
|
+
* a {@linkcode BaseToolHandler.predicate} property and let the base class
|
|
35
|
+
* derive the result.
|
|
25
36
|
*/
|
|
26
|
-
|
|
37
|
+
enabledConnectionIds(runtime: ServerRuntime): string[];
|
|
27
38
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
39
|
+
* Per-connection verdict map for this tool: `{ enabled: true }` for
|
|
40
|
+
* connections that satisfy its requirements, `{ enabled: false; reason }`
|
|
41
|
+
* for those that don't. Powers startup-log grouping and the
|
|
42
|
+
* `describe-tool-availability` diagnostic tool.
|
|
30
43
|
*/
|
|
31
|
-
|
|
44
|
+
connectionVerdicts(runtime: ServerRuntime): Map<string, PredicateResult>;
|
|
32
45
|
}
|
|
33
46
|
export interface ToolConfig {
|
|
34
47
|
name: ToolName;
|
|
@@ -37,23 +50,85 @@ export interface ToolConfig {
|
|
|
37
50
|
annotations: ToolAnnotations;
|
|
38
51
|
}
|
|
39
52
|
export declare abstract class BaseToolHandler implements ToolHandler {
|
|
40
|
-
abstract handle(
|
|
53
|
+
abstract handle(runtime: ServerRuntime, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
|
|
41
54
|
abstract getToolConfig(): ToolConfig;
|
|
42
55
|
/**
|
|
43
|
-
*
|
|
56
|
+
* The connection predicate that gates this tool. The single customization
|
|
57
|
+
* seam for tool enablement — declared as a one-line readonly property:
|
|
58
|
+
*
|
|
59
|
+
* readonly predicate = hasKafka; // base predicate
|
|
60
|
+
* readonly predicate = kafkaBootstrapOrOAuth; // named composite
|
|
61
|
+
* readonly predicate = alwaysEnabled; // no requirement
|
|
62
|
+
*
|
|
63
|
+
* **Must reference a named export from `connection-predicates.ts`.** Do
|
|
64
|
+
* not compose with `allOf(...)` or `widenForOAuth(...)` at the use site.
|
|
65
|
+
* If no existing named export expresses the gate you need, add one —
|
|
66
|
+
* with a per-predicate test in `connection-predicates.test.ts` matching
|
|
67
|
+
* the depth of the existing `hasKafka` / `flinkWithTelemetry` blocks —
|
|
68
|
+
* and reference that. Enforced mechanically: the `predicate property`
|
|
69
|
+
* block in `tool-registry.test.ts` maintains an explicit
|
|
70
|
+
* `Readonly<Record<ToolName, ConnectionPredicate>>` (`EXPECTED_PREDICATES`)
|
|
71
|
+
* pinning every tool to its expected predicate. The `Record` over
|
|
72
|
+
* `ToolName` makes exhaustiveness a compile-time check (a missing tool
|
|
73
|
+
* is a `tsc` error, not a runtime one), and the value type rejects
|
|
74
|
+
* combinators at compile time. The `it.each` over the record fails with
|
|
75
|
+
* the offending tool name in the row label whenever a handler's
|
|
76
|
+
* `predicate` drifts from the table. New tools or rewires are a one-line
|
|
77
|
+
* table edit.
|
|
78
|
+
*
|
|
79
|
+
* Both {@linkcode enabledConnectionIds} and {@linkcode connectionVerdicts}
|
|
80
|
+
* are derived from this property and are marked `@final`; never override
|
|
81
|
+
* either method. The retired iteration helpers `connectionIdsWhere` and
|
|
82
|
+
* `connectionReasonsWhere` are no longer exported — the base class walks
|
|
83
|
+
* `runtime.config.connections` for you.
|
|
84
|
+
*/
|
|
85
|
+
abstract readonly predicate: ConnectionPredicate;
|
|
86
|
+
/**
|
|
87
|
+
* IDs of connections that satisfy this tool's {@linkcode predicate}. A
|
|
88
|
+
* non-empty result enables the tool; an empty result disables it.
|
|
44
89
|
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
90
|
+
* Customize tool gating by declaring {@linkcode predicate}, never by
|
|
91
|
+
* replacing this derivation.
|
|
92
|
+
*
|
|
93
|
+
* @final — concrete on `BaseToolHandler`; subclasses must not override.
|
|
94
|
+
*/
|
|
95
|
+
enabledConnectionIds(runtime: ServerRuntime): string[];
|
|
96
|
+
/**
|
|
97
|
+
* Per-connection verdict map for this tool, derived from
|
|
98
|
+
* {@linkcode predicate}. Powers grouped startup logging and
|
|
99
|
+
* the diagnostic-tool surface.
|
|
100
|
+
*
|
|
101
|
+
* Customize tool gating by declaring {@linkcode predicate}, never by
|
|
102
|
+
* replacing this derivation.
|
|
103
|
+
*
|
|
104
|
+
* @final — concrete on `BaseToolHandler`; subclasses must not override.
|
|
105
|
+
*/
|
|
106
|
+
connectionVerdicts(runtime: ServerRuntime): Map<string, PredicateResult>;
|
|
107
|
+
/**
|
|
108
|
+
* Resolves the single connection enabled for this tool, returning the
|
|
109
|
+
* connection id, its config, and the matching client manager. Designed
|
|
110
|
+
* for handlers that look up `runtime.clientManagers[connId]` (multi-
|
|
111
|
+
* connection-ready shape).
|
|
47
112
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
113
|
+
* Selects `enabledConnectionIds(runtime)[0]` — current runtime is single-
|
|
114
|
+
* connection, so this is unambiguous; if multi-connection support lands
|
|
115
|
+
* later, handlers can switch to iterating ids.
|
|
50
116
|
*/
|
|
51
|
-
|
|
117
|
+
protected resolveSoleConnection(runtime: ServerRuntime): {
|
|
118
|
+
connId: string;
|
|
119
|
+
conn: ConnectionConfig;
|
|
120
|
+
clientManager: BaseClientManager;
|
|
121
|
+
};
|
|
52
122
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
123
|
+
* Resolves a required string from an explicit tool argument, falling back to
|
|
124
|
+
* a connection-config value. Throws if neither is present.
|
|
125
|
+
* `label` is the human-readable field name (e.g. `"Organization ID"`);
|
|
126
|
+
* the thrown message is `"${label} is required"`.
|
|
127
|
+
* The returned value is always trimmed.
|
|
55
128
|
*/
|
|
56
|
-
|
|
129
|
+
protected resolveParam(argValue: string | undefined, configValue: string | undefined, label: string): string;
|
|
130
|
+
/** Like resolveParam but returns undefined instead of throwing when both are absent or blank. The returned value is always trimmed. */
|
|
131
|
+
protected resolveOptionalParam(argValue: string | undefined, configValue: string | undefined): string | undefined;
|
|
57
132
|
createResponse(message: string, isError?: boolean, _meta?: Record<string, unknown>): CallToolResult;
|
|
58
133
|
}
|
|
59
134
|
//# 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,
|
|
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,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,eAAe,EAChB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,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,OAAO,EAAE,aAAa,EACtB,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;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IAExC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,CAAC;IAEvD;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC1E;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,OAAO,EAAE,aAAa,EACtB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IAEjD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE;IAMtD;;;;;;;;;OASG;IACH,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IASxE;;;;;;;;;OASG;IACH,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG;QACvD,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,gBAAgB,CAAC;QACvB,aAAa,EAAE,iBAAiB,CAAC;KAClC;IASD;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CACpB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,KAAK,EAAE,MAAM,GACZ,MAAM;IAMT,uIAAuI;IACvI,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,MAAM,GAAG,SAAS;IAIrB,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,EACxB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,cAAc;CAalB"}
|
|
@@ -15,11 +15,69 @@ export const DESTRUCTIVE = {
|
|
|
15
15
|
};
|
|
16
16
|
export class BaseToolHandler {
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
18
|
+
* IDs of connections that satisfy this tool's {@linkcode predicate}. A
|
|
19
|
+
* non-empty result enables the tool; an empty result disables it.
|
|
20
|
+
*
|
|
21
|
+
* Customize tool gating by declaring {@linkcode predicate}, never by
|
|
22
|
+
* replacing this derivation.
|
|
23
|
+
*
|
|
24
|
+
* @final — concrete on `BaseToolHandler`; subclasses must not override.
|
|
20
25
|
*/
|
|
21
|
-
|
|
22
|
-
return
|
|
26
|
+
enabledConnectionIds(runtime) {
|
|
27
|
+
return Object.entries(runtime.config.connections)
|
|
28
|
+
.filter(([, conn]) => this.predicate(conn).enabled)
|
|
29
|
+
.map(([id]) => id);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Per-connection verdict map for this tool, derived from
|
|
33
|
+
* {@linkcode predicate}. Powers grouped startup logging and
|
|
34
|
+
* the diagnostic-tool surface.
|
|
35
|
+
*
|
|
36
|
+
* Customize tool gating by declaring {@linkcode predicate}, never by
|
|
37
|
+
* replacing this derivation.
|
|
38
|
+
*
|
|
39
|
+
* @final — concrete on `BaseToolHandler`; subclasses must not override.
|
|
40
|
+
*/
|
|
41
|
+
connectionVerdicts(runtime) {
|
|
42
|
+
return new Map(Object.entries(runtime.config.connections).map(([id, conn]) => [
|
|
43
|
+
id,
|
|
44
|
+
this.predicate(conn),
|
|
45
|
+
]));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolves the single connection enabled for this tool, returning the
|
|
49
|
+
* connection id, its config, and the matching client manager. Designed
|
|
50
|
+
* for handlers that look up `runtime.clientManagers[connId]` (multi-
|
|
51
|
+
* connection-ready shape).
|
|
52
|
+
*
|
|
53
|
+
* Selects `enabledConnectionIds(runtime)[0]` — current runtime is single-
|
|
54
|
+
* connection, so this is unambiguous; if multi-connection support lands
|
|
55
|
+
* later, handlers can switch to iterating ids.
|
|
56
|
+
*/
|
|
57
|
+
resolveSoleConnection(runtime) {
|
|
58
|
+
const connId = this.enabledConnectionIds(runtime)[0];
|
|
59
|
+
return {
|
|
60
|
+
connId,
|
|
61
|
+
conn: runtime.config.connections[connId],
|
|
62
|
+
clientManager: runtime.clientManagers[connId],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Resolves a required string from an explicit tool argument, falling back to
|
|
67
|
+
* a connection-config value. Throws if neither is present.
|
|
68
|
+
* `label` is the human-readable field name (e.g. `"Organization ID"`);
|
|
69
|
+
* the thrown message is `"${label} is required"`.
|
|
70
|
+
* The returned value is always trimmed.
|
|
71
|
+
*/
|
|
72
|
+
resolveParam(argValue, configValue, label) {
|
|
73
|
+
const resolved = argValue?.trim() || configValue?.trim();
|
|
74
|
+
if (!resolved)
|
|
75
|
+
throw new Error(`${label} is required`);
|
|
76
|
+
return resolved;
|
|
77
|
+
}
|
|
78
|
+
/** Like resolveParam but returns undefined instead of throwing when both are absent or blank. The returned value is always trimmed. */
|
|
79
|
+
resolveOptionalParam(argValue, configValue) {
|
|
80
|
+
return argValue?.trim() || configValue?.trim() || undefined;
|
|
23
81
|
}
|
|
24
82
|
createResponse(message, isError = false, _meta) {
|
|
25
83
|
const response = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-tools.js","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-tools.js","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAoB;IACxC,YAAY,EAAE,IAAI;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,KAAK;CACX,CAAC;AAgDX,MAAM,OAAgB,eAAe;IAyCnC;;;;;;;;OAQG;IACH,oBAAoB,CAAC,OAAsB;QACzC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;aAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;aAClD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;;;;OASG;IACH,kBAAkB,CAAC,OAAsB;QACvC,OAAO,IAAI,GAAG,CACZ,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YAC7D,EAAE;YACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SACrB,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACO,qBAAqB,CAAC,OAAsB;QAKpD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC;QACtD,OAAO;YACL,MAAM;YACN,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAE;YACzC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAE;SAC/C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,YAAY,CACpB,QAA4B,EAC5B,WAA+B,EAC/B,KAAa;QAEb,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,IAAI,EAAE,CAAC;QACzD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,uIAAuI;IAC7H,oBAAoB,CAC5B,QAA4B,EAC5B,WAA+B;QAE/B,OAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAC9D,CAAC;IAED,cAAc,CACZ,OAAe,EACf,UAAmB,KAAK,EACxB,KAA+B;QAE/B,MAAM,QAAQ,GAAmB;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;iBACd;aACF;YACD,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,KAAK;SACb,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cluster-arg resolver for native Kafka handlers. Asymmetric by connection
|
|
3
|
+
* type:
|
|
4
|
+
*
|
|
5
|
+
* - Direct: returns `{ clusterId: undefined, envId: undefined }`. The
|
|
6
|
+
* `DirectClientManager` ignores cluster args and uses its eagerly-built
|
|
7
|
+
* single-instance client(s); the handler passes the undefineds through.
|
|
8
|
+
* - OAuth: requires the args; throws with a discovery hint if missing.
|
|
9
|
+
* Handlers catch the throw at entry and convert to a `CallToolResult`
|
|
10
|
+
* with `isError: true` so the agent receives a normal tool-call error
|
|
11
|
+
* rather than an RPC failure.
|
|
12
|
+
*/
|
|
13
|
+
import { ServerRuntime } from "../../server-runtime.js";
|
|
14
|
+
export declare function resolveKafkaClusterArgs(args: {
|
|
15
|
+
cluster_id?: string;
|
|
16
|
+
environment_id?: string;
|
|
17
|
+
}, runtime: ServerRuntime, connId: string): {
|
|
18
|
+
clusterId: string | undefined;
|
|
19
|
+
envId: string | undefined;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* REST-tool variant of {@link resolveKafkaClusterArgs}. The Kafka REST API
|
|
23
|
+
* places `cluster_id` directly in the URL path
|
|
24
|
+
* (e.g. `/kafka/v3/clusters/{id}/topics`), so the handler always needs a
|
|
25
|
+
* concrete cluster id — even on direct connections that omit the arg and
|
|
26
|
+
* rely on the configured fallback.
|
|
27
|
+
*
|
|
28
|
+
* Direct: `args.clusterId ?? conn.kafka?.cluster_id`; throws if neither.
|
|
29
|
+
* `envId` is unused (direct's `kafka.rest_endpoint` already targets the
|
|
30
|
+
* per-cluster hostname).
|
|
31
|
+
* OAuth: both `clusterId` and `environmentId` required. Argument names are
|
|
32
|
+
* camelCase to match the existing input-schema convention of these tools
|
|
33
|
+
* and `list-clusters`; the native-Kafka tools' snake_case `cluster_id` is
|
|
34
|
+
* a separate convention.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveKafkaRestArgs(args: {
|
|
37
|
+
clusterId?: string;
|
|
38
|
+
environmentId?: string;
|
|
39
|
+
}, runtime: ServerRuntime, connId: string): {
|
|
40
|
+
clusterId: string;
|
|
41
|
+
envId: string | undefined;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Env-only resolver for tools that scope a request to a single CCloud
|
|
45
|
+
* environment without a cluster identifier (e.g., `list-clusters`).
|
|
46
|
+
*
|
|
47
|
+
* Direct: arg wins; falls back to `conn.kafka?.env_id`; throws if neither
|
|
48
|
+
* source supplies a value.
|
|
49
|
+
* OAuth: arg required (no service block to fall back to); throws with a
|
|
50
|
+
* discovery hint pointing at `list-environments`.
|
|
51
|
+
*
|
|
52
|
+
* Argument name is camelCase (`environmentId`) to match the existing
|
|
53
|
+
* input-schema convention of cluster-management tools.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveEnvArg(args: {
|
|
56
|
+
environmentId?: string;
|
|
57
|
+
}, runtime: ServerRuntime, connId: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Disposes a Kafka client (admin or producer) iff the connection is OAuth-typed.
|
|
60
|
+
* On direct connections this is a no-op — direct's `AsyncLazy` admin/producer
|
|
61
|
+
* are manager-owned singletons and must not be disconnected by handlers. On
|
|
62
|
+
* OAuth, calls `client.disconnect()` and swallows + logs any error so disposal
|
|
63
|
+
* failure never masks the handler's own error.
|
|
64
|
+
*/
|
|
65
|
+
export declare function disposeIfOAuth(runtime: ServerRuntime, connId: string, client: {
|
|
66
|
+
disconnect: () => Promise<void>;
|
|
67
|
+
}): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Renders any error thrown from a Kafka admin/producer/consumer call into a
|
|
70
|
+
* single agent-readable string. Preserves per-topic-cause unwrapping for
|
|
71
|
+
* `KafkaJSAggregateError`, surfaces `KafkaJSError.code` when present, and
|
|
72
|
+
* falls back gracefully for unknown shapes.
|
|
73
|
+
*/
|
|
74
|
+
export declare function formatKafkaError(err: unknown): string;
|
|
75
|
+
//# sourceMappingURL=cluster-arg-resolvers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster-arg-resolvers.d.ts","sourceRoot":"","sources":["../../../src/confluent/tools/cluster-arg-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAe9D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAqBlD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,GACb,MAAM,CAaR;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAoBrD"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cluster-arg resolver for native Kafka handlers. Asymmetric by connection
|
|
3
|
+
* type:
|
|
4
|
+
*
|
|
5
|
+
* - Direct: returns `{ clusterId: undefined, envId: undefined }`. The
|
|
6
|
+
* `DirectClientManager` ignores cluster args and uses its eagerly-built
|
|
7
|
+
* single-instance client(s); the handler passes the undefineds through.
|
|
8
|
+
* - OAuth: requires the args; throws with a discovery hint if missing.
|
|
9
|
+
* Handlers catch the throw at entry and convert to a `CallToolResult`
|
|
10
|
+
* with `isError: true` so the agent receives a normal tool-call error
|
|
11
|
+
* rather than an RPC failure.
|
|
12
|
+
*/
|
|
13
|
+
import { KafkaJS } from "@confluentinc/kafka-javascript";
|
|
14
|
+
import { logger } from "../../logger.js";
|
|
15
|
+
export function resolveKafkaClusterArgs(args, runtime, connId) {
|
|
16
|
+
const conn = runtime.config.connections[connId];
|
|
17
|
+
if (conn.type === "direct") {
|
|
18
|
+
return { clusterId: undefined, envId: undefined };
|
|
19
|
+
}
|
|
20
|
+
if (args.cluster_id === undefined || args.environment_id === undefined) {
|
|
21
|
+
throw new Error("cluster_id and environment_id are required under OAuth connection type. " +
|
|
22
|
+
"Discover the environment via list-environments, then call list-clusters " +
|
|
23
|
+
"with environment_id and pass the cluster's `id` and `spec.environment.id`.");
|
|
24
|
+
}
|
|
25
|
+
return { clusterId: args.cluster_id, envId: args.environment_id };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* REST-tool variant of {@link resolveKafkaClusterArgs}. The Kafka REST API
|
|
29
|
+
* places `cluster_id` directly in the URL path
|
|
30
|
+
* (e.g. `/kafka/v3/clusters/{id}/topics`), so the handler always needs a
|
|
31
|
+
* concrete cluster id — even on direct connections that omit the arg and
|
|
32
|
+
* rely on the configured fallback.
|
|
33
|
+
*
|
|
34
|
+
* Direct: `args.clusterId ?? conn.kafka?.cluster_id`; throws if neither.
|
|
35
|
+
* `envId` is unused (direct's `kafka.rest_endpoint` already targets the
|
|
36
|
+
* per-cluster hostname).
|
|
37
|
+
* OAuth: both `clusterId` and `environmentId` required. Argument names are
|
|
38
|
+
* camelCase to match the existing input-schema convention of these tools
|
|
39
|
+
* and `list-clusters`; the native-Kafka tools' snake_case `cluster_id` is
|
|
40
|
+
* a separate convention.
|
|
41
|
+
*/
|
|
42
|
+
export function resolveKafkaRestArgs(args, runtime, connId) {
|
|
43
|
+
const conn = runtime.config.connections[connId];
|
|
44
|
+
if (conn.type === "direct") {
|
|
45
|
+
const clusterId = args.clusterId ?? conn.kafka?.cluster_id;
|
|
46
|
+
if (!clusterId) {
|
|
47
|
+
throw new Error("clusterId is required: pass it as a tool argument or set kafka.cluster_id in the connection config.");
|
|
48
|
+
}
|
|
49
|
+
return { clusterId, envId: undefined };
|
|
50
|
+
}
|
|
51
|
+
if (!args.clusterId || !args.environmentId) {
|
|
52
|
+
throw new Error("clusterId and environmentId are required under OAuth connection type. " +
|
|
53
|
+
"Discover the environment via list-environments, then call list-clusters " +
|
|
54
|
+
"with environmentId and pass the cluster's `id` and `spec.environment.id`.");
|
|
55
|
+
}
|
|
56
|
+
return { clusterId: args.clusterId, envId: args.environmentId };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Env-only resolver for tools that scope a request to a single CCloud
|
|
60
|
+
* environment without a cluster identifier (e.g., `list-clusters`).
|
|
61
|
+
*
|
|
62
|
+
* Direct: arg wins; falls back to `conn.kafka?.env_id`; throws if neither
|
|
63
|
+
* source supplies a value.
|
|
64
|
+
* OAuth: arg required (no service block to fall back to); throws with a
|
|
65
|
+
* discovery hint pointing at `list-environments`.
|
|
66
|
+
*
|
|
67
|
+
* Argument name is camelCase (`environmentId`) to match the existing
|
|
68
|
+
* input-schema convention of cluster-management tools.
|
|
69
|
+
*/
|
|
70
|
+
export function resolveEnvArg(args, runtime, connId) {
|
|
71
|
+
const conn = runtime.config.connections[connId];
|
|
72
|
+
const fallback = conn.type === "direct" ? conn.kafka?.env_id : undefined;
|
|
73
|
+
const resolved = args.environmentId ?? fallback;
|
|
74
|
+
if (!resolved) {
|
|
75
|
+
throw new Error("environmentId is required: pass it as a tool argument or " +
|
|
76
|
+
(conn.type === "direct"
|
|
77
|
+
? "set kafka.env_id in the connection config."
|
|
78
|
+
: "call list-environments to discover available environments."));
|
|
79
|
+
}
|
|
80
|
+
return resolved;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Disposes a Kafka client (admin or producer) iff the connection is OAuth-typed.
|
|
84
|
+
* On direct connections this is a no-op — direct's `AsyncLazy` admin/producer
|
|
85
|
+
* are manager-owned singletons and must not be disconnected by handlers. On
|
|
86
|
+
* OAuth, calls `client.disconnect()` and swallows + logs any error so disposal
|
|
87
|
+
* failure never masks the handler's own error.
|
|
88
|
+
*/
|
|
89
|
+
export async function disposeIfOAuth(runtime, connId, client) {
|
|
90
|
+
if (runtime.config.connections[connId].type !== "oauth")
|
|
91
|
+
return;
|
|
92
|
+
try {
|
|
93
|
+
await client.disconnect();
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
logger.warn({ err, connId }, "OAuth Kafka client disconnect failed");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Renders any error thrown from a Kafka admin/producer/consumer call into a
|
|
101
|
+
* single agent-readable string. Preserves per-topic-cause unwrapping for
|
|
102
|
+
* `KafkaJSAggregateError`, surfaces `KafkaJSError.code` when present, and
|
|
103
|
+
* falls back gracefully for unknown shapes.
|
|
104
|
+
*/
|
|
105
|
+
export function formatKafkaError(err) {
|
|
106
|
+
if (err instanceof KafkaJS.KafkaJSAggregateError) {
|
|
107
|
+
const details = err.errors
|
|
108
|
+
.map((inner) => {
|
|
109
|
+
if (inner instanceof KafkaJS.KafkaJSCreateTopicError) {
|
|
110
|
+
return `- ${inner.topic}: ${inner.message}`;
|
|
111
|
+
}
|
|
112
|
+
if (inner instanceof KafkaJS.KafkaJSError) {
|
|
113
|
+
return `- ${inner.code ?? "unknown"}: ${inner.message}`;
|
|
114
|
+
}
|
|
115
|
+
return `- ${typeof inner === "string" ? inner : String(inner)}`;
|
|
116
|
+
})
|
|
117
|
+
.join("\n");
|
|
118
|
+
return `${err.message}\n${details}`;
|
|
119
|
+
}
|
|
120
|
+
if (err instanceof KafkaJS.KafkaJSError) {
|
|
121
|
+
return `Kafka error (${err.code ?? "unknown"}): ${err.message}`;
|
|
122
|
+
}
|
|
123
|
+
if (err instanceof Error)
|
|
124
|
+
return err.message;
|
|
125
|
+
return String(err);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=cluster-arg-resolvers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster-arg-resolvers.js","sourceRoot":"","sources":["../../../src/confluent/tools/cluster-arg-resolvers.ts"],"names":[],"mappings":"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"}
|