queue-pilot 0.2.0 → 0.5.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 (130) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +213 -31
  3. package/dist/broker/factory.d.ts +25 -0
  4. package/dist/broker/factory.js +35 -0
  5. package/dist/broker/factory.js.map +1 -0
  6. package/dist/broker/registry.d.ts +8 -0
  7. package/dist/broker/registry.js +95 -0
  8. package/dist/broker/registry.js.map +1 -0
  9. package/dist/broker/tool-definition.d.ts +7 -0
  10. package/dist/broker/tool-definition.js +2 -0
  11. package/dist/broker/tool-definition.js.map +1 -0
  12. package/dist/broker/types.d.ts +71 -0
  13. package/dist/broker/types.js +10 -0
  14. package/dist/broker/types.js.map +1 -0
  15. package/dist/brokers/kafka/adapter.d.ts +18 -0
  16. package/dist/brokers/kafka/adapter.js +83 -0
  17. package/dist/brokers/kafka/adapter.js.map +1 -0
  18. package/dist/brokers/kafka/tools.d.ts +3 -0
  19. package/dist/brokers/kafka/tools.js +51 -0
  20. package/dist/brokers/kafka/tools.js.map +1 -0
  21. package/dist/brokers/rabbitmq/adapter.d.ts +19 -0
  22. package/dist/brokers/rabbitmq/adapter.js +114 -0
  23. package/dist/brokers/rabbitmq/adapter.js.map +1 -0
  24. package/dist/brokers/rabbitmq/tools.d.ts +3 -0
  25. package/dist/brokers/rabbitmq/tools.js +124 -0
  26. package/dist/brokers/rabbitmq/tools.js.map +1 -0
  27. package/dist/index.d.ts +8 -1
  28. package/dist/index.js +208 -30
  29. package/dist/index.js.map +1 -1
  30. package/dist/init.d.ts +24 -0
  31. package/dist/init.js +269 -0
  32. package/dist/init.js.map +1 -0
  33. package/dist/kafka/client.d.ts +63 -0
  34. package/dist/kafka/client.js +256 -0
  35. package/dist/kafka/client.js.map +1 -0
  36. package/dist/kafka/types.d.ts +48 -0
  37. package/dist/kafka/types.js +2 -0
  38. package/dist/kafka/types.js.map +1 -0
  39. package/dist/rabbitmq/client.d.ts +14 -2
  40. package/dist/rabbitmq/client.js +44 -7
  41. package/dist/rabbitmq/client.js.map +1 -1
  42. package/dist/rabbitmq/types.d.ts +64 -4
  43. package/dist/schemas/loader.d.ts +0 -1
  44. package/dist/schemas/loader.js +23 -7
  45. package/dist/schemas/loader.js.map +1 -1
  46. package/dist/schemas/types.d.ts +5 -6
  47. package/dist/schemas/validator.d.ts +0 -1
  48. package/dist/schemas/validator.js +11 -64
  49. package/dist/schemas/validator.js.map +1 -1
  50. package/dist/server.d.ts +5 -4
  51. package/dist/server.js +92 -194
  52. package/dist/server.js.map +1 -1
  53. package/dist/startup.d.ts +18 -0
  54. package/dist/startup.js +36 -0
  55. package/dist/startup.js.map +1 -0
  56. package/dist/tools/check-health.d.ts +6 -0
  57. package/dist/tools/check-health.js +9 -0
  58. package/dist/tools/check-health.js.map +1 -0
  59. package/dist/tools/create-queue.d.ts +2 -3
  60. package/dist/tools/create-queue.js +4 -2
  61. package/dist/tools/create-queue.js.map +1 -1
  62. package/dist/tools/delete-queue.d.ts +11 -0
  63. package/dist/tools/delete-queue.js +9 -0
  64. package/dist/tools/delete-queue.js.map +1 -0
  65. package/dist/tools/get-overview.d.ts +23 -0
  66. package/dist/tools/get-overview.js +13 -0
  67. package/dist/tools/get-overview.js.map +1 -0
  68. package/dist/tools/get-queue.d.ts +19 -0
  69. package/dist/tools/get-queue.js +18 -0
  70. package/dist/tools/get-queue.js.map +1 -0
  71. package/dist/tools/get-schema.d.ts +8 -6
  72. package/dist/tools/get-schema.js.map +1 -1
  73. package/dist/tools/inspect-queue.d.ts +5 -3
  74. package/dist/tools/inspect-queue.js +45 -27
  75. package/dist/tools/inspect-queue.js.map +1 -1
  76. package/dist/tools/list-connections.d.ts +14 -0
  77. package/dist/tools/list-connections.js +16 -0
  78. package/dist/tools/list-connections.js.map +1 -0
  79. package/dist/tools/list-consumers.d.ts +11 -0
  80. package/dist/tools/list-consumers.js +13 -0
  81. package/dist/tools/list-consumers.js.map +1 -0
  82. package/dist/tools/list-queues.d.ts +2 -3
  83. package/dist/tools/list-queues.js +4 -4
  84. package/dist/tools/list-queues.js.map +1 -1
  85. package/dist/tools/list-schemas.d.ts +0 -1
  86. package/dist/tools/list-schemas.js +6 -2
  87. package/dist/tools/list-schemas.js.map +1 -1
  88. package/dist/tools/peek-messages.d.ts +3 -3
  89. package/dist/tools/peek-messages.js +5 -4
  90. package/dist/tools/peek-messages.js.map +1 -1
  91. package/dist/tools/publish-message.d.ts +3 -4
  92. package/dist/tools/publish-message.js +12 -6
  93. package/dist/tools/publish-message.js.map +1 -1
  94. package/dist/tools/purge-queue.d.ts +2 -3
  95. package/dist/tools/purge-queue.js +3 -3
  96. package/dist/tools/purge-queue.js.map +1 -1
  97. package/dist/tools/validate-message.d.ts +0 -1
  98. package/dist/tools/validate-message.js.map +1 -1
  99. package/dist/version.d.ts +1 -0
  100. package/dist/version.js +5 -0
  101. package/dist/version.js.map +1 -0
  102. package/package.json +21 -6
  103. package/dist/index.d.ts.map +0 -1
  104. package/dist/rabbitmq/client.d.ts.map +0 -1
  105. package/dist/rabbitmq/types.d.ts.map +0 -1
  106. package/dist/schemas/loader.d.ts.map +0 -1
  107. package/dist/schemas/types.d.ts.map +0 -1
  108. package/dist/schemas/validator.d.ts.map +0 -1
  109. package/dist/server.d.ts.map +0 -1
  110. package/dist/tools/create-binding.d.ts +0 -15
  111. package/dist/tools/create-binding.d.ts.map +0 -1
  112. package/dist/tools/create-binding.js +0 -10
  113. package/dist/tools/create-binding.js.map +0 -1
  114. package/dist/tools/create-queue.d.ts.map +0 -1
  115. package/dist/tools/get-schema.d.ts.map +0 -1
  116. package/dist/tools/inspect-queue.d.ts.map +0 -1
  117. package/dist/tools/list-bindings.d.ts +0 -11
  118. package/dist/tools/list-bindings.d.ts.map +0 -1
  119. package/dist/tools/list-bindings.js +0 -12
  120. package/dist/tools/list-bindings.js.map +0 -1
  121. package/dist/tools/list-exchanges.d.ts +0 -10
  122. package/dist/tools/list-exchanges.d.ts.map +0 -1
  123. package/dist/tools/list-exchanges.js +0 -11
  124. package/dist/tools/list-exchanges.js.map +0 -1
  125. package/dist/tools/list-queues.d.ts.map +0 -1
  126. package/dist/tools/list-schemas.d.ts.map +0 -1
  127. package/dist/tools/peek-messages.d.ts.map +0 -1
  128. package/dist/tools/publish-message.d.ts.map +0 -1
  129. package/dist/tools/purge-queue.d.ts.map +0 -1
  130. package/dist/tools/validate-message.d.ts.map +0 -1
@@ -0,0 +1,18 @@
1
+ import type { KafkaClient } from "../../kafka/client.js";
2
+ import type { BrokerAdapter, BrokerMessage, BrokerQueueInfo, BrokerHealthResult, CreateQueueParams, CreateQueueResult, PurgeResult, PublishParams, PublishResult, OverviewCapability, ConsumerCapability } from "../../broker/types.js";
3
+ export declare class KafkaAdapter implements BrokerAdapter, OverviewCapability, ConsumerCapability {
4
+ private readonly client;
5
+ constructor(client: KafkaClient);
6
+ getClient(): KafkaClient;
7
+ listQueues(_scope?: string): Promise<BrokerQueueInfo[]>;
8
+ getQueue(name: string, _scope?: string): Promise<BrokerQueueInfo>;
9
+ createQueue(params: CreateQueueParams): Promise<CreateQueueResult>;
10
+ deleteQueue(name: string, _scope?: string): Promise<void>;
11
+ purgeQueue(name: string, _scope?: string): Promise<PurgeResult>;
12
+ peekMessages(queue: string, count: number, _scope?: string): Promise<BrokerMessage[]>;
13
+ publishMessage(params: PublishParams): Promise<PublishResult>;
14
+ checkHealth(): Promise<BrokerHealthResult>;
15
+ getOverview(): Promise<Record<string, unknown>>;
16
+ listConsumers(_scope?: string): Promise<Record<string, unknown>[]>;
17
+ disconnect(): Promise<void>;
18
+ }
@@ -0,0 +1,83 @@
1
+ export class KafkaAdapter {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ getClient() {
7
+ return this.client;
8
+ }
9
+ async listQueues(_scope) {
10
+ const topicNames = await this.client.listTopics();
11
+ const topics = await Promise.all(topicNames.map((name) => this.client.describeTopic(name)));
12
+ return topics.map((t) => ({
13
+ name: t.name,
14
+ messages_ready: null,
15
+ messages_unacknowledged: null,
16
+ state: "active",
17
+ metadata: { partitions: t.partitions.length },
18
+ }));
19
+ }
20
+ async getQueue(name, _scope) {
21
+ const topic = await this.client.describeTopic(name);
22
+ return {
23
+ name: topic.name,
24
+ messages_ready: null,
25
+ messages_unacknowledged: null,
26
+ state: "active",
27
+ metadata: { partitions: topic.partitions },
28
+ };
29
+ }
30
+ async createQueue(params) {
31
+ await this.client.createTopic(params.name, 1, 1);
32
+ return { name: params.name, created: true };
33
+ }
34
+ async deleteQueue(name, _scope) {
35
+ await this.client.deleteTopic(name);
36
+ }
37
+ async purgeQueue(name, _scope) {
38
+ await this.client.purge(name);
39
+ return { messagesRemoved: 0 };
40
+ }
41
+ async peekMessages(queue, count, _scope) {
42
+ const messages = await this.client.peekMessages(queue, count);
43
+ return messages.map((m) => ({
44
+ payload: m.value ?? "",
45
+ payload_encoding: "string",
46
+ properties: {
47
+ headers: m.headers,
48
+ timestamp: parseInt(m.timestamp, 10) || 0,
49
+ },
50
+ metadata: {
51
+ partition: m.partition,
52
+ offset: m.offset,
53
+ key: m.key,
54
+ topic: m.topic,
55
+ },
56
+ }));
57
+ }
58
+ async publishMessage(params) {
59
+ const key = params.routing_key || null;
60
+ const headers = params.properties;
61
+ await this.client.publish(params.destination, key, params.payload, headers);
62
+ return { published: true, routed: true };
63
+ }
64
+ async checkHealth() {
65
+ const result = await this.client.checkHealth();
66
+ const health = { status: result.status };
67
+ if (result.reason) {
68
+ health.reason = result.reason;
69
+ }
70
+ return health;
71
+ }
72
+ async getOverview() {
73
+ return (await this.client.getOverview());
74
+ }
75
+ async listConsumers(_scope) {
76
+ const groups = await this.client.listConsumerGroups();
77
+ return groups;
78
+ }
79
+ async disconnect() {
80
+ await this.client.disconnect();
81
+ }
82
+ }
83
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/brokers/kafka/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../../broker/tool-definition.js";
2
+ import type { KafkaAdapter } from "./adapter.js";
3
+ export declare function createKafkaTools(adapter: KafkaAdapter): ToolDefinition[];
@@ -0,0 +1,51 @@
1
+ import { z } from "zod";
2
+ export function createKafkaTools(adapter) {
3
+ const getClient = () => adapter.getClient();
4
+ return [
5
+ {
6
+ name: "list_consumer_groups",
7
+ description: "List all Kafka consumer groups with their state",
8
+ parameters: {},
9
+ handler: async () => {
10
+ const groups = await getClient().listConsumerGroups();
11
+ return { consumer_groups: groups };
12
+ },
13
+ },
14
+ {
15
+ name: "describe_consumer_group",
16
+ description: "Show members, partition assignments, and state of a Kafka consumer group",
17
+ parameters: {
18
+ group_id: z.string().describe("Consumer group ID"),
19
+ },
20
+ handler: async (args) => {
21
+ const groupId = args.group_id;
22
+ return getClient().describeConsumerGroup(groupId);
23
+ },
24
+ },
25
+ {
26
+ name: "list_partitions",
27
+ description: "Show partition details for a Kafka topic (leader, replicas, ISR)",
28
+ parameters: {
29
+ topic: z.string().describe("Topic name"),
30
+ },
31
+ handler: async (args) => {
32
+ const topicName = args.topic;
33
+ const topic = await getClient().describeTopic(topicName);
34
+ return { topic: topic.name, partitions: topic.partitions };
35
+ },
36
+ },
37
+ {
38
+ name: "get_offsets",
39
+ description: "Show earliest/latest offsets per partition for a Kafka topic",
40
+ parameters: {
41
+ topic: z.string().describe("Topic name"),
42
+ },
43
+ handler: async (args) => {
44
+ const topicName = args.topic;
45
+ const offsets = await getClient().fetchTopicOffsets(topicName);
46
+ return { topic: topicName, offsets };
47
+ },
48
+ },
49
+ ];
50
+ }
51
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/brokers/kafka/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAE5C,OAAO;QACL;YACE,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EAAE,iDAAiD;YAC9D,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC,kBAAkB,EAAE,CAAC;gBACtD,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;YACrC,CAAC;SACF;QACD;YACE,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EACT,0EAA0E;YAC5E,UAAU,EAAE;gBACV,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;aACnD;YACD,OAAO,EAAE,KAAK,EAAE,IAA6B,EAAE,EAAE;gBAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAkB,CAAC;gBACxC,OAAO,SAAS,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,kEAAkE;YACpE,UAAU,EAAE;gBACV,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;aACzC;YACD,OAAO,EAAE,KAAK,EAAE,IAA6B,EAAE,EAAE;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAe,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACzD,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;YAC7D,CAAC;SACF;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,8DAA8D;YAC3E,UAAU,EAAE;gBACV,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;aACzC;YACD,OAAO,EAAE,KAAK,EAAE,IAA6B,EAAE,EAAE;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAe,CAAC;gBACvC,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC/D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YACvC,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { RabbitMQClient } from "../../rabbitmq/client.js";
2
+ import type { BrokerAdapter, BrokerMessage, BrokerQueueInfo, BrokerHealthResult, CreateQueueParams, CreateQueueResult, PurgeResult, PublishParams, PublishResult, OverviewCapability, ConsumerCapability, ConnectionCapability } from "../../broker/types.js";
3
+ export declare class RabbitMQAdapter implements BrokerAdapter, OverviewCapability, ConsumerCapability, ConnectionCapability {
4
+ private readonly client;
5
+ constructor(client: RabbitMQClient);
6
+ getClient(): RabbitMQClient;
7
+ listQueues(scope?: string): Promise<BrokerQueueInfo[]>;
8
+ getQueue(name: string, scope?: string): Promise<BrokerQueueInfo>;
9
+ createQueue(params: CreateQueueParams): Promise<CreateQueueResult>;
10
+ deleteQueue(name: string, scope?: string): Promise<void>;
11
+ purgeQueue(name: string, scope?: string): Promise<PurgeResult>;
12
+ peekMessages(queue: string, count: number, scope?: string): Promise<BrokerMessage[]>;
13
+ publishMessage(params: PublishParams): Promise<PublishResult>;
14
+ checkHealth(): Promise<BrokerHealthResult>;
15
+ getOverview(): Promise<Record<string, unknown>>;
16
+ listConsumers(scope?: string): Promise<Record<string, unknown>[]>;
17
+ listConnections(): Promise<Record<string, unknown>[]>;
18
+ disconnect(): Promise<void>;
19
+ }
@@ -0,0 +1,114 @@
1
+ export class RabbitMQAdapter {
2
+ client;
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ getClient() {
7
+ return this.client;
8
+ }
9
+ async listQueues(scope) {
10
+ const vhost = scope ?? "/";
11
+ const queues = await this.client.listQueues(vhost);
12
+ return queues.map((q) => ({
13
+ name: q.name,
14
+ messages_ready: q.messages_ready,
15
+ messages_unacknowledged: q.messages_unacknowledged,
16
+ state: q.state,
17
+ metadata: { vhost: q.vhost },
18
+ }));
19
+ }
20
+ async getQueue(name, scope) {
21
+ const vhost = scope ?? "/";
22
+ const detail = await this.client.getQueue(vhost, name);
23
+ return {
24
+ name: detail.name,
25
+ messages_ready: detail.messages_ready,
26
+ messages_unacknowledged: detail.messages_unacknowledged,
27
+ state: detail.state,
28
+ metadata: {
29
+ vhost: detail.vhost,
30
+ consumers: detail.consumers,
31
+ consumer_utilisation: detail.consumer_utilisation,
32
+ memory: detail.memory,
33
+ message_stats: detail.message_stats,
34
+ policy: detail.policy,
35
+ arguments: detail.arguments,
36
+ node: detail.node,
37
+ },
38
+ };
39
+ }
40
+ async createQueue(params) {
41
+ const vhost = params.scope ?? "/";
42
+ await this.client.createQueue(vhost, params.name, {
43
+ durable: params.durable ?? false,
44
+ auto_delete: params.auto_delete ?? false,
45
+ });
46
+ return { name: params.name, created: true };
47
+ }
48
+ async deleteQueue(name, scope) {
49
+ const vhost = scope ?? "/";
50
+ await this.client.deleteQueue(vhost, name);
51
+ }
52
+ async purgeQueue(name, scope) {
53
+ const vhost = scope ?? "/";
54
+ const response = await this.client.purgeQueue(vhost, name);
55
+ return { messagesRemoved: response.message_count };
56
+ }
57
+ async peekMessages(queue, count, scope) {
58
+ const vhost = scope ?? "/";
59
+ const messages = await this.client.peekMessages(vhost, queue, count);
60
+ return messages.map((m) => ({
61
+ payload: m.payload,
62
+ payload_encoding: m.payload_encoding,
63
+ properties: {
64
+ correlation_id: m.properties.correlation_id,
65
+ message_id: m.properties.message_id,
66
+ type: m.properties.type,
67
+ timestamp: m.properties.timestamp,
68
+ headers: m.properties.headers,
69
+ content_type: m.properties.content_type,
70
+ },
71
+ metadata: {
72
+ exchange: m.exchange,
73
+ routing_key: m.routing_key,
74
+ message_count: m.message_count,
75
+ redelivered: m.redelivered,
76
+ },
77
+ }));
78
+ }
79
+ async publishMessage(params) {
80
+ const vhost = params.scope ?? "/";
81
+ const response = await this.client.publishMessage(vhost, params.destination, {
82
+ routing_key: params.routing_key,
83
+ payload: params.payload,
84
+ payload_encoding: "string",
85
+ properties: params.properties ?? {},
86
+ });
87
+ return { published: true, routed: response.routed };
88
+ }
89
+ async checkHealth() {
90
+ const health = await this.client.checkHealth();
91
+ const result = { status: health.status };
92
+ if (health.reason) {
93
+ result.reason = health.reason;
94
+ }
95
+ return result;
96
+ }
97
+ async getOverview() {
98
+ const result = await this.client.getOverview();
99
+ return result;
100
+ }
101
+ async listConsumers(scope) {
102
+ const vhost = scope ?? "/";
103
+ const result = await this.client.listConsumers(vhost);
104
+ return result;
105
+ }
106
+ async listConnections() {
107
+ const result = await this.client.listConnections();
108
+ return result;
109
+ }
110
+ async disconnect() {
111
+ // RabbitMQ uses stateless HTTP — no persistent connections to close
112
+ }
113
+ }
114
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/brokers/rabbitmq/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDefinition } from "../../broker/tool-definition.js";
2
+ import type { RabbitMQAdapter } from "./adapter.js";
3
+ export declare function createRabbitMQTools(adapter: RabbitMQAdapter): ToolDefinition[];
@@ -0,0 +1,124 @@
1
+ import { z } from "zod";
2
+ export function createRabbitMQTools(adapter) {
3
+ const getClient = () => adapter.getClient();
4
+ return [
5
+ {
6
+ name: "list_exchanges",
7
+ description: "List all exchanges in a RabbitMQ vhost",
8
+ parameters: {
9
+ vhost: z.string().default("/").describe("RabbitMQ vhost (default: /)"),
10
+ },
11
+ handler: async (args) => {
12
+ const vhost = args.vhost ?? "/";
13
+ const exchanges = await getClient().listExchanges(vhost);
14
+ return {
15
+ exchanges: exchanges.map((e) => ({
16
+ name: e.name,
17
+ type: e.type,
18
+ durable: e.durable,
19
+ })),
20
+ };
21
+ },
22
+ },
23
+ {
24
+ name: "create_exchange",
25
+ description: "Create an exchange in RabbitMQ",
26
+ parameters: {
27
+ exchange: z.string().describe("Exchange name"),
28
+ type: z
29
+ .enum(["direct", "fanout", "topic", "headers"])
30
+ .default("direct")
31
+ .describe("Exchange type (default: direct)"),
32
+ durable: z.boolean().default(false).describe("Survive broker restart (default: false)"),
33
+ auto_delete: z
34
+ .boolean()
35
+ .default(false)
36
+ .describe("Delete when last queue unbinds (default: false)"),
37
+ vhost: z.string().default("/").describe("RabbitMQ vhost (default: /)"),
38
+ },
39
+ handler: async (args) => {
40
+ const exchange = args.exchange;
41
+ const type = args.type ?? "direct";
42
+ const durable = args.durable ?? false;
43
+ const auto_delete = args.auto_delete ?? false;
44
+ const vhost = args.vhost ?? "/";
45
+ await getClient().createExchange(vhost, exchange, { type, durable, auto_delete });
46
+ return { exchange, type, durable, auto_delete, vhost };
47
+ },
48
+ },
49
+ {
50
+ name: "delete_exchange",
51
+ description: "Delete an exchange from RabbitMQ",
52
+ parameters: {
53
+ exchange: z.string().describe("Exchange name"),
54
+ vhost: z.string().default("/").describe("RabbitMQ vhost (default: /)"),
55
+ },
56
+ handler: async (args) => {
57
+ const exchange = args.exchange;
58
+ const vhost = args.vhost ?? "/";
59
+ await getClient().deleteExchange(vhost, exchange);
60
+ return { exchange, vhost, deleted: true };
61
+ },
62
+ },
63
+ {
64
+ name: "list_bindings",
65
+ description: "List all bindings in a RabbitMQ vhost",
66
+ parameters: {
67
+ vhost: z.string().default("/").describe("RabbitMQ vhost (default: /)"),
68
+ },
69
+ handler: async (args) => {
70
+ const vhost = args.vhost ?? "/";
71
+ const bindings = await getClient().listBindings(vhost);
72
+ return {
73
+ bindings: bindings.map((b) => ({
74
+ source: b.source,
75
+ destination: b.destination,
76
+ destination_type: b.destination_type,
77
+ routing_key: b.routing_key,
78
+ properties_key: b.properties_key,
79
+ })),
80
+ };
81
+ },
82
+ },
83
+ {
84
+ name: "create_binding",
85
+ description: "Create a binding between an exchange and a queue in RabbitMQ",
86
+ parameters: {
87
+ exchange: z.string().describe("Source exchange name"),
88
+ queue: z.string().describe("Destination queue name"),
89
+ routing_key: z.string().default("").describe("Routing key (default: empty)"),
90
+ vhost: z.string().default("/").describe("RabbitMQ vhost (default: /)"),
91
+ },
92
+ handler: async (args) => {
93
+ const exchange = args.exchange;
94
+ const queue = args.queue;
95
+ const routing_key = args.routing_key ?? "";
96
+ const vhost = args.vhost ?? "/";
97
+ await getClient().createBinding(vhost, exchange, queue, routing_key);
98
+ return { exchange, queue, routing_key, vhost };
99
+ },
100
+ },
101
+ {
102
+ name: "delete_binding",
103
+ description: "Delete a binding between an exchange and a queue in RabbitMQ",
104
+ parameters: {
105
+ exchange: z.string().describe("Source exchange name"),
106
+ queue: z.string().describe("Destination queue name"),
107
+ properties_key: z
108
+ .string()
109
+ .default("~")
110
+ .describe("Binding properties key (default: ~)"),
111
+ vhost: z.string().default("/").describe("RabbitMQ vhost (default: /)"),
112
+ },
113
+ handler: async (args) => {
114
+ const exchange = args.exchange;
115
+ const queue = args.queue;
116
+ const properties_key = args.properties_key ?? "~";
117
+ const vhost = args.vhost ?? "/";
118
+ await getClient().deleteBinding(vhost, exchange, queue, properties_key);
119
+ return { exchange, queue, properties_key, vhost, deleted: true };
120
+ },
121
+ },
122
+ ];
123
+ }
124
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/brokers/rabbitmq/tools.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,16 @@
1
1
  #!/usr/bin/env node
2
+ import type { BrokerConfig } from "./broker/factory.js";
2
3
  export interface CliArgs {
3
4
  schemas: string;
5
+ broker: string;
4
6
  rabbitmqUrl: string;
5
7
  rabbitmqUser: string;
6
8
  rabbitmqPass: string;
9
+ kafkaBrokers: string;
10
+ kafkaClientId: string;
11
+ kafkaSaslMechanism: string;
12
+ kafkaSaslUsername: string;
13
+ kafkaSaslPassword: string;
7
14
  }
8
15
  export declare function parseArgs(argv: string[]): CliArgs;
9
- //# sourceMappingURL=index.d.ts.map
16
+ export declare function buildBrokerConfig(args: CliArgs): BrokerConfig;