@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.
Files changed (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +302 -0
  3. package/dist/cli.d.ts +14 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +53 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/confluent/client-manager.d.ts +93 -0
  8. package/dist/confluent/client-manager.d.ts.map +1 -0
  9. package/dist/confluent/client-manager.js +148 -0
  10. package/dist/confluent/client-manager.js.map +1 -0
  11. package/dist/confluent/helpers.d.ts +11 -0
  12. package/dist/confluent/helpers.d.ts.map +1 -0
  13. package/dist/confluent/helpers.js +17 -0
  14. package/dist/confluent/helpers.js.map +1 -0
  15. package/dist/confluent/middleware.d.ts +15 -0
  16. package/dist/confluent/middleware.d.ts.map +1 -0
  17. package/dist/confluent/middleware.js +43 -0
  18. package/dist/confluent/middleware.js.map +1 -0
  19. package/dist/confluent/schema.d.ts +4 -0
  20. package/dist/confluent/schema.d.ts.map +1 -0
  21. package/dist/confluent/schema.js +4 -0
  22. package/dist/confluent/schema.js.map +1 -0
  23. package/dist/confluent/tools/base-tools.d.ts +19 -0
  24. package/dist/confluent/tools/base-tools.d.ts.map +1 -0
  25. package/dist/confluent/tools/base-tools.js +16 -0
  26. package/dist/confluent/tools/base-tools.js.map +1 -0
  27. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts +8 -0
  28. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts.map +1 -0
  29. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js +47 -0
  30. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js.map +1 -0
  31. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts +8 -0
  32. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts.map +1 -0
  33. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js +47 -0
  34. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js.map +1 -0
  35. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +8 -0
  36. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -0
  37. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +47 -0
  38. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -0
  39. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts +8 -0
  40. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts.map +1 -0
  41. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js +52 -0
  42. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js.map +1 -0
  43. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +8 -0
  44. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -0
  45. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +52 -0
  46. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -0
  47. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts +8 -0
  48. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts.map +1 -0
  49. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js +42 -0
  50. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js.map +1 -0
  51. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts +8 -0
  52. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts.map +1 -0
  53. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js +56 -0
  54. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js.map +1 -0
  55. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +8 -0
  56. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -0
  57. package/dist/confluent/tools/handlers/catalog/delete-tag.js +42 -0
  58. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -0
  59. package/dist/confluent/tools/handlers/catalog/list-.d.ts +8 -0
  60. package/dist/confluent/tools/handlers/catalog/list-.d.ts.map +1 -0
  61. package/dist/confluent/tools/handlers/catalog/list-.js +35 -0
  62. package/dist/confluent/tools/handlers/catalog/list-.js.map +1 -0
  63. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +8 -0
  64. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -0
  65. package/dist/confluent/tools/handlers/catalog/list-tags.js +35 -0
  66. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -0
  67. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +8 -0
  68. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -0
  69. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +56 -0
  70. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -0
  71. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +182 -0
  72. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -0
  73. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +147 -0
  74. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -0
  75. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts +8 -0
  76. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts.map +1 -0
  77. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js +84 -0
  78. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js.map +1 -0
  79. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +8 -0
  80. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -0
  81. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +95 -0
  82. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -0
  83. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +8 -0
  84. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -0
  85. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +59 -0
  86. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -0
  87. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +8 -0
  88. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -0
  89. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +56 -0
  90. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -0
  91. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +8 -0
  92. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -0
  93. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +62 -0
  94. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -0
  95. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts +8 -0
  96. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts.map +1 -0
  97. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js +52 -0
  98. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js.map +1 -0
  99. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts +8 -0
  100. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts.map +1 -0
  101. package/dist/confluent/tools/handlers/entity/create-topic-tags.js +52 -0
  102. package/dist/confluent/tools/handlers/entity/create-topic-tags.js.map +1 -0
  103. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts +8 -0
  104. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts.map +1 -0
  105. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js +52 -0
  106. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js.map +1 -0
  107. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts +8 -0
  108. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts.map +1 -0
  109. package/dist/confluent/tools/handlers/entity/create-topics-tags.js +52 -0
  110. package/dist/confluent/tools/handlers/entity/create-topics-tags.js.map +1 -0
  111. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts +8 -0
  112. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts.map +1 -0
  113. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js +39 -0
  114. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js.map +1 -0
  115. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts +8 -0
  116. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts.map +1 -0
  117. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js +39 -0
  118. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js.map +1 -0
  119. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +213 -0
  120. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -0
  121. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +130 -0
  122. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -0
  123. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +8 -0
  124. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -0
  125. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +84 -0
  126. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -0
  127. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +8 -0
  128. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -0
  129. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +100 -0
  130. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -0
  131. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +8 -0
  132. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -0
  133. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +63 -0
  134. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -0
  135. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +8 -0
  136. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -0
  137. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +80 -0
  138. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -0
  139. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +8 -0
  140. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -0
  141. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +83 -0
  142. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -0
  143. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts +14 -0
  144. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts.map +1 -0
  145. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js +61 -0
  146. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js.map +1 -0
  147. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +14 -0
  148. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -0
  149. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +61 -0
  150. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -0
  151. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts +8 -0
  152. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts.map +1 -0
  153. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js +28 -0
  154. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js.map +1 -0
  155. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +8 -0
  156. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -0
  157. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +28 -0
  158. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -0
  159. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +8 -0
  160. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -0
  161. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +23 -0
  162. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -0
  163. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +8 -0
  164. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -0
  165. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +22 -0
  166. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -0
  167. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +8 -0
  168. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -0
  169. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +37 -0
  170. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -0
  171. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +8 -0
  172. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -0
  173. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +52 -0
  174. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -0
  175. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts +8 -0
  176. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts.map +1 -0
  177. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js +45 -0
  178. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js.map +1 -0
  179. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +8 -0
  180. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -0
  181. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +53 -0
  182. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -0
  183. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +8 -0
  184. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -0
  185. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +45 -0
  186. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -0
  187. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts +8 -0
  188. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts.map +1 -0
  189. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js +39 -0
  190. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js.map +1 -0
  191. package/dist/confluent/tools/tool-factory.d.ts +9 -0
  192. package/dist/confluent/tools/tool-factory.d.ts.map +1 -0
  193. package/dist/confluent/tools/tool-factory.js +70 -0
  194. package/dist/confluent/tools/tool-factory.js.map +1 -0
  195. package/dist/confluent/tools/tool-name.d.ts +27 -0
  196. package/dist/confluent/tools/tool-name.d.ts.map +1 -0
  197. package/dist/confluent/tools/tool-name.js +28 -0
  198. package/dist/confluent/tools/tool-name.js.map +1 -0
  199. package/dist/env-schema.d.ts +67 -0
  200. package/dist/env-schema.d.ts.map +1 -0
  201. package/dist/env-schema.js +111 -0
  202. package/dist/env-schema.js.map +1 -0
  203. package/dist/env.d.ts +36 -0
  204. package/dist/env.d.ts.map +1 -0
  205. package/dist/env.js +40 -0
  206. package/dist/env.js.map +1 -0
  207. package/dist/index.d.ts +3 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +70 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/lazy.d.ts +65 -0
  212. package/dist/lazy.d.ts.map +1 -0
  213. package/dist/lazy.js +106 -0
  214. package/dist/lazy.js.map +1 -0
  215. package/dist/print-md-schema.d.ts +2 -0
  216. package/dist/print-md-schema.d.ts.map +1 -0
  217. package/dist/print-md-schema.js +96 -0
  218. package/dist/print-md-schema.js.map +1 -0
  219. package/package.json +68 -0
@@ -0,0 +1,84 @@
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
+ import { environmentSchema } from "./list-environments-handler.js";
7
+ const readEnvironmentArguments = z.object({
8
+ baseUrl: z
9
+ .string()
10
+ .describe("The base URL of the Confluent Cloud REST API.")
11
+ .url()
12
+ .default(env.CONFLUENT_CLOUD_REST_ENDPOINT ?? "")
13
+ .optional(),
14
+ environmentId: z
15
+ .string()
16
+ .describe("The ID of the environment to retrieve")
17
+ .nonempty(),
18
+ });
19
+ export class ReadEnvironmentHandler extends BaseToolHandler {
20
+ async handle(clientManager, toolArguments) {
21
+ const { baseUrl, environmentId } = readEnvironmentArguments.parse(toolArguments);
22
+ try {
23
+ if (baseUrl !== undefined && baseUrl !== "") {
24
+ clientManager.setConfluentCloudRestEndpoint(baseUrl);
25
+ }
26
+ const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudRestClient());
27
+ const { data: response, error } = await pathBasedClient["/org/v2/environments/{id}"].GET({
28
+ params: {
29
+ path: {
30
+ id: environmentId,
31
+ },
32
+ },
33
+ });
34
+ if (error) {
35
+ console.error("API Error:", error);
36
+ return this.createResponse(`Failed to fetch environment: ${JSON.stringify(error)}`, true, { error });
37
+ }
38
+ try {
39
+ const validatedEnvironment = environmentSchema.parse(response);
40
+ const environmentDetails = {
41
+ api_version: validatedEnvironment.api_version,
42
+ kind: validatedEnvironment.kind,
43
+ id: validatedEnvironment.id,
44
+ name: validatedEnvironment.display_name,
45
+ metadata: {
46
+ created_at: validatedEnvironment.metadata.created_at,
47
+ updated_at: validatedEnvironment.metadata.updated_at,
48
+ deleted_at: validatedEnvironment.metadata.deleted_at,
49
+ resource_name: validatedEnvironment.metadata.resource_name,
50
+ self: validatedEnvironment.metadata.self,
51
+ },
52
+ stream_governance_package: validatedEnvironment.stream_governance_config?.package,
53
+ };
54
+ const formattedDetails = `
55
+ Environment: ${environmentDetails.name}
56
+ API Version: ${environmentDetails.api_version}
57
+ Kind: ${environmentDetails.kind}
58
+ ID: ${environmentDetails.id}
59
+ Resource Name: ${environmentDetails.metadata.resource_name}
60
+ Self Link: ${environmentDetails.metadata.self}
61
+ Created At: ${environmentDetails.metadata.created_at}
62
+ Updated At: ${environmentDetails.metadata.updated_at}${environmentDetails.metadata.deleted_at ? `\n Deleted At: ${environmentDetails.metadata.deleted_at}` : ""}${environmentDetails.stream_governance_package ? `\n Stream Governance Package: ${environmentDetails.stream_governance_package}` : ""}
63
+ `;
64
+ return this.createResponse(`Successfully retrieved environment:\n${formattedDetails}`, false, { environment: environmentDetails });
65
+ }
66
+ catch (validationError) {
67
+ console.error("Environment validation error:", validationError);
68
+ return this.createResponse(`Invalid environment data: ${validationError instanceof Error ? validationError.message : String(validationError)}`, true, { error: validationError });
69
+ }
70
+ }
71
+ catch (error) {
72
+ console.error("Error in ReadEnvironmentHandler:", error);
73
+ return this.createResponse(`Failed to fetch environment: ${error instanceof Error ? error.message : String(error)}`, true, { error: error instanceof Error ? error.message : String(error) });
74
+ }
75
+ }
76
+ getToolConfig() {
77
+ return {
78
+ name: ToolName.READ_ENVIRONMENT,
79
+ description: "Get details of a specific environment by ID",
80
+ inputSchema: readEnvironmentArguments.shape,
81
+ };
82
+ }
83
+ }
84
+ //# sourceMappingURL=read-environment-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-environment-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/environments/read-environment-handler.ts"],"names":[],"mappings":"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"}
@@ -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 CreateFlinkStatementHandler extends BaseToolHandler {
5
+ handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined): Promise<CallToolResult>;
6
+ getToolConfig(): ToolConfig;
7
+ }
8
+ //# sourceMappingURL=create-flink-statement-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-flink-statement-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/create-flink-statement-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAiE5C,qBAAa,2BAA4B,SAAQ,eAAe;IACxD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,OAAO,CAAC,cAAc,CAAC;IAoE1B,aAAa,IAAI,UAAU;CAO5B"}
@@ -0,0 +1,100 @@
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 createFlinkStatementArguments = z.object({
8
+ baseUrl: z
9
+ .string()
10
+ .describe("The base URL of the Flink REST API.")
11
+ .url()
12
+ .default(env.FLINK_REST_ENDPOINT ?? "")
13
+ .optional(),
14
+ organizationId: z
15
+ .string()
16
+ .trim()
17
+ .optional()
18
+ .describe("The unique identifier for the organization."),
19
+ environmentId: z
20
+ .string()
21
+ .trim()
22
+ .optional()
23
+ .describe("The unique identifier for the environment."),
24
+ computePoolId: z
25
+ .string()
26
+ .trim()
27
+ .optional()
28
+ .describe("The id associated with the compute pool in context."),
29
+ statement: z
30
+ .string()
31
+ .nonempty()
32
+ .max(131072)
33
+ .describe("The raw Flink SQL text statement. Create table statements may not be necessary as topics in confluent cloud will be detected as created schemas. Make sure to show and describe tables before creating new ones."),
34
+ statementName: z
35
+ .string()
36
+ .regex(new RegExp("[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"))
37
+ .nonempty()
38
+ .max(100)
39
+ .describe("The user provided name of the resource, unique within this environment."),
40
+ catalogName: z
41
+ .string()
42
+ .trim()
43
+ .nonempty()
44
+ .default(env["FLINK_ENV_NAME"] ?? "")
45
+ .describe("The catalog name to be used for the statement. Typically the confluent environment name."),
46
+ databaseName: z
47
+ .string()
48
+ .trim()
49
+ .nonempty()
50
+ .default(env["FLINK_DATABASE_NAME"] ?? "")
51
+ .describe("The database name to be used for the statement. Typically the Kafka cluster name."),
52
+ });
53
+ export class CreateFlinkStatementHandler extends BaseToolHandler {
54
+ async handle(clientManager, toolArguments) {
55
+ const { catalogName, databaseName, statement, statementName, computePoolId, environmentId, organizationId, baseUrl, } = createFlinkStatementArguments.parse(toolArguments);
56
+ const organization_id = getEnsuredParam("FLINK_ORG_ID", "Organization ID is required", organizationId);
57
+ const environment_id = getEnsuredParam("FLINK_ENV_ID", "Environment ID is required", environmentId);
58
+ const compute_pool_id = getEnsuredParam("FLINK_COMPUTE_POOL_ID", "Compute Pool ID is required", computePoolId);
59
+ if (baseUrl !== undefined && baseUrl !== "") {
60
+ clientManager.setConfluentCloudFlinkEndpoint(baseUrl);
61
+ }
62
+ const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudFlinkRestClient());
63
+ const { data: response, error } = await pathBasedClient["/sql/v1/organizations/{organization_id}/environments/{environment_id}/statements"].POST({
64
+ params: {
65
+ path: {
66
+ environment_id: environment_id,
67
+ organization_id: organization_id,
68
+ },
69
+ },
70
+ body: {
71
+ name: statementName,
72
+ organization_id: organization_id,
73
+ environment_id: environment_id,
74
+ spec: {
75
+ compute_pool_id: compute_pool_id,
76
+ statement: statement,
77
+ properties: {
78
+ // only include the catalog and database properties if they are defined
79
+ ...(catalogName && { "sql.current-catalog": catalogName }),
80
+ ...(databaseName && {
81
+ "sql.current-database": databaseName,
82
+ }),
83
+ },
84
+ },
85
+ },
86
+ });
87
+ if (error) {
88
+ return this.createResponse(`Failed to create Flink SQL statements: ${JSON.stringify(error)}`, true);
89
+ }
90
+ return this.createResponse(`${JSON.stringify(response)}`);
91
+ }
92
+ getToolConfig() {
93
+ return {
94
+ name: ToolName.CREATE_FLINK_STATEMENT,
95
+ description: "Make a request to create a statement.",
96
+ inputSchema: createFlinkStatementArguments.shape,
97
+ };
98
+ }
99
+ }
100
+ //# sourceMappingURL=create-flink-statement-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-flink-statement-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/create-flink-statement-handler.ts"],"names":[],"mappings":"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"}
@@ -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 DeleteFlinkStatementHandler extends BaseToolHandler {
5
+ handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined): Promise<CallToolResult>;
6
+ getToolConfig(): ToolConfig;
7
+ }
8
+ //# sourceMappingURL=delete-flink-statement-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-flink-statement-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/delete-flink-statement-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAsC5C,qBAAa,2BAA4B,SAAQ,eAAe;IACxD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,OAAO,CAAC,cAAc,CAAC;IAyC1B,aAAa,IAAI,UAAU;CAO5B"}
@@ -0,0 +1,63 @@
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 deleteFlinkStatementArguments = z.object({
8
+ baseUrl: z
9
+ .string()
10
+ .trim()
11
+ .describe("The base URL of the Flink REST API.")
12
+ .url()
13
+ .default(env.FLINK_REST_ENDPOINT ?? "")
14
+ .optional(),
15
+ organizationId: z
16
+ .string()
17
+ .trim()
18
+ .optional()
19
+ .describe("The unique identifier for the organization."),
20
+ environmentId: z
21
+ .string()
22
+ .trim()
23
+ .optional()
24
+ .describe("The unique identifier for the environment."),
25
+ statementName: z
26
+ .string()
27
+ .regex(new RegExp("[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"))
28
+ .nonempty()
29
+ .max(100)
30
+ .describe("The user provided name of the resource, unique within this environment."),
31
+ });
32
+ export class DeleteFlinkStatementHandler extends BaseToolHandler {
33
+ async handle(clientManager, toolArguments) {
34
+ const { statementName, environmentId, organizationId, baseUrl } = deleteFlinkStatementArguments.parse(toolArguments);
35
+ const organization_id = getEnsuredParam("FLINK_ORG_ID", "Organization ID is required", organizationId);
36
+ const environment_id = getEnsuredParam("FLINK_ENV_ID", "Environment ID is required", environmentId);
37
+ if (baseUrl !== undefined && baseUrl !== "") {
38
+ clientManager.setConfluentCloudFlinkEndpoint(baseUrl);
39
+ }
40
+ const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudFlinkRestClient());
41
+ const { response, error } = await pathBasedClient["/sql/v1/organizations/{organization_id}/environments/{environment_id}/statements/{statement_name}"].DELETE({
42
+ params: {
43
+ path: {
44
+ organization_id: organization_id,
45
+ environment_id: environment_id,
46
+ statement_name: statementName,
47
+ },
48
+ },
49
+ });
50
+ if (error) {
51
+ return this.createResponse(`Failed to delete Flink SQL statement: ${JSON.stringify(error)}`, true);
52
+ }
53
+ return this.createResponse(`Flink SQL Statement Deletion Status Code: ${response?.status}`);
54
+ }
55
+ getToolConfig() {
56
+ return {
57
+ name: ToolName.DELETE_FLINK_STATEMENTS,
58
+ description: "Make a request to delete a statement.",
59
+ inputSchema: deleteFlinkStatementArguments.shape,
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=delete-flink-statement-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-flink-statement-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/delete-flink-statement-handler.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,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,CAAC,qCAAqC,CAAC;SAC/C,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;SACtC,QAAQ,EAAE;IACb,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,6CAA6C,CAAC;IAC1D,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,IAAI,EAAE;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;IACzD,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,KAAK,CACJ,IAAI,MAAM,CACR,kEAAkE,CACnE,CACF;SACA,QAAQ,EAAE;SACV,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CACP,yEAAyE,CAC1E;CACJ,CAAC,CAAC;AAEH,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAkD;QAElD,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,GAC7D,6BAA6B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,eAAe,CACrC,cAAc,EACd,6BAA6B,EAC7B,cAAc,CACf,CAAC;QACF,MAAM,cAAc,GAAG,eAAe,CACpC,cAAc,EACd,4BAA4B,EAC5B,aAAa,CACd,CAAC;QAEF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,gCAAgC,EAAE,CACjD,CAAC;QACF,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAC/C,mGAAmG,CACpG,CAAC,MAAM,CAAC;YACP,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,eAAe,EAAE,eAAe;oBAChC,cAAc,EAAE,cAAc;oBAC9B,cAAc,EAAE,aAAa;iBAC9B;aACF;SACF,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,yCAAyC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAChE,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CACxB,6CAA6C,QAAQ,EAAE,MAAM,EAAE,CAChE,CAAC;IACJ,CAAC;IACD,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,uBAAuB;YACtC,WAAW,EAAE,uCAAuC;YACpD,WAAW,EAAE,6BAA6B,CAAC,KAAK;SACjD,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 ListFlinkStatementsHandler extends BaseToolHandler {
5
+ handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined): Promise<CallToolResult>;
6
+ getToolConfig(): ToolConfig;
7
+ }
8
+ //# sourceMappingURL=list-flink-statements-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-flink-statements-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/list-flink-statements-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AA4C5C,qBAAa,0BAA2B,SAAQ,eAAe;IACvD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,OAAO,CAAC,cAAc,CAAC;IAoD1B,aAAa,IAAI,UAAU;CAQ5B"}
@@ -0,0 +1,80 @@
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 listFlinkStatementsArguments = z.object({
8
+ baseUrl: z
9
+ .string()
10
+ .describe("The base URL of the Flink REST API.")
11
+ .url()
12
+ .default(env.FLINK_REST_ENDPOINT ?? "")
13
+ .optional(),
14
+ organizationId: z
15
+ .string()
16
+ .optional()
17
+ .describe("The unique identifier for the organization."),
18
+ environmentId: z
19
+ .string()
20
+ .optional()
21
+ .describe("The unique identifier for the environment."),
22
+ computePoolId: z
23
+ .string()
24
+ .optional()
25
+ .default(env.FLINK_COMPUTE_POOL_ID ?? "")
26
+ .describe("Filter the results by exact match for compute_pool."),
27
+ pageSize: z
28
+ .number()
29
+ .int()
30
+ .nonnegative()
31
+ .max(100)
32
+ .default(10)
33
+ .describe("A pagination size for collection requests."),
34
+ pageToken: z
35
+ .string()
36
+ .max(255)
37
+ .optional()
38
+ .describe("An opaque pagination token for collection requests."),
39
+ labelSelector: z
40
+ .string()
41
+ .optional()
42
+ .describe("A comma-separated label selector to filter the statements."),
43
+ });
44
+ export class ListFlinkStatementsHandler extends BaseToolHandler {
45
+ async handle(clientManager, toolArguments) {
46
+ const { pageSize, computePoolId, environmentId, labelSelector, organizationId, pageToken, baseUrl, } = listFlinkStatementsArguments.parse(toolArguments);
47
+ const organization_id = getEnsuredParam("FLINK_ORG_ID", "Organization ID is required", organizationId);
48
+ const environment_id = getEnsuredParam("FLINK_ENV_ID", "Environment ID is required", environmentId);
49
+ if (baseUrl !== undefined && baseUrl !== "") {
50
+ clientManager.setConfluentCloudFlinkEndpoint(baseUrl);
51
+ }
52
+ const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudFlinkRestClient());
53
+ const { data: response, error } = await pathBasedClient["/sql/v1/organizations/{organization_id}/environments/{environment_id}/statements"].GET({
54
+ params: {
55
+ path: {
56
+ organization_id: organization_id,
57
+ environment_id: environment_id,
58
+ },
59
+ query: {
60
+ compute_pool_id: computePoolId,
61
+ page_size: pageSize,
62
+ page_token: pageToken,
63
+ label_selector: labelSelector,
64
+ },
65
+ },
66
+ });
67
+ if (error) {
68
+ return this.createResponse(`Failed to list Flink SQL statements: ${JSON.stringify(error)}`, true);
69
+ }
70
+ return this.createResponse(`${JSON.stringify(response)}`);
71
+ }
72
+ getToolConfig() {
73
+ return {
74
+ name: ToolName.LIST_FLINK_STATEMENTS,
75
+ description: "Retrieve a sorted, filtered, paginated list of all statements.",
76
+ inputSchema: listFlinkStatementsArguments.shape,
77
+ };
78
+ }
79
+ }
80
+ //# sourceMappingURL=list-flink-statements-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-flink-statements-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/list-flink-statements-handler.ts"],"names":[],"mappings":"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"}
@@ -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 ReadFlinkStatementHandler extends BaseToolHandler {
5
+ handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined): Promise<CallToolResult>;
6
+ getToolConfig(): ToolConfig;
7
+ }
8
+ //# sourceMappingURL=read-flink-statement-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-flink-statement-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/read-flink-statement-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AA4C5C,qBAAa,yBAA0B,SAAQ,eAAe;IACtD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,OAAO,CAAC,cAAc,CAAC;IAoE1B,aAAa,IAAI,UAAU;CAO5B"}
@@ -0,0 +1,83 @@
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 readFlinkStatementArguments = z.object({
8
+ baseUrl: z
9
+ .string()
10
+ .describe("The base URL of the Flink REST API.")
11
+ .url()
12
+ .default(env.FLINK_REST_ENDPOINT ?? "")
13
+ .optional(),
14
+ organizationId: z
15
+ .string()
16
+ .trim()
17
+ .optional()
18
+ .describe("The unique identifier for the organization."),
19
+ environmentId: z
20
+ .string()
21
+ .trim()
22
+ .optional()
23
+ .describe("The unique identifier for the environment."),
24
+ statementName: z
25
+ .string()
26
+ .regex(new RegExp("[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"))
27
+ .nonempty()
28
+ .max(100)
29
+ .describe("The user provided name of the resource, unique within this environment."),
30
+ timeoutInMilliseconds: z
31
+ .number()
32
+ .optional()
33
+ .default(60000)
34
+ .describe("The function implements pagination. It will continue to fetch results using the next page token until either there are no more results or the timeout is reached. Tables backed by kafka topics can be thought of as never-ending streams as data could be continuously produced in near real-time. Therefore, if you wish to sample values from a stream, you may want to set a timeout. If you are reading a statement after creating it, you may need to retry a couple times to ensure that the statement is ready and receiving data."),
35
+ });
36
+ export class ReadFlinkStatementHandler extends BaseToolHandler {
37
+ async handle(clientManager, toolArguments) {
38
+ const { timeoutInMilliseconds, statementName, environmentId, organizationId, baseUrl, } = readFlinkStatementArguments.parse(toolArguments);
39
+ const organization_id = getEnsuredParam("FLINK_ORG_ID", "Organization ID is required", organizationId);
40
+ const environment_id = getEnsuredParam("FLINK_ENV_ID", "Environment ID is required", environmentId);
41
+ if (baseUrl !== undefined && baseUrl !== "") {
42
+ clientManager.setConfluentCloudFlinkEndpoint(baseUrl);
43
+ }
44
+ const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudFlinkRestClient());
45
+ let allResults = [];
46
+ let nextToken = undefined;
47
+ const timeout = timeoutInMilliseconds === -1 || timeoutInMilliseconds === undefined
48
+ ? undefined
49
+ : Date.now() + timeoutInMilliseconds;
50
+ /**
51
+ * A timeout period has elapsed if a timeout is defined and the current time has exceeded it,
52
+ * `false` otherwise.
53
+ */
54
+ const hasTimedOut = () => timeout !== undefined && Date.now() >= timeout;
55
+ do {
56
+ const { data: response, error } = await pathBasedClient["/sql/v1/organizations/{organization_id}/environments/{environment_id}/statements/{name}/results"].GET({
57
+ params: {
58
+ path: {
59
+ organization_id: organization_id,
60
+ environment_id: environment_id,
61
+ name: statementName,
62
+ },
63
+ // only include the page token if it's defined
64
+ ...(nextToken ? { query: { page_token: nextToken } } : {}),
65
+ },
66
+ });
67
+ if (error) {
68
+ return this.createResponse(`Failed to read Flink SQL statement: ${JSON.stringify(error)}`, true);
69
+ }
70
+ allResults = allResults.concat(response?.results.data || []);
71
+ nextToken = response?.metadata.next?.split("page_token=")[1];
72
+ } while (nextToken && !hasTimedOut());
73
+ return this.createResponse(`Flink SQL Statement Results: ${JSON.stringify(allResults)}`);
74
+ }
75
+ getToolConfig() {
76
+ return {
77
+ name: ToolName.READ_FLINK_STATEMENT,
78
+ description: "Make a request to read a statement and its results",
79
+ inputSchema: readFlinkStatementArguments.shape,
80
+ };
81
+ }
82
+ }
83
+ //# sourceMappingURL=read-flink-statement-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-flink-statement-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/flink/read-flink-statement-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
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
+ /**
5
+ * Handler for altering Kafka topic configurations through Confluent Cloud REST API.
6
+ * This implementation serves as a workaround since the native Kafka
7
+ * admin client API does not provide direct methods for altering topic configurations.
8
+ * Instead, we utilize Confluent's REST API endpoints to achieve this functionality.
9
+ */
10
+ export declare class AlterTopicConfigHandler extends BaseToolHandler {
11
+ handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
12
+ getToolConfig(): ToolConfig;
13
+ }
14
+ //# sourceMappingURL=alter-topic-config%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alter-topic-config copy.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/alter-topic-config copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AA8B5C;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IACpD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAsC1B,aAAa,IAAI,UAAU;CAO5B"}
@@ -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%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alter-topic-config copy.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/alter-topic-config copy.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,14 @@
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
+ /**
5
+ * Handler for altering Kafka topic configurations through Confluent Cloud REST API.
6
+ * This implementation serves as a workaround since the native Kafka
7
+ * admin client API does not provide direct methods for altering topic configurations.
8
+ * Instead, we utilize Confluent's REST API endpoints to achieve this functionality.
9
+ */
10
+ export declare class AlterTopicConfigHandler extends BaseToolHandler {
11
+ handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
12
+ getToolConfig(): ToolConfig;
13
+ }
14
+ //# sourceMappingURL=alter-topic-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alter-topic-config.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/kafka/alter-topic-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AA8B5C;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IACpD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAsC1B,aAAa,IAAI,UAAU;CAO5B"}