@confluentinc/mcp-confluent 1.0.1
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/LICENSE +21 -0
- package/README.md +302 -0
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +53 -0
- package/dist/cli.js.map +1 -0
- package/dist/confluent/client-manager.d.ts +93 -0
- package/dist/confluent/client-manager.d.ts.map +1 -0
- package/dist/confluent/client-manager.js +148 -0
- package/dist/confluent/client-manager.js.map +1 -0
- package/dist/confluent/helpers.d.ts +11 -0
- package/dist/confluent/helpers.d.ts.map +1 -0
- package/dist/confluent/helpers.js +17 -0
- package/dist/confluent/helpers.js.map +1 -0
- package/dist/confluent/middleware.d.ts +15 -0
- package/dist/confluent/middleware.d.ts.map +1 -0
- package/dist/confluent/middleware.js +43 -0
- package/dist/confluent/middleware.js.map +1 -0
- package/dist/confluent/schema.d.ts +4 -0
- package/dist/confluent/schema.d.ts.map +1 -0
- package/dist/confluent/schema.js +4 -0
- package/dist/confluent/schema.js.map +1 -0
- package/dist/confluent/tools/base-tools.d.ts +19 -0
- package/dist/confluent/tools/base-tools.d.ts.map +1 -0
- package/dist/confluent/tools/base-tools.js +16 -0
- package/dist/confluent/tools/base-tools.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js +47 -0
- package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js +47 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +47 -0
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js +52 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +52 -0
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag copy.js +42 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag copy.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js +56 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag.js +42 -0
- package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/list-.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/list-.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/list-.js +35 -0
- package/dist/confluent/tools/handlers/catalog/list-.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/list-tags.js +35 -0
- package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -0
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +8 -0
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +56 -0
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -0
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +182 -0
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +147 -0
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts +8 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js +84 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js +95 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +59 -0
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +56 -0
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +62 -0
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts +8 -0
- package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js +52 -0
- package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts +8 -0
- package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-topic-tags.js +52 -0
- package/dist/confluent/tools/handlers/entity/create-topic-tags.js.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts +8 -0
- package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-topicc-tags.js +52 -0
- package/dist/confluent/tools/handlers/entity/create-topicc-tags.js.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts +8 -0
- package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/entity/create-topics-tags.js +52 -0
- package/dist/confluent/tools/handlers/entity/create-topics-tags.js.map +1 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts +8 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js +39 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js.map +1 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js +39 -0
- package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +213 -0
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js +130 -0
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js +84 -0
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +100 -0
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +63 -0
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +80 -0
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +83 -0
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts +14 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js +61 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +14 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +61 -0
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts +8 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js +28 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +28 -0
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +23 -0
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +22 -0
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +37 -0
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +52 -0
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts +8 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js +45 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js.map +1 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +53 -0
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +45 -0
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts +8 -0
- package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js +39 -0
- package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js.map +1 -0
- package/dist/confluent/tools/tool-factory.d.ts +9 -0
- package/dist/confluent/tools/tool-factory.d.ts.map +1 -0
- package/dist/confluent/tools/tool-factory.js +70 -0
- package/dist/confluent/tools/tool-factory.js.map +1 -0
- package/dist/confluent/tools/tool-name.d.ts +27 -0
- package/dist/confluent/tools/tool-name.d.ts.map +1 -0
- package/dist/confluent/tools/tool-name.js +28 -0
- package/dist/confluent/tools/tool-name.js.map +1 -0
- package/dist/env-schema.d.ts +67 -0
- package/dist/env-schema.d.ts.map +1 -0
- package/dist/env-schema.js +111 -0
- package/dist/env-schema.js.map +1 -0
- package/dist/env.d.ts +36 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +40 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +1 -0
- package/dist/lazy.d.ts +65 -0
- package/dist/lazy.d.ts.map +1 -0
- package/dist/lazy.js +106 -0
- package/dist/lazy.js.map +1 -0
- package/dist/print-md-schema.d.ts +2 -0
- package/dist/print-md-schema.d.ts.map +1 -0
- package/dist/print-md-schema.js +96 -0
- package/dist/print-md-schema.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getEnsuredParam } from "../../../../confluent/helpers.js";
|
|
2
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
3
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
4
|
+
import env from "../../../../env.js";
|
|
5
|
+
import { wrapAsPathBasedClient } from "openapi-fetch";
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
const alterTopicConfigArguments = z.object({
|
|
8
|
+
baseUrl: z
|
|
9
|
+
.string()
|
|
10
|
+
.describe("The base URL of the Confluent Cloud Kafka REST API.")
|
|
11
|
+
.url()
|
|
12
|
+
.default(env.KAFKA_REST_ENDPOINT ?? "")
|
|
13
|
+
.optional(),
|
|
14
|
+
clusterId: z
|
|
15
|
+
.string()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe("The unique identifier for the Kafka cluster."),
|
|
18
|
+
topicName: z.string().describe("Name of the topic to alter").nonempty(),
|
|
19
|
+
topicConfigs: z
|
|
20
|
+
.array(z.object({
|
|
21
|
+
name: z.string().describe("Configuration parameter name").nonempty(),
|
|
22
|
+
value: z.string().describe("Configuration parameter value"),
|
|
23
|
+
operation: z.enum(["SET", "DELETE"]).describe("Operation type"),
|
|
24
|
+
}))
|
|
25
|
+
.nonempty(),
|
|
26
|
+
validateOnly: z.boolean().default(false),
|
|
27
|
+
});
|
|
28
|
+
/**
|
|
29
|
+
* Handler for altering Kafka topic configurations through Confluent Cloud REST API.
|
|
30
|
+
* This implementation serves as a workaround since the native Kafka
|
|
31
|
+
* admin client API does not provide direct methods for altering topic configurations.
|
|
32
|
+
* Instead, we utilize Confluent's REST API endpoints to achieve this functionality.
|
|
33
|
+
*/
|
|
34
|
+
export class AlterTopicConfigHandler extends BaseToolHandler {
|
|
35
|
+
async handle(clientManager, toolArguments) {
|
|
36
|
+
const { clusterId, topicName, topicConfigs, validateOnly, baseUrl } = alterTopicConfigArguments.parse(toolArguments);
|
|
37
|
+
const kafka_cluster_id = getEnsuredParam("KAFKA_CLUSTER_ID", "Kafka Cluster ID is required", clusterId);
|
|
38
|
+
if (baseUrl !== undefined && baseUrl !== "") {
|
|
39
|
+
clientManager.setConfluentCloudKafkaRestEndpoint(baseUrl);
|
|
40
|
+
}
|
|
41
|
+
const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudKafkaRestClient());
|
|
42
|
+
const { data: response, error } = await pathBasedClient[`/kafka/v3/clusters/${kafka_cluster_id}/topics/${topicName}/configs:alter`].POST({
|
|
43
|
+
body: {
|
|
44
|
+
data: topicConfigs,
|
|
45
|
+
validate_only: validateOnly,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
if (error) {
|
|
49
|
+
return this.createResponse(`Failed to alter topic config: ${JSON.stringify(error)}`, true);
|
|
50
|
+
}
|
|
51
|
+
return this.createResponse(`Successfully altered topic config: ${JSON.stringify(response)}`);
|
|
52
|
+
}
|
|
53
|
+
getToolConfig() {
|
|
54
|
+
return {
|
|
55
|
+
name: ToolName.ALTER_TOPIC_CONFIG,
|
|
56
|
+
description: "Alter topic configuration in Confluent Cloud.",
|
|
57
|
+
inputSchema: alterTopicConfigArguments.shape,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=alter-topic-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alter-topic-config.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/alter-topic-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,qDAAqD,CAAC;SAC/D,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;SACtC,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,QAAQ,EAAE;IACvE,YAAY,EAAE,CAAC;SACZ,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,QAAQ,EAAE;QACpE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC3D,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAChE,CAAC,CACH;SACA,QAAQ,EAAE;IACb,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACzC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAC1D,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,GACjE,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,eAAe,CACtC,kBAAkB,EAClB,8BAA8B,EAC9B,SAAS,CACV,CAAC;QAEF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,gCAAgC,EAAE,CACjD,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CACrD,sBAAsB,gBAAgB,WAAW,SAAS,gBAAgB,CAC3E,CAAC,IAAI,CAAC;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,YAAY;gBAClB,aAAa,EAAE,YAAY;aAC5B;SACF,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,iCAAiC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EACxD,IAAI,CACL,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CACxB,sCAAsC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CACjE,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,kBAAkB;YACjC,WAAW,EAAE,+CAA+C;YAC5D,WAAW,EAAE,yBAAyB,CAAC,KAAK;SAC7C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class CreateTopicsHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=create-topics-handler%20copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-topics-handler copy.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/create-topics-handler copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAS5C,qBAAa,mBAAoB,SAAQ,eAAe;IAChD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAgB1B,aAAa,IAAI,UAAU;CAO5B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
const createTopicArgs = z.object({
|
|
5
|
+
topicNames: z
|
|
6
|
+
.array(z.string().describe("Names of kafka topics to create"))
|
|
7
|
+
.nonempty(),
|
|
8
|
+
});
|
|
9
|
+
export class CreateTopicsHandler extends BaseToolHandler {
|
|
10
|
+
async handle(clientManager, toolArguments) {
|
|
11
|
+
const { topicNames } = createTopicArgs.parse(toolArguments);
|
|
12
|
+
const success = await (await clientManager.getAdminClient()).createTopics({
|
|
13
|
+
topics: topicNames.map((name) => ({ topic: name })),
|
|
14
|
+
});
|
|
15
|
+
if (!success) {
|
|
16
|
+
return this.createResponse(`Failed to create Kafka topics: ${topicNames.join(",")}`, true);
|
|
17
|
+
}
|
|
18
|
+
return this.createResponse(`Created Kafka topics: ${topicNames.join(",")}`);
|
|
19
|
+
}
|
|
20
|
+
getToolConfig() {
|
|
21
|
+
return {
|
|
22
|
+
name: ToolName.CREATE_TOPICS,
|
|
23
|
+
description: "Create new topic(s) in the Kafka cluster.",
|
|
24
|
+
inputSchema: createTopicArgs.shape,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=create-topics-handler%20copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-topics-handler copy.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/create-topics-handler copy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;SAC7D,QAAQ,EAAE;CACd,CAAC,CAAC;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,aAAa,CAAC,cAAc,EAAE,CACrC,CAAC,YAAY,CAAC;YACb,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,cAAc,CACxB,kCAAkC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACxD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,WAAW,EAAE,2CAA2C;YACxD,WAAW,EAAE,eAAe,CAAC,KAAK;SACnC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class CreateTopicsHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=create-topics-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-topics-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/create-topics-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAS5C,qBAAa,mBAAoB,SAAQ,eAAe;IAChD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAgB1B,aAAa,IAAI,UAAU;CAO5B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
const createTopicArgs = z.object({
|
|
5
|
+
topicNames: z
|
|
6
|
+
.array(z.string().describe("Names of kafka topics to create"))
|
|
7
|
+
.nonempty(),
|
|
8
|
+
});
|
|
9
|
+
export class CreateTopicsHandler extends BaseToolHandler {
|
|
10
|
+
async handle(clientManager, toolArguments) {
|
|
11
|
+
const { topicNames } = createTopicArgs.parse(toolArguments);
|
|
12
|
+
const success = await (await clientManager.getAdminClient()).createTopics({
|
|
13
|
+
topics: topicNames.map((name) => ({ topic: name })),
|
|
14
|
+
});
|
|
15
|
+
if (!success) {
|
|
16
|
+
return this.createResponse(`Failed to create Kafka topics: ${topicNames.join(",")}`, true);
|
|
17
|
+
}
|
|
18
|
+
return this.createResponse(`Created Kafka topics: ${topicNames.join(",")}`);
|
|
19
|
+
}
|
|
20
|
+
getToolConfig() {
|
|
21
|
+
return {
|
|
22
|
+
name: ToolName.CREATE_TOPICS,
|
|
23
|
+
description: "Create new topic(s) in the Kafka cluster.",
|
|
24
|
+
inputSchema: createTopicArgs.shape,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=create-topics-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-topics-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/create-topics-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;SAC7D,QAAQ,EAAE;CACd,CAAC,CAAC;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,aAAa,CAAC,cAAc,EAAE,CACrC,CAAC,YAAY,CAAC;YACb,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,cAAc,CACxB,kCAAkC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACxD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,WAAW,EAAE,2CAA2C;YACxD,WAAW,EAAE,eAAe,CAAC,KAAK;SACnC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class DeleteTopicsHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=delete-topics-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-topics-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/delete-topics-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAS5C,qBAAa,mBAAoB,SAAQ,eAAe;IAChD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAQ1B,aAAa,IAAI,UAAU;CAO5B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
const deleteKafkaTopicsArguments = z.object({
|
|
5
|
+
topicNames: z
|
|
6
|
+
.array(z.string().describe("Names of kafka topics to delete"))
|
|
7
|
+
.nonempty(),
|
|
8
|
+
});
|
|
9
|
+
export class DeleteTopicsHandler extends BaseToolHandler {
|
|
10
|
+
async handle(clientManager, toolArguments) {
|
|
11
|
+
const { topicNames } = deleteKafkaTopicsArguments.parse(toolArguments);
|
|
12
|
+
await (await clientManager.getAdminClient()).deleteTopics({ topics: topicNames });
|
|
13
|
+
return this.createResponse(`Deleted Kafka topics: ${topicNames.join(",")}`);
|
|
14
|
+
}
|
|
15
|
+
getToolConfig() {
|
|
16
|
+
return {
|
|
17
|
+
name: ToolName.DELETE_TOPICS,
|
|
18
|
+
description: "Delete the topic with the given names.",
|
|
19
|
+
inputSchema: deleteKafkaTopicsArguments.shape,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=delete-topics-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-topics-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/delete-topics-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;SAC7D,QAAQ,EAAE;CACd,CAAC,CAAC;AACH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,UAAU,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACvE,MAAM,CACJ,MAAM,aAAa,CAAC,cAAc,EAAE,CACrC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,cAAc,CAAC,yBAAyB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa;YAC5B,WAAW,EAAE,wCAAwC;YACrD,WAAW,EAAE,0BAA0B,CAAC,KAAK;SAC9C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class ListTopicsHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=list-topics-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-topics-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-topics-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAQ5C,qBAAa,iBAAkB,SAAQ,eAAe;IAC9C,MAAM,CACV,aAAa,EAAE,aAAa,EAE5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAK1B,aAAa,IAAI,UAAU;CAO5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
const listTopicArgs = z.object({
|
|
5
|
+
// No arguments
|
|
6
|
+
});
|
|
7
|
+
export class ListTopicsHandler extends BaseToolHandler {
|
|
8
|
+
async handle(clientManager,
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10
|
+
toolArguments) {
|
|
11
|
+
const topics = await (await clientManager.getAdminClient()).listTopics();
|
|
12
|
+
return this.createResponse(`Kafka topics: ${topics.join(",")}`);
|
|
13
|
+
}
|
|
14
|
+
getToolConfig() {
|
|
15
|
+
return {
|
|
16
|
+
name: ToolName.LIST_TOPICS,
|
|
17
|
+
description: "List all topics in the Kafka cluster.",
|
|
18
|
+
inputSchema: listTopicArgs.shape,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=list-topics-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-topics-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/list-topics-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;AAC7B,eAAe;CAChB,CAAC,CAAC;AAEH,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD,KAAK,CAAC,MAAM,CACV,aAA4B;IAC5B,6DAA6D;IAC7D,aAAsC;QAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,WAAW;YAC1B,WAAW,EAAE,uCAAuC;YACpD,WAAW,EAAE,aAAa,CAAC,KAAK;SACjC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class ProduceKafkaMessageHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=produce-kafka-message-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produce-kafka-message-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/produce-kafka-message-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAc5C,qBAAa,0BAA2B,SAAQ,eAAe;IACvD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAkB1B,aAAa,IAAI,UAAU;CAO5B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
const produceKafkaMessageArguments = z.object({
|
|
5
|
+
topicName: z
|
|
6
|
+
.string()
|
|
7
|
+
.nonempty()
|
|
8
|
+
.describe("Name of the kafka topic to produce the message to"),
|
|
9
|
+
message: z
|
|
10
|
+
.string()
|
|
11
|
+
.nonempty()
|
|
12
|
+
.describe("The content of the message to produce"),
|
|
13
|
+
});
|
|
14
|
+
export class ProduceKafkaMessageHandler extends BaseToolHandler {
|
|
15
|
+
async handle(clientManager, toolArguments) {
|
|
16
|
+
const { topicName, message } = produceKafkaMessageArguments.parse(toolArguments);
|
|
17
|
+
const deliveryReport = await (await clientManager.getProducer()).send({ topic: topicName, messages: [{ value: message }] });
|
|
18
|
+
const formattedResponse = deliveryReport
|
|
19
|
+
.map((metadata) => {
|
|
20
|
+
if (metadata.errorCode !== 0) {
|
|
21
|
+
return `Error producing message to [Topic: ${metadata.topicName}, Partition: ${metadata.partition}, Offset: ${metadata.offset} with ErrorCode: ${metadata.errorCode}]`;
|
|
22
|
+
}
|
|
23
|
+
return `Message produced successfully to [Topic: ${metadata.topicName}, Partition: ${metadata.partition}, Offset: ${metadata.offset}]`;
|
|
24
|
+
})
|
|
25
|
+
.join("\n");
|
|
26
|
+
const isError = deliveryReport.some((metadata) => metadata.errorCode !== 0);
|
|
27
|
+
return this.createResponse(formattedResponse, isError);
|
|
28
|
+
}
|
|
29
|
+
getToolConfig() {
|
|
30
|
+
return {
|
|
31
|
+
name: ToolName.PRODUCE_MESSAGE,
|
|
32
|
+
description: `Produce records to a Kafka topic. For saving user messages/history they should be saved to a kafka topic named claude-conversations unless otherwise specified. If the topic does not exist, it will be created via the ${ToolName.CREATE_TOPICS} tool.`,
|
|
33
|
+
inputSchema: produceKafkaMessageArguments.shape,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=produce-kafka-message-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"produce-kafka-message-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/produce-kafka-message-handler.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uCAAuC,CAAC;CACrD,CAAC,CAAC;AACH,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC7D,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAC1B,4BAA4B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,cAAc,GAAqB,MAAM,CAC7C,MAAM,aAAa,CAAC,WAAW,EAAE,CAClC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,iBAAiB,GAAG,cAAc;aACrC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAChB,IAAI,QAAQ,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,sCAAsC,QAAQ,CAAC,SAAS,gBAAgB,QAAQ,CAAC,SAAS,aAAa,QAAQ,CAAC,MAAM,oBAAoB,QAAQ,CAAC,SAAS,GAAG,CAAC;YACzK,CAAC;YACD,OAAO,4CAA4C,QAAQ,CAAC,SAAS,gBAAgB,QAAQ,CAAC,SAAS,aAAa,QAAQ,CAAC,MAAM,GAAG,CAAC;QACzI,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,eAAe;YAC9B,WAAW,EAAE,2NAA2N,QAAQ,CAAC,aAAa,QAAQ;YACtQ,WAAW,EAAE,4BAA4B,CAAC,KAAK;SAChD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class ListSchemasHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=list-schemas-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-schemas-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/schema/list-schemas-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAyB5C,qBAAa,kBAAmB,SAAQ,eAAe;IAC/C,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAiC1B,aAAa,IAAI,UAAU;CAO5B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import env from "../../../../env.js";
|
|
4
|
+
import { wrapAsPathBasedClient } from "openapi-fetch";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
const listSchemasArguments = z.object({
|
|
7
|
+
baseUrl: z
|
|
8
|
+
.string()
|
|
9
|
+
.describe("The base URL of the Schema Registry REST API.")
|
|
10
|
+
.url()
|
|
11
|
+
.default(env.SCHEMA_REGISTRY_ENDPOINT ?? "")
|
|
12
|
+
.optional(),
|
|
13
|
+
latestOnly: z
|
|
14
|
+
.boolean()
|
|
15
|
+
.describe("If true, only return the latest version of each schema.")
|
|
16
|
+
.default(true)
|
|
17
|
+
.optional(),
|
|
18
|
+
subjectPrefix: z
|
|
19
|
+
.string()
|
|
20
|
+
.describe("The prefix of the subject to list schemas for.")
|
|
21
|
+
.optional(),
|
|
22
|
+
deleted: z.string().describe("List deleted schemas.").optional(),
|
|
23
|
+
});
|
|
24
|
+
export class ListSchemasHandler extends BaseToolHandler {
|
|
25
|
+
async handle(clientManager, toolArguments) {
|
|
26
|
+
const { baseUrl, latestOnly, subjectPrefix, deleted } = listSchemasArguments.parse(toolArguments);
|
|
27
|
+
if (baseUrl !== undefined && baseUrl !== "") {
|
|
28
|
+
clientManager.setConfluentCloudSchemaRegistryEndpoint(baseUrl);
|
|
29
|
+
}
|
|
30
|
+
const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudSchemaRegistryRestClient());
|
|
31
|
+
// First get all schemas
|
|
32
|
+
const { data: response, error: error } = await pathBasedClient["/schemas"].GET({
|
|
33
|
+
query: {
|
|
34
|
+
...(latestOnly ? { latestOnly: true } : {}),
|
|
35
|
+
...(subjectPrefix ? { subjectPrefix: subjectPrefix } : {}),
|
|
36
|
+
...(deleted ? { deleted: true } : {}),
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
if (error) {
|
|
40
|
+
return this.createResponse(`Failed to list schemas: ${JSON.stringify(error)}`, true);
|
|
41
|
+
}
|
|
42
|
+
return this.createResponse(`${JSON.stringify(response)}`);
|
|
43
|
+
}
|
|
44
|
+
getToolConfig() {
|
|
45
|
+
return {
|
|
46
|
+
name: ToolName.LIST_SCHEMAS,
|
|
47
|
+
description: "List all schemas in the Schema Registry.",
|
|
48
|
+
inputSchema: listSchemasArguments.shape,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=list-schemas-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-schemas-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/schema/list-schemas-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;SACzD,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;SAC3C,QAAQ,EAAE;IACb,UAAU,EAAE,CAAC;SACV,OAAO,EAAE;SACT,QAAQ,CAAC,yDAAyD,CAAC;SACnE,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,EAAE;IACb,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,gDAAgD,CAAC;SAC1D,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE;CACjE,CAAC,CAAC;AAEH,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACrD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,GACnD,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE5C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,yCAAyC,EAAE,CAC1D,CAAC;QAEF,wBAAwB;QACxB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAC5D,UAAU,CACX,CAAC,GAAG,CAAC;YACJ,KAAK,EAAE;gBACL,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtC;SACF,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,2BAA2B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAClD,IAAI,CACL,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,YAAY;YAC3B,WAAW,EAAE,0CAA0C;YACvD,WAAW,EAAE,oBAAoB,CAAC,KAAK;SACxC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class SearchTopicsByNameHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=search-topic-by-tag-handler%20copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-topic-by-tag-handler copy.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/search-topic-by-tag-handler copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAgB5C,qBAAa,yBAA0B,SAAQ,eAAe;IACtD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IA+B1B,aAAa,IAAI,UAAU;CAQ5B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import env from "../../../../env.js";
|
|
4
|
+
import { wrapAsPathBasedClient } from "openapi-fetch";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
const searchTopicsByNameArguments = z.object({
|
|
7
|
+
baseUrl: z
|
|
8
|
+
.string()
|
|
9
|
+
.describe("The base URL of the Schema Registry REST API.")
|
|
10
|
+
.url()
|
|
11
|
+
.default(env.SCHEMA_REGISTRY_ENDPOINT ?? "")
|
|
12
|
+
.optional(),
|
|
13
|
+
topicName: z.string().describe("The topic name to search for"),
|
|
14
|
+
});
|
|
15
|
+
export class SearchTopicsByNameHandler extends BaseToolHandler {
|
|
16
|
+
async handle(clientManager, toolArguments) {
|
|
17
|
+
const { topicName, baseUrl } = searchTopicsByNameArguments.parse(toolArguments);
|
|
18
|
+
if (baseUrl !== undefined && baseUrl !== "") {
|
|
19
|
+
clientManager.setConfluentCloudSchemaRegistryEndpoint(baseUrl);
|
|
20
|
+
}
|
|
21
|
+
const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudSchemaRegistryRestClient());
|
|
22
|
+
const { data: response, error } = await pathBasedClient["/catalog/v1/search/basic?types=kafka_topic&query={topicName}"].GET({
|
|
23
|
+
params: {
|
|
24
|
+
path: {
|
|
25
|
+
topicName: topicName,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
if (error) {
|
|
30
|
+
return this.createResponse(`Failed to search for topics by name: ${JSON.stringify(error)}`, true);
|
|
31
|
+
}
|
|
32
|
+
return this.createResponse(response?.entities
|
|
33
|
+
?.map((entity) => entity.attributes?.qualifiedName)
|
|
34
|
+
.filter(Boolean)
|
|
35
|
+
.join(", ") || "No matching topics found");
|
|
36
|
+
}
|
|
37
|
+
getToolConfig() {
|
|
38
|
+
return {
|
|
39
|
+
name: ToolName.SEARCH_TOPICS_BY_NAME,
|
|
40
|
+
description: "List all topics in the Kafka cluster matching the specified name.",
|
|
41
|
+
inputSchema: searchTopicsByNameArguments.shape,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=search-topic-by-tag-handler%20copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-topic-by-tag-handler copy.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/search-topic-by-tag-handler copy.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;SACzD,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;SAC3C,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAC1B,2BAA2B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,yCAAyC,EAAE,CAC1D,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CACrD,8DAA8D,CAC/D,CAAC,GAAG,CAAC;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,SAAS,EAAE,SAAS;iBACrB;aACF;SACF,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,wCAAwC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAC/D,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CACxB,QAAQ,EAAE,QAAQ;YAChB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;aAClD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAC5C,CAAC;IACJ,CAAC;IACD,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,qBAAqB;YACpC,WAAW,EACT,mEAAmE;YACrE,WAAW,EAAE,2BAA2B,CAAC,KAAK;SAC/C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class SearchTopicsByTagHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=search-topic-by-tag-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-topic-by-tag-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/search-topic-by-tag-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAyB5C,qBAAa,wBAAyB,SAAQ,eAAe;IACrD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IA6B1B,aAAa,IAAI,UAAU;CAQ5B"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import env from "../../../../env.js";
|
|
4
|
+
import { wrapAsPathBasedClient } from "openapi-fetch";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
const searchTopicsByTagArguments = z.object({
|
|
7
|
+
baseUrl: z
|
|
8
|
+
.string()
|
|
9
|
+
.describe("The base URL of the Schema Registry REST API.")
|
|
10
|
+
.url()
|
|
11
|
+
.default(env.SCHEMA_REGISTRY_ENDPOINT ?? "")
|
|
12
|
+
.optional(),
|
|
13
|
+
topicTag: z.string().optional().describe("The tag we wish to search for"),
|
|
14
|
+
limit: z
|
|
15
|
+
.number()
|
|
16
|
+
.max(500)
|
|
17
|
+
.describe("The maximum number of topics to return.")
|
|
18
|
+
.default(100),
|
|
19
|
+
offset: z
|
|
20
|
+
.number()
|
|
21
|
+
.describe("The offset to start the search from. Used for pagination.")
|
|
22
|
+
.default(0),
|
|
23
|
+
});
|
|
24
|
+
export class SearchTopicsByTagHandler extends BaseToolHandler {
|
|
25
|
+
async handle(clientManager, toolArguments) {
|
|
26
|
+
const { topicTag, limit, offset, baseUrl } = searchTopicsByTagArguments.parse(toolArguments);
|
|
27
|
+
if (baseUrl !== undefined && baseUrl !== "") {
|
|
28
|
+
clientManager.setConfluentCloudSchemaRegistryEndpoint(baseUrl);
|
|
29
|
+
}
|
|
30
|
+
const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudSchemaRegistryRestClient());
|
|
31
|
+
const { data: response, error } = await pathBasedClient["/catalog/v1/search/basic?types=kafka_topic&tag={topicTag}&limit={limit}&offset={offset}"].GET({
|
|
32
|
+
params: {
|
|
33
|
+
path: {
|
|
34
|
+
topicTag: topicTag,
|
|
35
|
+
limit: limit,
|
|
36
|
+
offset: offset,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
if (error) {
|
|
41
|
+
return this.createResponse(`Failed to search for topics by tag: ${JSON.stringify(error)}`, true);
|
|
42
|
+
}
|
|
43
|
+
return this.createResponse(`${JSON.stringify(response)}`);
|
|
44
|
+
}
|
|
45
|
+
getToolConfig() {
|
|
46
|
+
return {
|
|
47
|
+
name: ToolName.SEARCH_TOPICS_BY_TAG,
|
|
48
|
+
description: "List all topics in the Kafka cluster with the specified tag.",
|
|
49
|
+
inputSchema: searchTopicsByTagArguments.shape,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=search-topic-by-tag-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-topic-by-tag-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/search-topic-by-tag-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;SACzD,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;SAC3C,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACzE,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,yCAAyC,CAAC;SACnD,OAAO,CAAC,GAAG,CAAC;IACf,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,CAAC,2DAA2D,CAAC;SACrE,OAAO,CAAC,CAAC,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,OAAO,wBAAyB,SAAQ,eAAe;IAC3D,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GACxC,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,yCAAyC,EAAE,CAC1D,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CACrD,yFAAyF,CAC1F,CAAC,GAAG,CAAC;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,MAAM;iBACf;aACF;SACF,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,uCAAuC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAC9D,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,oBAAoB;YACnC,WAAW,EACT,8DAA8D;YAChE,WAAW,EAAE,0BAA0B,CAAC,KAAK;SAC9C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class SearchTopicsByNameHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=search-topics-by-name-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-topics-by-name-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/search-topics-by-name-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAgB5C,qBAAa,yBAA0B,SAAQ,eAAe;IACtD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IA+B1B,aAAa,IAAI,UAAU;CAQ5B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
|
|
2
|
+
import { ToolName } from "../../../../confluent/tools/tool-name.js";
|
|
3
|
+
import env from "../../../../env.js";
|
|
4
|
+
import { wrapAsPathBasedClient } from "openapi-fetch";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
const searchTopicsByNameArguments = z.object({
|
|
7
|
+
baseUrl: z
|
|
8
|
+
.string()
|
|
9
|
+
.describe("The base URL of the Schema Registry REST API.")
|
|
10
|
+
.url()
|
|
11
|
+
.default(env.SCHEMA_REGISTRY_ENDPOINT ?? "")
|
|
12
|
+
.optional(),
|
|
13
|
+
topicName: z.string().describe("The topic name to search for"),
|
|
14
|
+
});
|
|
15
|
+
export class SearchTopicsByNameHandler extends BaseToolHandler {
|
|
16
|
+
async handle(clientManager, toolArguments) {
|
|
17
|
+
const { topicName, baseUrl } = searchTopicsByNameArguments.parse(toolArguments);
|
|
18
|
+
if (baseUrl !== undefined && baseUrl !== "") {
|
|
19
|
+
clientManager.setConfluentCloudSchemaRegistryEndpoint(baseUrl);
|
|
20
|
+
}
|
|
21
|
+
const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudSchemaRegistryRestClient());
|
|
22
|
+
const { data: response, error } = await pathBasedClient["/catalog/v1/search/basic?types=kafka_topic&query={topicName}"].GET({
|
|
23
|
+
params: {
|
|
24
|
+
path: {
|
|
25
|
+
topicName: topicName,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
if (error) {
|
|
30
|
+
return this.createResponse(`Failed to search for topics by name: ${JSON.stringify(error)}`, true);
|
|
31
|
+
}
|
|
32
|
+
return this.createResponse(response?.entities
|
|
33
|
+
?.map((entity) => entity.attributes?.qualifiedName)
|
|
34
|
+
.filter(Boolean)
|
|
35
|
+
.join(", ") || "No matching topics found");
|
|
36
|
+
}
|
|
37
|
+
getToolConfig() {
|
|
38
|
+
return {
|
|
39
|
+
name: ToolName.SEARCH_TOPICS_BY_NAME,
|
|
40
|
+
description: "List all topics in the Kafka cluster matching the specified name.",
|
|
41
|
+
inputSchema: searchTopicsByNameArguments.shape,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=search-topics-by-name-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-topics-by-name-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/search-topics-by-name-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;SACzD,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;SAC3C,QAAQ,EAAE;IACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAC/D,CAAC,CAAC;AAEH,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAC1B,2BAA2B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,yCAAyC,EAAE,CAC1D,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CACrD,8DAA8D,CAC/D,CAAC,GAAG,CAAC;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,SAAS,EAAE,SAAS;iBACrB;aACF;SACF,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,wCAAwC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAC/D,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CACxB,QAAQ,EAAE,QAAQ;YAChB,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;aAClD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAC5C,CAAC;IACJ,CAAC;IACD,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,qBAAqB;YACpC,WAAW,EACT,mEAAmE;YACrE,WAAW,EAAE,2BAA2B,CAAC,KAAK;SAC/C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClientManager } from "../../../../confluent/client-manager.js";
|
|
2
|
+
import { CallToolResult } from "../../../../confluent/schema.js";
|
|
3
|
+
import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
|
|
4
|
+
export declare class TopicsWithTagsHandler extends BaseToolHandler {
|
|
5
|
+
handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
|
|
6
|
+
getToolConfig(): ToolConfig;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=topics-with-tags-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"topics-with-tags-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/topics-with-tags-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAgB5C,qBAAa,qBAAsB,SAAQ,eAAe;IAClD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAsB1B,aAAa,IAAI,UAAU;CAQ5B"}
|