queue-pilot 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +177 -0
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +81 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/rabbitmq/client.d.ts +22 -0
  8. package/dist/rabbitmq/client.d.ts.map +1 -0
  9. package/dist/rabbitmq/client.js +82 -0
  10. package/dist/rabbitmq/client.js.map +1 -0
  11. package/dist/rabbitmq/types.d.ts +55 -0
  12. package/dist/rabbitmq/types.d.ts.map +1 -0
  13. package/dist/rabbitmq/types.js +2 -0
  14. package/dist/rabbitmq/types.js.map +1 -0
  15. package/dist/schemas/loader.d.ts +3 -0
  16. package/dist/schemas/loader.d.ts.map +1 -0
  17. package/dist/schemas/loader.js +37 -0
  18. package/dist/schemas/loader.js.map +1 -0
  19. package/dist/schemas/types.d.ts +27 -0
  20. package/dist/schemas/types.d.ts.map +1 -0
  21. package/dist/schemas/types.js +2 -0
  22. package/dist/schemas/types.js.map +1 -0
  23. package/dist/schemas/validator.d.ts +10 -0
  24. package/dist/schemas/validator.d.ts.map +1 -0
  25. package/dist/schemas/validator.js +106 -0
  26. package/dist/schemas/validator.js.map +1 -0
  27. package/dist/server.d.ts +10 -0
  28. package/dist/server.d.ts.map +1 -0
  29. package/dist/server.js +208 -0
  30. package/dist/server.js.map +1 -0
  31. package/dist/tools/create-binding.d.ts +15 -0
  32. package/dist/tools/create-binding.d.ts.map +1 -0
  33. package/dist/tools/create-binding.js +10 -0
  34. package/dist/tools/create-binding.js.map +1 -0
  35. package/dist/tools/create-queue.d.ts +15 -0
  36. package/dist/tools/create-queue.d.ts.map +1 -0
  37. package/dist/tools/create-queue.js +13 -0
  38. package/dist/tools/create-queue.js.map +1 -0
  39. package/dist/tools/get-schema.d.ts +9 -0
  40. package/dist/tools/get-schema.d.ts.map +1 -0
  41. package/dist/tools/get-schema.js +16 -0
  42. package/dist/tools/get-schema.js.map +1 -0
  43. package/dist/tools/inspect-queue.d.ts +36 -0
  44. package/dist/tools/inspect-queue.d.ts.map +1 -0
  45. package/dist/tools/inspect-queue.js +74 -0
  46. package/dist/tools/inspect-queue.js.map +1 -0
  47. package/dist/tools/list-bindings.d.ts +11 -0
  48. package/dist/tools/list-bindings.d.ts.map +1 -0
  49. package/dist/tools/list-bindings.js +12 -0
  50. package/dist/tools/list-bindings.js.map +1 -0
  51. package/dist/tools/list-exchanges.d.ts +10 -0
  52. package/dist/tools/list-exchanges.d.ts.map +1 -0
  53. package/dist/tools/list-exchanges.js +11 -0
  54. package/dist/tools/list-exchanges.js.map +1 -0
  55. package/dist/tools/list-queues.d.ts +11 -0
  56. package/dist/tools/list-queues.d.ts.map +1 -0
  57. package/dist/tools/list-queues.js +12 -0
  58. package/dist/tools/list-queues.js.map +1 -0
  59. package/dist/tools/list-schemas.d.ts +11 -0
  60. package/dist/tools/list-schemas.d.ts.map +1 -0
  61. package/dist/tools/list-schemas.js +14 -0
  62. package/dist/tools/list-schemas.js.map +1 -0
  63. package/dist/tools/peek-messages.d.ts +19 -0
  64. package/dist/tools/peek-messages.d.ts.map +1 -0
  65. package/dist/tools/peek-messages.js +20 -0
  66. package/dist/tools/peek-messages.js.map +1 -0
  67. package/dist/tools/publish-message.d.ts +28 -0
  68. package/dist/tools/publish-message.d.ts.map +1 -0
  69. package/dist/tools/publish-message.js +80 -0
  70. package/dist/tools/publish-message.js.map +1 -0
  71. package/dist/tools/purge-queue.d.ts +7 -0
  72. package/dist/tools/purge-queue.d.ts.map +1 -0
  73. package/dist/tools/purge-queue.js +8 -0
  74. package/dist/tools/purge-queue.js.map +1 -0
  75. package/dist/tools/validate-message.d.ts +11 -0
  76. package/dist/tools/validate-message.d.ts.map +1 -0
  77. package/dist/tools/validate-message.js +20 -0
  78. package/dist/tools/validate-message.js.map +1 -0
  79. package/package.json +64 -0
@@ -0,0 +1,106 @@
1
+ /* eslint-disable @typescript-eslint/no-require-imports */
2
+ import { createRequire } from "module";
3
+ const require = createRequire(import.meta.url);
4
+ const Ajv = require("ajv").default ?? require("ajv");
5
+ const addFormats = require("ajv-formats").default ?? require("ajv-formats");
6
+ const JSON_SCHEMA_DRAFT07_KEYWORDS = new Set([
7
+ "$id",
8
+ "$schema",
9
+ "$ref",
10
+ "$comment",
11
+ "title",
12
+ "description",
13
+ "default",
14
+ "readOnly",
15
+ "writeOnly",
16
+ "examples",
17
+ "type",
18
+ "enum",
19
+ "const",
20
+ "properties",
21
+ "required",
22
+ "additionalProperties",
23
+ "patternProperties",
24
+ "propertyNames",
25
+ "minProperties",
26
+ "maxProperties",
27
+ "dependencies",
28
+ "items",
29
+ "additionalItems",
30
+ "contains",
31
+ "minItems",
32
+ "maxItems",
33
+ "uniqueItems",
34
+ "allOf",
35
+ "anyOf",
36
+ "oneOf",
37
+ "not",
38
+ "if",
39
+ "then",
40
+ "else",
41
+ "format",
42
+ "minLength",
43
+ "maxLength",
44
+ "pattern",
45
+ "minimum",
46
+ "maximum",
47
+ "exclusiveMinimum",
48
+ "exclusiveMaximum",
49
+ "multipleOf",
50
+ "contentMediaType",
51
+ "contentEncoding",
52
+ "definitions",
53
+ ]);
54
+ function stripNonStandardKeywords(schema) {
55
+ const cleaned = {};
56
+ for (const [key, value] of Object.entries(schema)) {
57
+ if (JSON_SCHEMA_DRAFT07_KEYWORDS.has(key)) {
58
+ cleaned[key] = value;
59
+ }
60
+ }
61
+ return cleaned;
62
+ }
63
+ export class SchemaValidator {
64
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
+ ajv;
66
+ schemas;
67
+ constructor(schemas) {
68
+ this.ajv = new Ajv({ allErrors: true });
69
+ addFormats(this.ajv);
70
+ this.schemas = new Map();
71
+ for (const entry of schemas) {
72
+ this.schemas.set(entry.name, entry);
73
+ this.ajv.addSchema(stripNonStandardKeywords(entry.schema), entry.name);
74
+ }
75
+ }
76
+ validate(schemaName, message) {
77
+ const entry = this.schemas.get(schemaName);
78
+ if (!entry) {
79
+ return {
80
+ valid: false,
81
+ errors: [
82
+ {
83
+ path: "",
84
+ message: `Schema "${schemaName}" not found`,
85
+ },
86
+ ],
87
+ };
88
+ }
89
+ const valid = this.ajv.validate(schemaName, message);
90
+ if (valid) {
91
+ return { valid: true, errors: [] };
92
+ }
93
+ const errors = (this.ajv.errors ?? []).map((err) => ({
94
+ path: err.instancePath || "/",
95
+ message: err.message ?? "Unknown validation error",
96
+ }));
97
+ return { valid: false, errors };
98
+ }
99
+ getSchemaNames() {
100
+ return Array.from(this.schemas.keys());
101
+ }
102
+ getSchema(name) {
103
+ return this.schemas.get(name);
104
+ }
105
+ }
106
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/schemas/validator.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACrD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5E,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC;IAC3C,KAAK;IACL,SAAS;IACT,MAAM;IACN,UAAU;IACV,OAAO;IACP,aAAa;IACb,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,YAAY;IACZ,UAAU;IACV,sBAAsB;IACtB,mBAAmB;IACnB,eAAe;IACf,eAAe;IACf,eAAe;IACf,cAAc;IACd,OAAO;IACP,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,UAAU;IACV,aAAa;IACb,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,IAAI;IACJ,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;CACd,CAAC,CAAC;AAEH,SAAS,wBAAwB,CAAC,MAAwB;IACxD,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,OAAO,eAAe;IAC1B,8DAA8D;IAC7C,GAAG,CAAM;IACT,OAAO,CAA2B;IAEnD,YAAY,OAAsB;QAChC,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,UAAkB,EAAE,OAAgB;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,EAAE;wBACR,OAAO,EAAE,WAAW,UAAU,aAAa;qBAC5C;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAY,CAAC;QAEhE,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,MAAM,GACV,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAIvB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACd,IAAI,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG;YAC7B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,0BAA0B;SACnD,CAAC,CAAC,CAAC;QAEJ,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { SchemaEntry } from "./schemas/types.js";
3
+ export interface ServerConfig {
4
+ schemas: SchemaEntry[];
5
+ rabbitmqUrl: string;
6
+ rabbitmqUser: string;
7
+ rabbitmqPass: string;
8
+ }
9
+ export declare function createServer(config: ServerConfig): McpServer;
10
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiBtD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAkQ5D"}
package/dist/server.js ADDED
@@ -0,0 +1,208 @@
1
+ import { createRequire } from "module";
2
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
+ import { z } from "zod";
4
+ import { RabbitMQClient } from "./rabbitmq/client.js";
5
+ import { SchemaValidator } from "./schemas/validator.js";
6
+ const require = createRequire(import.meta.url);
7
+ const pkg = require("../package.json");
8
+ import { listSchemas } from "./tools/list-schemas.js";
9
+ import { getSchema } from "./tools/get-schema.js";
10
+ import { validateMessage } from "./tools/validate-message.js";
11
+ import { listQueues } from "./tools/list-queues.js";
12
+ import { peekMessages } from "./tools/peek-messages.js";
13
+ import { inspectQueue } from "./tools/inspect-queue.js";
14
+ import { listExchanges } from "./tools/list-exchanges.js";
15
+ import { listBindings } from "./tools/list-bindings.js";
16
+ import { publishMessage } from "./tools/publish-message.js";
17
+ import { purgeQueue } from "./tools/purge-queue.js";
18
+ import { createQueue } from "./tools/create-queue.js";
19
+ import { createBinding } from "./tools/create-binding.js";
20
+ export function createServer(config) {
21
+ const validator = new SchemaValidator(config.schemas);
22
+ const client = new RabbitMQClient({
23
+ url: config.rabbitmqUrl,
24
+ username: config.rabbitmqUser,
25
+ password: config.rabbitmqPass,
26
+ });
27
+ const server = new McpServer({
28
+ name: "queue-pilot",
29
+ version: pkg.version,
30
+ });
31
+ server.tool("list_schemas", "List all loaded message schemas", {}, async () => {
32
+ const result = listSchemas(validator);
33
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
34
+ });
35
+ server.tool("get_schema", "Get the full definition of a specific schema", { name: z.string().describe("Schema name (e.g. 'order.created')") }, async ({ name }) => {
36
+ const result = getSchema(validator, name);
37
+ return {
38
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
39
+ };
40
+ });
41
+ server.tool("validate_message", "Validate a JSON message against a schema", {
42
+ schemaName: z.string().describe("Schema name to validate against"),
43
+ message: z.string().describe("JSON message payload to validate"),
44
+ }, async ({ schemaName, message }) => {
45
+ const result = validateMessage(validator, schemaName, message);
46
+ return {
47
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
48
+ };
49
+ });
50
+ server.tool("list_queues", "List all RabbitMQ queues with message counts", {
51
+ vhost: z
52
+ .string()
53
+ .default("/")
54
+ .describe("RabbitMQ vhost (default: '/')"),
55
+ }, async ({ vhost }) => {
56
+ const result = await listQueues(client, vhost);
57
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
58
+ });
59
+ server.tool("peek_messages", "View messages in a queue without consuming them", {
60
+ queue: z.string().describe("Queue name"),
61
+ count: z
62
+ .number()
63
+ .int()
64
+ .min(1)
65
+ .max(50)
66
+ .default(5)
67
+ .describe("Number of messages to peek (default 5, max 50)"),
68
+ vhost: z
69
+ .string()
70
+ .default("/")
71
+ .describe("RabbitMQ vhost (default: '/')"),
72
+ }, async ({ queue, count, vhost }) => {
73
+ const result = await peekMessages(client, vhost, queue, count);
74
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
75
+ });
76
+ server.tool("inspect_queue", "View messages in a queue and validate each against its schema", {
77
+ queue: z.string().describe("Queue name"),
78
+ count: z
79
+ .number()
80
+ .int()
81
+ .min(1)
82
+ .max(50)
83
+ .default(5)
84
+ .describe("Number of messages to inspect (default 5, max 50)"),
85
+ vhost: z
86
+ .string()
87
+ .default("/")
88
+ .describe("RabbitMQ vhost (default: '/')"),
89
+ }, async ({ queue, count, vhost }) => {
90
+ const result = await inspectQueue(client, validator, vhost, queue, count);
91
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
92
+ });
93
+ server.tool("list_exchanges", "List all RabbitMQ exchanges", {
94
+ vhost: z
95
+ .string()
96
+ .default("/")
97
+ .describe("RabbitMQ vhost (default: '/')"),
98
+ }, async ({ vhost }) => {
99
+ const result = await listExchanges(client, vhost);
100
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
101
+ });
102
+ server.tool("list_bindings", "List bindings between exchanges and queues", {
103
+ vhost: z
104
+ .string()
105
+ .default("/")
106
+ .describe("RabbitMQ vhost (default: '/')"),
107
+ }, async ({ vhost }) => {
108
+ const result = await listBindings(client, vhost);
109
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
110
+ });
111
+ server.tool("publish_message", "Publish a message to a RabbitMQ exchange. Optionally validates against a schema before publishing — if validation fails, the message is NOT sent.", {
112
+ exchange: z
113
+ .string()
114
+ .describe("Exchange name ('amq.default' for direct-to-queue)"),
115
+ routing_key: z.string().describe("Routing key"),
116
+ payload: z.string().describe("JSON message payload"),
117
+ message_type: z
118
+ .string()
119
+ .optional()
120
+ .describe("Message type (e.g. 'order.created'), used for schema lookup"),
121
+ headers: z
122
+ .record(z.unknown())
123
+ .optional()
124
+ .describe("Optional message headers"),
125
+ validate: z
126
+ .boolean()
127
+ .default(true)
128
+ .describe("Validate before publishing (default: true)"),
129
+ vhost: z
130
+ .string()
131
+ .default("/")
132
+ .describe("RabbitMQ vhost (default: '/')"),
133
+ }, async ({ exchange, routing_key, payload, message_type, headers, validate, vhost }) => {
134
+ const result = await publishMessage(client, validator, {
135
+ exchange,
136
+ routing_key,
137
+ payload,
138
+ message_type,
139
+ headers,
140
+ validate,
141
+ vhost,
142
+ });
143
+ return {
144
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
145
+ };
146
+ });
147
+ server.tool("purge_queue", "Remove all messages from a RabbitMQ queue. Returns the number of messages purged.", {
148
+ queue: z.string().describe("Queue name"),
149
+ vhost: z
150
+ .string()
151
+ .default("/")
152
+ .describe("RabbitMQ vhost (default: '/')"),
153
+ }, async ({ queue, vhost }) => {
154
+ const result = await purgeQueue(client, vhost, queue);
155
+ return {
156
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
157
+ };
158
+ });
159
+ server.tool("create_queue", "Create a new RabbitMQ queue. Idempotent if settings match; errors if the queue exists with different settings.", {
160
+ queue: z.string().describe("Queue name"),
161
+ durable: z
162
+ .boolean()
163
+ .default(false)
164
+ .describe("Survive broker restart (default: false)"),
165
+ auto_delete: z
166
+ .boolean()
167
+ .default(false)
168
+ .describe("Delete when last consumer disconnects (default: false)"),
169
+ vhost: z
170
+ .string()
171
+ .default("/")
172
+ .describe("RabbitMQ vhost (default: '/')"),
173
+ }, async ({ queue, durable, auto_delete, vhost }) => {
174
+ const result = await createQueue(client, {
175
+ queue,
176
+ durable,
177
+ auto_delete,
178
+ vhost,
179
+ });
180
+ return {
181
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
182
+ };
183
+ });
184
+ server.tool("create_binding", "Create a binding from an exchange to a queue with a routing key.", {
185
+ exchange: z.string().describe("Source exchange name"),
186
+ queue: z.string().describe("Destination queue name"),
187
+ routing_key: z
188
+ .string()
189
+ .default("")
190
+ .describe("Routing key (default: '')"),
191
+ vhost: z
192
+ .string()
193
+ .default("/")
194
+ .describe("RabbitMQ vhost (default: '/')"),
195
+ }, async ({ exchange, queue, routing_key, vhost }) => {
196
+ const result = await createBinding(client, {
197
+ exchange,
198
+ queue,
199
+ routing_key,
200
+ vhost,
201
+ });
202
+ return {
203
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
204
+ };
205
+ });
206
+ return server;
207
+ }
208
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { RabbitMQClient } from "../rabbitmq/client.js";
2
+ export interface CreateBindingParams {
3
+ exchange: string;
4
+ queue: string;
5
+ routing_key: string;
6
+ vhost: string;
7
+ }
8
+ export interface CreateBindingResult {
9
+ exchange: string;
10
+ queue: string;
11
+ routing_key: string;
12
+ vhost: string;
13
+ }
14
+ export declare function createBinding(client: RabbitMQClient, params: CreateBindingParams): Promise<CreateBindingResult>;
15
+ //# sourceMappingURL=create-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-binding.d.ts","sourceRoot":"","sources":["../../src/tools/create-binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAc9B"}
@@ -0,0 +1,10 @@
1
+ export async function createBinding(client, params) {
2
+ await client.createBinding(params.vhost, params.exchange, params.queue, params.routing_key);
3
+ return {
4
+ exchange: params.exchange,
5
+ queue: params.queue,
6
+ routing_key: params.routing_key,
7
+ vhost: params.vhost,
8
+ };
9
+ }
10
+ //# sourceMappingURL=create-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-binding.js","sourceRoot":"","sources":["../../src/tools/create-binding.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAsB,EACtB,MAA2B;IAE3B,MAAM,MAAM,CAAC,aAAa,CACxB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,WAAW,CACnB,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { RabbitMQClient } from "../rabbitmq/client.js";
2
+ export interface CreateQueueParams {
3
+ queue: string;
4
+ durable: boolean;
5
+ auto_delete: boolean;
6
+ vhost: string;
7
+ }
8
+ export interface CreateQueueResult {
9
+ queue: string;
10
+ durable: boolean;
11
+ auto_delete: boolean;
12
+ vhost: string;
13
+ }
14
+ export declare function createQueue(client: RabbitMQClient, params: CreateQueueParams): Promise<CreateQueueResult>;
15
+ //# sourceMappingURL=create-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-queue.d.ts","sourceRoot":"","sources":["../../src/tools/create-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAY5B"}
@@ -0,0 +1,13 @@
1
+ export async function createQueue(client, params) {
2
+ await client.createQueue(params.vhost, params.queue, {
3
+ durable: params.durable,
4
+ auto_delete: params.auto_delete,
5
+ });
6
+ return {
7
+ queue: params.queue,
8
+ durable: params.durable,
9
+ auto_delete: params.auto_delete,
10
+ vhost: params.vhost,
11
+ };
12
+ }
13
+ //# sourceMappingURL=create-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-queue.js","sourceRoot":"","sources":["../../src/tools/create-queue.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAsB,EACtB,MAAyB;IAEzB,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;QACnD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { SchemaValidator } from "../schemas/validator.js";
2
+ export interface GetSchemaResult {
3
+ found: boolean;
4
+ name: string;
5
+ schema?: Record<string, unknown>;
6
+ error?: string;
7
+ }
8
+ export declare function getSchema(validator: SchemaValidator, name: string): GetSchemaResult;
9
+ //# sourceMappingURL=get-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-schema.d.ts","sourceRoot":"","sources":["../../src/tools/get-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CACvB,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,MAAM,GACX,eAAe,CAgBjB"}
@@ -0,0 +1,16 @@
1
+ export function getSchema(validator, name) {
2
+ const entry = validator.getSchema(name);
3
+ if (!entry) {
4
+ return {
5
+ found: false,
6
+ name,
7
+ error: `Schema "${name}" not found. Use list_schemas to see available schemas.`,
8
+ };
9
+ }
10
+ return {
11
+ found: true,
12
+ name: entry.name,
13
+ schema: entry.schema,
14
+ };
15
+ }
16
+ //# sourceMappingURL=get-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-schema.js","sourceRoot":"","sources":["../../src/tools/get-schema.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,SAAS,CACvB,SAA0B,EAC1B,IAAY;IAEZ,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,IAAI;YACJ,KAAK,EAAE,WAAW,IAAI,yDAAyD;SAChF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAA4C;KAC3D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { RabbitMQClient } from "../rabbitmq/client.js";
2
+ import type { SchemaValidator } from "../schemas/validator.js";
3
+ export interface InspectedMessage {
4
+ payload: string;
5
+ parsedPayload: unknown;
6
+ properties: {
7
+ correlation_id?: string;
8
+ message_id?: string;
9
+ type?: string;
10
+ timestamp?: number;
11
+ headers?: Record<string, unknown>;
12
+ };
13
+ exchange: string;
14
+ routing_key: string;
15
+ validation: {
16
+ schemaName: string | null;
17
+ valid: boolean | null;
18
+ errors: Array<{
19
+ path: string;
20
+ message: string;
21
+ }>;
22
+ };
23
+ }
24
+ export interface InspectQueueResult {
25
+ queue: string;
26
+ messages: InspectedMessage[];
27
+ count: number;
28
+ summary: {
29
+ total: number;
30
+ valid: number;
31
+ invalid: number;
32
+ noSchema: number;
33
+ };
34
+ }
35
+ export declare function inspectQueue(client: RabbitMQClient, validator: SchemaValidator, vhost: string, queue: string, count: number): Promise<InspectQueueResult>;
36
+ //# sourceMappingURL=inspect-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-queue.d.ts","sourceRoot":"","sources":["../../src/tools/inspect-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE;QACV,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,CA2E7B"}
@@ -0,0 +1,74 @@
1
+ export async function inspectQueue(client, validator, vhost, queue, count) {
2
+ const messages = await client.peekMessages(vhost, queue, count);
3
+ let validCount = 0;
4
+ let invalidCount = 0;
5
+ let noSchemaCount = 0;
6
+ const inspected = messages.map((m) => {
7
+ const schemaName = m.properties.type ?? null;
8
+ let parsedPayload = null;
9
+ let valid = null;
10
+ let errors = [];
11
+ try {
12
+ parsedPayload = JSON.parse(m.payload);
13
+ }
14
+ catch {
15
+ parsedPayload = m.payload;
16
+ }
17
+ if (schemaName) {
18
+ const schemaEntry = validator.getSchema(schemaName);
19
+ if (schemaEntry) {
20
+ const result = validator.validate(schemaName, parsedPayload);
21
+ valid = result.valid;
22
+ errors = result.errors;
23
+ if (valid) {
24
+ validCount++;
25
+ }
26
+ else {
27
+ invalidCount++;
28
+ }
29
+ }
30
+ else {
31
+ noSchemaCount++;
32
+ errors = [
33
+ {
34
+ path: "",
35
+ message: `Schema "${schemaName}" not found`,
36
+ },
37
+ ];
38
+ }
39
+ }
40
+ else {
41
+ noSchemaCount++;
42
+ }
43
+ return {
44
+ payload: m.payload,
45
+ parsedPayload,
46
+ properties: {
47
+ correlation_id: m.properties.correlation_id,
48
+ message_id: m.properties.message_id,
49
+ type: m.properties.type,
50
+ timestamp: m.properties.timestamp,
51
+ headers: m.properties.headers,
52
+ },
53
+ exchange: m.exchange,
54
+ routing_key: m.routing_key,
55
+ validation: {
56
+ schemaName,
57
+ valid,
58
+ errors,
59
+ },
60
+ };
61
+ });
62
+ return {
63
+ queue,
64
+ messages: inspected,
65
+ count: inspected.length,
66
+ summary: {
67
+ total: inspected.length,
68
+ valid: validCount,
69
+ invalid: invalidCount,
70
+ noSchema: noSchemaCount,
71
+ },
72
+ };
73
+ }
74
+ //# sourceMappingURL=inspect-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-queue.js","sourceRoot":"","sources":["../../src/tools/inspect-queue.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,SAA0B,EAC1B,KAAa,EACb,KAAa,EACb,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAEhE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAuB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC;QAC7C,IAAI,aAAa,GAAY,IAAI,CAAC;QAClC,IAAI,KAAK,GAAmB,IAAI,CAAC;QACjC,IAAI,MAAM,GAA6C,EAAE,CAAC;QAE1D,IAAI,CAAC;YACH,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC;QAC5B,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;gBAC7D,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBACrB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBAEvB,IAAI,KAAK,EAAE,CAAC;oBACV,UAAU,EAAE,CAAC;gBACf,CAAC;qBAAM,CAAC;oBACN,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,aAAa,EAAE,CAAC;gBAChB,MAAM,GAAG;oBACP;wBACE,IAAI,EAAE,EAAE;wBACR,OAAO,EAAE,WAAW,UAAU,aAAa;qBAC5C;iBACF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,aAAa;YACb,UAAU,EAAE;gBACV,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,cAAc;gBAC3C,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU;gBACnC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI;gBACvB,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS;gBACjC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO;aAC9B;YACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE;gBACV,UAAU;gBACV,KAAK;gBACL,MAAM;aACP;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS,CAAC,MAAM;QACvB,OAAO,EAAE;YACP,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,aAAa;SACxB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { RabbitMQClient } from "../rabbitmq/client.js";
2
+ export interface ListBindingsResult {
3
+ bindings: Array<{
4
+ source: string;
5
+ destination: string;
6
+ destination_type: string;
7
+ routing_key: string;
8
+ }>;
9
+ }
10
+ export declare function listBindings(client: RabbitMQClient, vhost: string): Promise<ListBindingsResult>;
11
+ //# sourceMappingURL=list-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-bindings.d.ts","sourceRoot":"","sources":["../../src/tools/list-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC,CAW7B"}
@@ -0,0 +1,12 @@
1
+ export async function listBindings(client, vhost) {
2
+ const bindings = await client.listBindings(vhost);
3
+ return {
4
+ bindings: bindings.map((b) => ({
5
+ source: b.source,
6
+ destination: b.destination,
7
+ destination_type: b.destination_type,
8
+ routing_key: b.routing_key,
9
+ })),
10
+ };
11
+ }
12
+ //# sourceMappingURL=list-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-bindings.js","sourceRoot":"","sources":["../../src/tools/list-bindings.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAElD,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { RabbitMQClient } from "../rabbitmq/client.js";
2
+ export interface ListExchangesResult {
3
+ exchanges: Array<{
4
+ name: string;
5
+ type: string;
6
+ durable: boolean;
7
+ }>;
8
+ }
9
+ export declare function listExchanges(client: RabbitMQClient, vhost: string): Promise<ListExchangesResult>;
10
+ //# sourceMappingURL=list-exchanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-exchanges.d.ts","sourceRoot":"","sources":["../../src/tools/list-exchanges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}
@@ -0,0 +1,11 @@
1
+ export async function listExchanges(client, vhost) {
2
+ const exchanges = await client.listExchanges(vhost);
3
+ return {
4
+ exchanges: exchanges.map((e) => ({
5
+ name: e.name,
6
+ type: e.type,
7
+ durable: e.durable,
8
+ })),
9
+ };
10
+ }
11
+ //# sourceMappingURL=list-exchanges.js.map