@confluentinc/mcp-confluent 1.2.1 → 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 +174 -791
- 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 -94
- package/dist/confluent/client-manager.d.ts.map +1 -1
- package/dist/confluent/client-manager.js +5 -242
- 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 +108 -34
- package/dist/confluent/tools/base-tools.d.ts.map +1 -1
- package/dist/confluent/tools/base-tools.js +73 -10
- 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 +7 -19
- 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 +7 -19
- 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 +7 -19
- 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 +7 -19
- 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 +7 -23
- 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 +7 -19
- 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 +11 -22
- 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 +23 -33
- 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 +12 -26
- 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 +17 -28
- 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 +12 -26
- 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 +7 -19
- 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 +7 -19
- 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 +17 -31
- 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 +17 -31
- 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 +14 -28
- 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 +14 -30
- 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 +14 -38
- 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 +20 -32
- 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 +9 -24
- 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 +9 -23
- 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 +11 -25
- 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 +13 -29
- 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 +9 -23
- 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 +11 -25
- 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 +9 -23
- 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 +22 -29
- 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 +25 -17
- 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 +52 -15
- 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 +26 -8
- 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 +21 -28
- 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 +25 -10
- 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 +54 -34
- 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 +6 -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 +88 -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 +13 -18
- 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 +13 -7
- 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 +7 -19
- 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 +7 -19
- 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 +16 -22
- 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 +8 -24
- 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 +9 -25
- 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 +8 -24
- 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 +7 -21
- 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 +20 -32
- 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 +16 -22
- 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 +8 -24
- 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 +9 -25
- 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 +8 -24
- 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 +7 -21
- 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 -2
- package/dist/env-schema.d.ts.map +1 -1
- package/dist/env-schema.js +20 -5
- 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 -162
- 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
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { CLIOptions } from "../cli.js";
|
|
2
|
+
import type { MCPServerConfiguration } from "../config/models.js";
|
|
3
|
+
import type { TransportType } from "../mcp/transports/types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Wire shape of the connection-type label on telemetry events. The internal
|
|
6
|
+
* schema discriminator uses `"direct"` and `"oauth"`; the telemetry label
|
|
7
|
+
* remaps the latter to `"ccloud-oauth"` because today's OAuth arm is
|
|
8
|
+
* specifically Confluent Cloud OAuth (PKCE against CCloud Auth0). If a
|
|
9
|
+
* non-CCloud OAuth arm ever lands, {@link buildConfigTelemetry}'s mapping
|
|
10
|
+
* needs to grow.
|
|
11
|
+
*/
|
|
12
|
+
export type ConnectionTelemetryType = "direct" | "ccloud-oauth";
|
|
13
|
+
/**
|
|
14
|
+
* Result of {@link buildConfigTelemetry}. Three orthogonal dimensions captured
|
|
15
|
+
* once at server start and emitted as the payload of `SERVER_START`. They are
|
|
16
|
+
* boot-time invariants, so they don't ride TOOL_CALL events — warehouse joins
|
|
17
|
+
* on `serverSessionId` recover the link when slicing is needed. See #264.
|
|
18
|
+
*/
|
|
19
|
+
export interface ConfigTelemetry {
|
|
20
|
+
/** Which branch of `main()` built the `MCPServerConfiguration`. */
|
|
21
|
+
configSource: "yaml" | "env-vars";
|
|
22
|
+
/**
|
|
23
|
+
* Sorted list of active MCP serving listeners. Inputs are already unique by
|
|
24
|
+
* construction (Zod rejects duplicates on the YAML path; `parseTransportList`
|
|
25
|
+
* dedupes on the CLI path), so this helper does not enforce uniqueness.
|
|
26
|
+
*/
|
|
27
|
+
transports: TransportType[];
|
|
28
|
+
/**
|
|
29
|
+
* Sorted list of each declared connection's wire type. Length equals the
|
|
30
|
+
* connection count; duplicates reflect multiple connections of the same
|
|
31
|
+
* type (relevant once multi-connection lands — today always length 1).
|
|
32
|
+
*/
|
|
33
|
+
connectionTypes: ConnectionTelemetryType[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Derive the {@link ConfigTelemetry} bundle from the inputs already in scope
|
|
37
|
+
* at the end of `main()`'s bootstrap (resolved CLI options, validated
|
|
38
|
+
* `MCPServerConfiguration`, and the resolved list of active transports).
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildConfigTelemetry(cliOptions: CLIOptions, mcpConfig: MCPServerConfiguration, transports: readonly TransportType[]): ConfigTelemetry;
|
|
41
|
+
//# sourceMappingURL=config-telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-telemetry.d.ts","sourceRoot":"","sources":["../../src/confluent/config-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,cAAc,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,YAAY,EAAE,MAAM,GAAG,UAAU,CAAC;IAClC;;;;OAIG;IACH,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B;;;;OAIG;IACH,eAAe,EAAE,uBAAuB,EAAE,CAAC;CAC5C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,sBAAsB,EACjC,UAAU,EAAE,SAAS,aAAa,EAAE,GACnC,eAAe,CAYjB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive the {@link ConfigTelemetry} bundle from the inputs already in scope
|
|
3
|
+
* at the end of `main()`'s bootstrap (resolved CLI options, validated
|
|
4
|
+
* `MCPServerConfiguration`, and the resolved list of active transports).
|
|
5
|
+
*/
|
|
6
|
+
export function buildConfigTelemetry(cliOptions, mcpConfig, transports) {
|
|
7
|
+
const byLocale = (a, b) => a.localeCompare(b);
|
|
8
|
+
const connectionTypes = Object.values(mcpConfig.connections)
|
|
9
|
+
.map((conn) => conn.type === "oauth" ? "ccloud-oauth" : "direct")
|
|
10
|
+
.sort(byLocale);
|
|
11
|
+
return {
|
|
12
|
+
configSource: cliOptions.config ? "yaml" : "env-vars",
|
|
13
|
+
transports: [...transports].sort(byLocale),
|
|
14
|
+
connectionTypes,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=config-telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-telemetry.js","sourceRoot":"","sources":["../../src/confluent/config-telemetry.ts"],"names":[],"mappings":"AAqCA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAsB,EACtB,SAAiC,EACjC,UAAoC;IAEpC,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;SACzD,GAAG,CAA0B,CAAC,IAAI,EAAE,EAAE,CACrC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAClD;SACA,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO;QACL,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;QACrD,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1C,eAAe;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Direct (api-key) client manager — adds a native Kafka client to the
|
|
3
|
+
* REST/Schema-Registry surfaces inherited from {@link BaseClientManager}.
|
|
4
|
+
*/
|
|
5
|
+
import { GlobalConfig, KafkaJS } from "@confluentinc/kafka-javascript";
|
|
6
|
+
import { type DirectConnectionConfig } from "../config/models.js";
|
|
7
|
+
import { BaseClientManager, type BaseClientManagerConfig } from "../confluent/base-client-manager.js";
|
|
8
|
+
import { type ClientManager } from "../confluent/client-manager.js";
|
|
9
|
+
export interface DirectClientManagerConfig extends BaseClientManagerConfig {
|
|
10
|
+
kafka: GlobalConfig;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Direct API-key client manager. Adds a native Kafka client (admin, producer, consumer)
|
|
14
|
+
* authenticated via SASL/PLAIN on top of the REST clients in {@link BaseClientManager}.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DirectClientManager extends BaseClientManager implements ClientManager {
|
|
17
|
+
private readonly kafkaConfig;
|
|
18
|
+
private readonly kafkaClient;
|
|
19
|
+
private readonly adminClient;
|
|
20
|
+
private readonly producer;
|
|
21
|
+
constructor(config: DirectClientManagerConfig);
|
|
22
|
+
/** @inheritdoc */
|
|
23
|
+
getConsumer(sessionId?: string): Promise<KafkaJS.Consumer>;
|
|
24
|
+
/** @inheritdoc */
|
|
25
|
+
getKafkaClient(): KafkaJS.Kafka;
|
|
26
|
+
/** @inheritdoc */
|
|
27
|
+
getAdminClient(): Promise<KafkaJS.Admin>;
|
|
28
|
+
/** @inheritdoc */
|
|
29
|
+
getProducer(): Promise<KafkaJS.Producer>;
|
|
30
|
+
/** @inheritdoc */
|
|
31
|
+
getKafkaAdminClient(_clusterId?: string, _envId?: string): Promise<KafkaJS.Admin>;
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
getKafkaProducer(_clusterId?: string, _envId?: string): Promise<KafkaJS.Producer>;
|
|
34
|
+
/** @inheritdoc */
|
|
35
|
+
buildKafkaConsumer(_clusterId?: string, _envId?: string, groupId?: string): Promise<KafkaJS.Consumer>;
|
|
36
|
+
/** @inheritdoc */
|
|
37
|
+
disconnect(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Constructs a {@link DirectClientManager} from a single direct connection config.
|
|
41
|
+
*/
|
|
42
|
+
export declare function constructDirectClientManager(conn: DirectConnectionConfig): DirectClientManager;
|
|
43
|
+
//# sourceMappingURL=direct-client-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-client-manager.d.ts","sourceRoot":"","sources":["../../src/confluent/direct-client-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAItE,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACxE,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,mBACX,SAAQ,iBACR,YAAW,aAAa;IAExB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAE3C,MAAM,EAAE,yBAAyB;IAkC7C,kBAAkB;IACZ,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAkBhE,kBAAkB;IAClB,cAAc,IAAI,OAAO,CAAC,KAAK;IAI/B,kBAAkB;IACZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAI9C,kBAAkB;IACZ,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAI9C,kBAAkB;IACZ,mBAAmB,CACvB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;IAIzB,kBAAkB;IACZ,gBAAgB,CACpB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAI5B,kBAAkB;IACZ,kBAAkB,CACtB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;IAI5B,kBAAkB;IACZ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAKlC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,sBAAsB,GAC3B,mBAAmB,CAqDrB"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Direct (api-key) client manager — adds a native Kafka client to the
|
|
3
|
+
* REST/Schema-Registry surfaces inherited from {@link BaseClientManager}.
|
|
4
|
+
*/
|
|
5
|
+
import { KafkaJS } from "@confluentinc/kafka-javascript";
|
|
6
|
+
import { CONFLUENT_CLOUD_DEFAULT_ENDPOINT, } from "../config/models.js";
|
|
7
|
+
import { BaseClientManager, } from "../confluent/base-client-manager.js";
|
|
8
|
+
import { AsyncLazy, Lazy } from "../lazy.js";
|
|
9
|
+
import { kafkaLogger, logger } from "../logger.js";
|
|
10
|
+
/**
|
|
11
|
+
* Direct API-key client manager. Adds a native Kafka client (admin, producer, consumer)
|
|
12
|
+
* authenticated via SASL/PLAIN on top of the REST clients in {@link BaseClientManager}.
|
|
13
|
+
*/
|
|
14
|
+
export class DirectClientManager extends BaseClientManager {
|
|
15
|
+
kafkaConfig;
|
|
16
|
+
kafkaClient;
|
|
17
|
+
adminClient;
|
|
18
|
+
producer;
|
|
19
|
+
constructor(config) {
|
|
20
|
+
super(config);
|
|
21
|
+
this.kafkaConfig = config.kafka;
|
|
22
|
+
this.kafkaClient = new Lazy(() => new KafkaJS.Kafka({
|
|
23
|
+
...this.kafkaConfig,
|
|
24
|
+
kafkaJS: {
|
|
25
|
+
logger: kafkaLogger,
|
|
26
|
+
// we need to do this since typescript will complain that we are missing configs like `brokers` even though we are passing them in kafkaConfig above
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
},
|
|
29
|
+
}));
|
|
30
|
+
this.adminClient = new AsyncLazy(async () => {
|
|
31
|
+
logger.info("Connecting Kafka Admin");
|
|
32
|
+
const admin = this.kafkaClient.get().admin();
|
|
33
|
+
await admin.connect();
|
|
34
|
+
return admin;
|
|
35
|
+
}, (admin) => admin.disconnect());
|
|
36
|
+
this.producer = new AsyncLazy(async () => {
|
|
37
|
+
logger.info("Connecting Kafka Producer");
|
|
38
|
+
const producer = this.kafkaClient.get().producer();
|
|
39
|
+
await producer.connect();
|
|
40
|
+
return producer;
|
|
41
|
+
}, (producer) => producer.disconnect());
|
|
42
|
+
}
|
|
43
|
+
/** @inheritdoc */
|
|
44
|
+
async getConsumer(sessionId) {
|
|
45
|
+
// Build the config inline, merging with defaults
|
|
46
|
+
const baseGroupId = this.kafkaConfig["group.id"] || "mcp-confluent";
|
|
47
|
+
const groupId = sessionId ? `${baseGroupId}-${sessionId}` : baseGroupId;
|
|
48
|
+
const consumerConfig = {
|
|
49
|
+
// Spread all user-provided config
|
|
50
|
+
...this.kafkaConfig,
|
|
51
|
+
// Override with our logic
|
|
52
|
+
"group.id": groupId,
|
|
53
|
+
"auto.offset.reset": this.kafkaConfig["auto.offset.reset"] || "earliest",
|
|
54
|
+
"allow.auto.create.topics": this.kafkaConfig["allow.auto.create.topics"] || false,
|
|
55
|
+
"enable.auto.commit": this.kafkaConfig["enable.auto.commit"] || false,
|
|
56
|
+
};
|
|
57
|
+
return this.kafkaClient.get().consumer(consumerConfig);
|
|
58
|
+
}
|
|
59
|
+
/** @inheritdoc */
|
|
60
|
+
getKafkaClient() {
|
|
61
|
+
return this.kafkaClient.get();
|
|
62
|
+
}
|
|
63
|
+
/** @inheritdoc */
|
|
64
|
+
async getAdminClient() {
|
|
65
|
+
return this.adminClient.get();
|
|
66
|
+
}
|
|
67
|
+
/** @inheritdoc */
|
|
68
|
+
async getProducer() {
|
|
69
|
+
return this.producer.get();
|
|
70
|
+
}
|
|
71
|
+
/** @inheritdoc */
|
|
72
|
+
async getKafkaAdminClient(_clusterId, _envId) {
|
|
73
|
+
return this.getAdminClient();
|
|
74
|
+
}
|
|
75
|
+
/** @inheritdoc */
|
|
76
|
+
async getKafkaProducer(_clusterId, _envId) {
|
|
77
|
+
return this.getProducer();
|
|
78
|
+
}
|
|
79
|
+
/** @inheritdoc */
|
|
80
|
+
async buildKafkaConsumer(_clusterId, _envId, groupId) {
|
|
81
|
+
return this.getConsumer(groupId);
|
|
82
|
+
}
|
|
83
|
+
/** @inheritdoc */
|
|
84
|
+
async disconnect() {
|
|
85
|
+
await this.adminClient.close();
|
|
86
|
+
await this.producer.close();
|
|
87
|
+
this.kafkaClient.close();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Constructs a {@link DirectClientManager} from a single direct connection config.
|
|
92
|
+
*/
|
|
93
|
+
export function constructDirectClientManager(conn) {
|
|
94
|
+
const kafkaClientConfig = {
|
|
95
|
+
"client.id": "mcp-confluent",
|
|
96
|
+
...(conn.kafka?.bootstrap_servers && {
|
|
97
|
+
"bootstrap.servers": conn.kafka.bootstrap_servers,
|
|
98
|
+
}),
|
|
99
|
+
...(conn.kafka?.auth
|
|
100
|
+
? {
|
|
101
|
+
"security.protocol": "sasl_ssl",
|
|
102
|
+
"sasl.mechanisms": "PLAIN",
|
|
103
|
+
"sasl.username": conn.kafka.auth.key,
|
|
104
|
+
"sasl.password": conn.kafka.auth.secret,
|
|
105
|
+
}
|
|
106
|
+
: {}),
|
|
107
|
+
...conn.kafka?.extra_properties,
|
|
108
|
+
};
|
|
109
|
+
return new DirectClientManager({
|
|
110
|
+
kafka: kafkaClientConfig,
|
|
111
|
+
endpoints: {
|
|
112
|
+
cloud: conn.confluent_cloud?.endpoint ?? CONFLUENT_CLOUD_DEFAULT_ENDPOINT,
|
|
113
|
+
flink: conn.flink?.endpoint,
|
|
114
|
+
schemaRegistry: conn.schema_registry?.endpoint,
|
|
115
|
+
kafka: conn.kafka?.rest_endpoint,
|
|
116
|
+
telemetry: conn.telemetry?.endpoint,
|
|
117
|
+
},
|
|
118
|
+
auth: {
|
|
119
|
+
cloud: {
|
|
120
|
+
apiKey: conn.confluent_cloud?.auth.key,
|
|
121
|
+
apiSecret: conn.confluent_cloud?.auth.secret,
|
|
122
|
+
},
|
|
123
|
+
tableflow: {
|
|
124
|
+
apiKey: conn.tableflow?.auth.key,
|
|
125
|
+
apiSecret: conn.tableflow?.auth.secret,
|
|
126
|
+
},
|
|
127
|
+
flink: {
|
|
128
|
+
apiKey: conn.flink?.auth.key,
|
|
129
|
+
apiSecret: conn.flink?.auth.secret,
|
|
130
|
+
},
|
|
131
|
+
schemaRegistry: {
|
|
132
|
+
apiKey: conn.schema_registry?.auth?.key,
|
|
133
|
+
apiSecret: conn.schema_registry?.auth?.secret,
|
|
134
|
+
},
|
|
135
|
+
kafka: {
|
|
136
|
+
apiKey: conn.kafka?.auth?.key,
|
|
137
|
+
apiSecret: conn.kafka?.auth?.secret,
|
|
138
|
+
},
|
|
139
|
+
telemetry: {
|
|
140
|
+
apiKey: conn.telemetry?.auth.key,
|
|
141
|
+
apiSecret: conn.telemetry?.auth.secret,
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=direct-client-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-client-manager.js","sourceRoot":"","sources":["../../src/confluent/direct-client-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,46 @@
|
|
|
1
1
|
import { Middleware } from "openapi-fetch";
|
|
2
|
+
/**
|
|
3
|
+
* Thrown by the bearer middleware when the token getter returns undefined —
|
|
4
|
+
* typically because OAuth bootstrap has not completed (or has been cleared by
|
|
5
|
+
* shutdown) at the moment a request is about to be sent. Surfaces a clear
|
|
6
|
+
* message for callers; tool handlers can catch it explicitly to return
|
|
7
|
+
* `{ isError: true }` instead of letting it propagate as a protocol-level
|
|
8
|
+
* error from the MCP transport.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BearerTokenUnavailableError extends Error {
|
|
11
|
+
constructor(message: string);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Build a {@link Middleware} that attaches `Authorization: Bearer <token>`
|
|
15
|
+
* read from `getToken()` and sets a `User-Agent` header containing this
|
|
16
|
+
* package's version. The closure is supplied by the caller; this middleware
|
|
17
|
+
* has no knowledge of where the token comes from or when it expires. Throws
|
|
18
|
+
* {@link BearerTokenUnavailableError} when `getToken` returns `undefined`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const createBearerMiddleware: (getToken: () => string | undefined) => Middleware;
|
|
2
21
|
export interface ConfluentEndpoints {
|
|
3
22
|
cloud?: string;
|
|
4
|
-
tableflow?: string;
|
|
5
23
|
flink?: string;
|
|
6
24
|
schemaRegistry?: string;
|
|
7
25
|
kafka?: string;
|
|
8
26
|
telemetry?: string;
|
|
9
27
|
}
|
|
10
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Discriminated union over the two authentication shapes the middleware
|
|
30
|
+
* understands. The `api_key` variant's `type` field is optional so existing
|
|
31
|
+
* call sites that pass `{ apiKey, apiSecret }` keep working.
|
|
32
|
+
*/
|
|
33
|
+
export type ConfluentAuth = {
|
|
34
|
+
type?: "api_key";
|
|
11
35
|
apiKey?: string;
|
|
12
36
|
apiSecret?: string;
|
|
13
|
-
}
|
|
37
|
+
} | {
|
|
38
|
+
type: "oauth";
|
|
39
|
+
getToken: () => string | undefined;
|
|
40
|
+
};
|
|
14
41
|
/**
|
|
15
|
-
* Creates a middleware that
|
|
42
|
+
* Creates a middleware that attaches an Authorization header. Dispatches on
|
|
43
|
+
* the `type` discriminator: `oauth` → bearer; `api_key` (or unset) → Basic.
|
|
16
44
|
*/
|
|
17
45
|
export declare const createAuthMiddleware: (auth: ConfluentAuth) => Middleware;
|
|
18
46
|
//# sourceMappingURL=middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C;;;;;;;GAOG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,MAAM,GAAG,SAAS,KACjC,UAYD,CAAC;AAEH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,aAAa,KAAG,UAK1D,CAAC"}
|
|
@@ -1,9 +1,53 @@
|
|
|
1
1
|
import { logger } from "../logger.js";
|
|
2
2
|
import pkg from "../../package.json" with { type: "json" };
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Thrown by the bearer middleware when the token getter returns undefined —
|
|
5
|
+
* typically because OAuth bootstrap has not completed (or has been cleared by
|
|
6
|
+
* shutdown) at the moment a request is about to be sent. Surfaces a clear
|
|
7
|
+
* message for callers; tool handlers can catch it explicitly to return
|
|
8
|
+
* `{ isError: true }` instead of letting it propagate as a protocol-level
|
|
9
|
+
* error from the MCP transport.
|
|
5
10
|
*/
|
|
6
|
-
export
|
|
11
|
+
export class BearerTokenUnavailableError extends Error {
|
|
12
|
+
constructor(message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "BearerTokenUnavailableError";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Build a {@link Middleware} that attaches `Authorization: Bearer <token>`
|
|
19
|
+
* read from `getToken()` and sets a `User-Agent` header containing this
|
|
20
|
+
* package's version. The closure is supplied by the caller; this middleware
|
|
21
|
+
* has no knowledge of where the token comes from or when it expires. Throws
|
|
22
|
+
* {@link BearerTokenUnavailableError} when `getToken` returns `undefined`.
|
|
23
|
+
*/
|
|
24
|
+
export const createBearerMiddleware = (getToken) => ({
|
|
25
|
+
async onRequest({ request }) {
|
|
26
|
+
const token = getToken();
|
|
27
|
+
if (!token) {
|
|
28
|
+
throw new BearerTokenUnavailableError("OAuth token is not currently available.");
|
|
29
|
+
}
|
|
30
|
+
request.headers.set("Authorization", `Bearer ${token}`);
|
|
31
|
+
request.headers.set("User-Agent", `mcp-confluent-local/${pkg.version}`);
|
|
32
|
+
return request;
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Creates a middleware that attaches an Authorization header. Dispatches on
|
|
37
|
+
* the `type` discriminator: `oauth` → bearer; `api_key` (or unset) → Basic.
|
|
38
|
+
*/
|
|
39
|
+
export const createAuthMiddleware = (auth) => {
|
|
40
|
+
if (auth.type === "oauth") {
|
|
41
|
+
return createBearerMiddleware(auth.getToken);
|
|
42
|
+
}
|
|
43
|
+
return createApiKeyMiddleware(auth);
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Original Basic-auth middleware, unchanged from before the discriminated
|
|
47
|
+
* union was introduced. Extracted to a named factory so {@link createAuthMiddleware}
|
|
48
|
+
* can dispatch to it without inlining its body.
|
|
49
|
+
*/
|
|
50
|
+
const createApiKeyMiddleware = (auth) => ({
|
|
7
51
|
async onRequest({ request }) {
|
|
8
52
|
logger.debug({ request }, "Processing request");
|
|
9
53
|
if (auth.apiKey && auth.apiSecret) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,OAAO,GAAG,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAkC,EACtB,EAAE,CAAC,CAAC;IAChB,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,2BAA2B,CACnC,yCAAyC,CAC1C,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC;AAmBH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAmB,EAAc,EAAE;IACtE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,CAAC,IAG/B,EAAc,EAAE,CAAC,CAAC;IACjB,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC9E,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrD,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAC3D,wBAAwB,OAAO,oCAAoC,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
+
import { KafkaJS } from "@confluentinc/kafka-javascript";
|
|
2
|
+
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
|
|
3
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
1
4
|
import { Analytics } from "@segment/analytics-node";
|
|
2
|
-
import
|
|
5
|
+
import * as dotenv from "dotenv";
|
|
6
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
7
|
+
import { createServer as httpCreateServer } from "node:http";
|
|
3
8
|
import { arch, homedir, platform, release } from "node:os";
|
|
4
9
|
export declare const buildConfig: {
|
|
5
10
|
TELEMETRY_WRITE_KEY: string;
|
|
6
11
|
};
|
|
12
|
+
export declare const dotenvLib: {
|
|
13
|
+
config: typeof dotenv.config;
|
|
14
|
+
};
|
|
7
15
|
export declare const fs: {
|
|
16
|
+
existsSync: typeof existsSync;
|
|
8
17
|
readFileSync: typeof readFileSync;
|
|
9
18
|
writeFileSync: typeof writeFileSync;
|
|
19
|
+
appendFileSync: typeof appendFileSync;
|
|
10
20
|
mkdirSync: typeof mkdirSync;
|
|
11
21
|
};
|
|
12
22
|
export declare const os: {
|
|
@@ -17,47 +27,30 @@ export declare const os: {
|
|
|
17
27
|
};
|
|
18
28
|
export declare const path: {
|
|
19
29
|
join: (...paths: string[]) => string;
|
|
30
|
+
resolve: (...paths: string[]) => string;
|
|
31
|
+
dirname: (path: string) => string;
|
|
32
|
+
basename: (path: string, suffix?: string) => string;
|
|
20
33
|
};
|
|
21
34
|
export declare const segment: {
|
|
22
35
|
Analytics: typeof Analytics;
|
|
23
36
|
};
|
|
24
|
-
export declare const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
CONFLUENT_CLOUD_API_SECRET?: string | undefined;
|
|
43
|
-
SCHEMA_REGISTRY_API_KEY?: string | undefined;
|
|
44
|
-
SCHEMA_REGISTRY_API_SECRET?: string | undefined;
|
|
45
|
-
TABLEFLOW_API_KEY?: string | undefined;
|
|
46
|
-
TABLEFLOW_API_SECRET?: string | undefined;
|
|
47
|
-
FLINK_ENV_ID?: string | undefined;
|
|
48
|
-
FLINK_ORG_ID?: string | undefined;
|
|
49
|
-
FLINK_REST_ENDPOINT?: string | undefined;
|
|
50
|
-
FLINK_COMPUTE_POOL_ID?: string | undefined;
|
|
51
|
-
FLINK_ENV_NAME?: string | undefined;
|
|
52
|
-
FLINK_DATABASE_NAME?: string | undefined;
|
|
53
|
-
KAFKA_CLUSTER_ID?: string | undefined;
|
|
54
|
-
KAFKA_ENV_ID?: string | undefined;
|
|
55
|
-
CONFLUENT_CLOUD_REST_ENDPOINT?: string | undefined;
|
|
56
|
-
SCHEMA_REGISTRY_ENDPOINT?: string | undefined;
|
|
57
|
-
KAFKA_REST_ENDPOINT?: string | undefined;
|
|
58
|
-
TELEMETRY_ENDPOINT?: string | undefined;
|
|
59
|
-
TELEMETRY_API_KEY?: string | undefined;
|
|
60
|
-
TELEMETRY_API_SECRET?: string | undefined;
|
|
61
|
-
};
|
|
37
|
+
export declare const nodeFetch: {
|
|
38
|
+
fetch: typeof fetch;
|
|
39
|
+
};
|
|
40
|
+
export declare const nodeCrypto: {
|
|
41
|
+
randomBytes: (size: number) => Buffer;
|
|
42
|
+
};
|
|
43
|
+
export declare const nodeHttp: {
|
|
44
|
+
createServer: typeof httpCreateServer;
|
|
45
|
+
};
|
|
46
|
+
export declare const nodeOpen: {
|
|
47
|
+
open: (target: string) => Promise<void>;
|
|
48
|
+
};
|
|
49
|
+
export declare const sdkTransports: {
|
|
50
|
+
StreamableHTTPServerTransport: typeof StreamableHTTPServerTransport;
|
|
51
|
+
SSEServerTransport: typeof SSEServerTransport;
|
|
52
|
+
};
|
|
53
|
+
export declare const kafkaDeps: {
|
|
54
|
+
Kafka: typeof KafkaJS.Kafka;
|
|
62
55
|
};
|
|
63
56
|
//# sourceMappingURL=node-deps.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-deps.d.ts","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-deps.d.ts","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAG3D,eAAO,MAAM,WAAW;;CAA0B,CAAC;AACnD,eAAO,MAAM,SAAS;;CAA4B,CAAC;AACnD,eAAO,MAAM,EAAE;;;;;;CAMd,CAAC;AACF,eAAO,MAAM,EAAE;;;;;CAAuC,CAAC;AACvD,eAAO,MAAM,IAAI;;;;;CAAuC,CAAC;AACzD,eAAO,MAAM,OAAO;;CAAgB,CAAC;AACrC,eAAO,MAAM,SAAS;;CAA8B,CAAC;AAIrD,eAAO,MAAM,UAAU;wBACD,MAAM,KAAG,MAAM;CACpC,CAAC;AACF,eAAO,MAAM,QAAQ;;CAAqC,CAAC;AAG3D,eAAO,MAAM,QAAQ;mBACE,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;CAI5C,CAAC;AACF,eAAO,MAAM,aAAa;;;CAGzB,CAAC;AAGF,eAAO,MAAM,SAAS;;CAA2B,CAAC"}
|
|
@@ -1,14 +1,49 @@
|
|
|
1
|
-
// Wrappers for easier stubbing in tests
|
|
1
|
+
// Wrappers for easier stubbing in tests — ESM live bindings can't be stubbed at runtime,
|
|
2
|
+
// but property access on these namespace objects can be (via `vi.spyOn`).
|
|
3
|
+
import { KafkaJS } from "@confluentinc/kafka-javascript";
|
|
4
|
+
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
|
|
5
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
2
6
|
import { Analytics } from "@segment/analytics-node";
|
|
3
7
|
import { TELEMETRY_WRITE_KEY } from "../build-config.js";
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
8
|
+
import * as dotenv from "dotenv";
|
|
9
|
+
import { randomBytes } from "node:crypto";
|
|
10
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
11
|
+
import { createServer as httpCreateServer } from "node:http";
|
|
6
12
|
import { arch, homedir, platform, release } from "node:os";
|
|
7
|
-
import { join } from "node:path";
|
|
13
|
+
import { basename, dirname, join, resolve } from "node:path";
|
|
8
14
|
export const buildConfig = { TELEMETRY_WRITE_KEY };
|
|
9
|
-
export const
|
|
15
|
+
export const dotenvLib = { config: dotenv.config };
|
|
16
|
+
export const fs = {
|
|
17
|
+
existsSync,
|
|
18
|
+
readFileSync,
|
|
19
|
+
writeFileSync,
|
|
20
|
+
appendFileSync,
|
|
21
|
+
mkdirSync,
|
|
22
|
+
};
|
|
10
23
|
export const os = { homedir, platform, release, arch };
|
|
11
|
-
export const path = { join };
|
|
24
|
+
export const path = { join, resolve, dirname, basename };
|
|
12
25
|
export const segment = { Analytics };
|
|
13
|
-
export const
|
|
26
|
+
export const nodeFetch = { fetch: globalThis.fetch };
|
|
27
|
+
// Wrapped as a single-signature arrow so spies don't have to disambiguate
|
|
28
|
+
// between the sync and callback overloads of the underlying `node:crypto`
|
|
29
|
+
// `randomBytes`. The codebase only uses the sync form.
|
|
30
|
+
export const nodeCrypto = {
|
|
31
|
+
randomBytes: (size) => randomBytes(size),
|
|
32
|
+
};
|
|
33
|
+
export const nodeHttp = { createServer: httpCreateServer };
|
|
34
|
+
// `open` is loaded lazily so non-OAuth runs don't pay the import cost (it
|
|
35
|
+
// pulls in is-wsl, default-browser, etc.).
|
|
36
|
+
export const nodeOpen = {
|
|
37
|
+
open: async (target) => {
|
|
38
|
+
const { default: open } = await import("open");
|
|
39
|
+
await open(target);
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export const sdkTransports = {
|
|
43
|
+
StreamableHTTPServerTransport,
|
|
44
|
+
SSEServerTransport,
|
|
45
|
+
};
|
|
46
|
+
// KafkaJS constructor wrapped so tests can spy on `kafkaDeps.Kafka` and return
|
|
47
|
+
// a mock Kafka instance without needing vi.mock on the external module.
|
|
48
|
+
export const kafkaDeps = { Kafka: KafkaJS.Kafka };
|
|
14
49
|
//# sourceMappingURL=node-deps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-deps.js","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"node-deps.js","sourceRoot":"","sources":["../../src/confluent/node-deps.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,0EAA0E;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,mBAAmB,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,UAAU;IACV,YAAY;IACZ,aAAa;IACb,cAAc;IACd,SAAS;CACV,CAAC;AACF,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvD,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;AACrD,0EAA0E;AAC1E,0EAA0E;AAC1E,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;CACzD,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAC3D,0EAA0E;AAC1E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,KAAK,EAAE,MAAc,EAAiB,EAAE;QAC5C,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;CACF,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,6BAA6B;IAC7B,kBAAkB;CACnB,CAAC;AACF,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC"}
|