@agentuity/server 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/api.d.ts +11 -6
- package/dist/api/api.d.ts.map +1 -1
- package/dist/api/api.js +19 -12
- package/dist/api/api.js.map +1 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/org/env-delete.d.ts.map +1 -1
- package/dist/api/org/env-delete.js.map +1 -1
- package/dist/api/org/env-get.d.ts.map +1 -1
- package/dist/api/org/env-get.js.map +1 -1
- package/dist/api/org/env-update.d.ts.map +1 -1
- package/dist/api/org/env-update.js.map +1 -1
- package/dist/api/queue/analytics.d.ts +108 -0
- package/dist/api/queue/analytics.d.ts.map +1 -0
- package/dist/api/queue/analytics.js +245 -0
- package/dist/api/queue/analytics.js.map +1 -0
- package/dist/api/queue/destinations.d.ts +108 -0
- package/dist/api/queue/destinations.d.ts.map +1 -0
- package/dist/api/queue/destinations.js +238 -0
- package/dist/api/queue/destinations.js.map +1 -0
- package/dist/api/queue/dlq.d.ts +100 -0
- package/dist/api/queue/dlq.d.ts.map +1 -0
- package/dist/api/queue/dlq.js +204 -0
- package/dist/api/queue/dlq.js.map +1 -0
- package/dist/api/queue/index.d.ts +55 -0
- package/dist/api/queue/index.d.ts.map +1 -0
- package/dist/api/queue/index.js +86 -0
- package/dist/api/queue/index.js.map +1 -0
- package/dist/api/queue/messages.d.ts +332 -0
- package/dist/api/queue/messages.d.ts.map +1 -0
- package/dist/api/queue/messages.js +637 -0
- package/dist/api/queue/messages.js.map +1 -0
- package/dist/api/queue/queues.d.ts +153 -0
- package/dist/api/queue/queues.d.ts.map +1 -0
- package/dist/api/queue/queues.js +319 -0
- package/dist/api/queue/queues.js.map +1 -0
- package/dist/api/queue/sources.d.ts +132 -0
- package/dist/api/queue/sources.d.ts.map +1 -0
- package/dist/api/queue/sources.js +285 -0
- package/dist/api/queue/sources.js.map +1 -0
- package/dist/api/queue/types.d.ts +1129 -0
- package/dist/api/queue/types.d.ts.map +1 -0
- package/dist/api/queue/types.js +949 -0
- package/dist/api/queue/types.js.map +1 -0
- package/dist/api/queue/util.d.ts +262 -0
- package/dist/api/queue/util.d.ts.map +1 -0
- package/dist/api/queue/util.js +171 -0
- package/dist/api/queue/util.js.map +1 -0
- package/dist/api/queue/validation.d.ts +247 -0
- package/dist/api/queue/validation.d.ts.map +1 -0
- package/dist/api/queue/validation.js +513 -0
- package/dist/api/queue/validation.js.map +1 -0
- package/dist/api/sandbox/get.d.ts.map +1 -1
- package/dist/api/sandbox/get.js +5 -0
- package/dist/api/sandbox/get.js.map +1 -1
- package/dist/api/sandbox/index.d.ts +3 -3
- package/dist/api/sandbox/index.d.ts.map +1 -1
- package/dist/api/sandbox/index.js +1 -1
- package/dist/api/sandbox/index.js.map +1 -1
- package/dist/api/sandbox/run.d.ts.map +1 -1
- package/dist/api/sandbox/run.js +5 -2
- package/dist/api/sandbox/run.js.map +1 -1
- package/dist/api/sandbox/snapshot-build.d.ts +2 -0
- package/dist/api/sandbox/snapshot-build.d.ts.map +1 -1
- package/dist/api/sandbox/snapshot-build.js +4 -0
- package/dist/api/sandbox/snapshot-build.js.map +1 -1
- package/dist/api/sandbox/snapshot.d.ts +143 -1
- package/dist/api/sandbox/snapshot.d.ts.map +1 -1
- package/dist/api/sandbox/snapshot.js +183 -4
- package/dist/api/sandbox/snapshot.js.map +1 -1
- package/package.json +4 -4
- package/src/api/api.ts +62 -13
- package/src/api/index.ts +1 -0
- package/src/api/org/env-delete.ts +1 -4
- package/src/api/org/env-get.ts +1 -4
- package/src/api/org/env-update.ts +1 -4
- package/src/api/queue/analytics.ts +313 -0
- package/src/api/queue/destinations.ts +321 -0
- package/src/api/queue/dlq.ts +283 -0
- package/src/api/queue/index.ts +261 -0
- package/src/api/queue/messages.ts +875 -0
- package/src/api/queue/queues.ts +448 -0
- package/src/api/queue/sources.ts +384 -0
- package/src/api/queue/types.ts +1253 -0
- package/src/api/queue/util.ts +204 -0
- package/src/api/queue/validation.ts +560 -0
- package/src/api/sandbox/get.ts +5 -0
- package/src/api/sandbox/index.ts +13 -1
- package/src/api/sandbox/run.ts +5 -2
- package/src/api/sandbox/snapshot-build.ts +4 -0
- package/src/api/sandbox/snapshot.ts +223 -5
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { APIResponseSchema, APIResponseSchemaNoData } from '../api';
|
|
3
|
+
import { DeadLetterMessageSchema, MessageSchema, } from './types';
|
|
4
|
+
import { QueueError, QueueNotFoundError, MessageNotFoundError, queueApiPath, queueApiPathWithQuery, buildQueueHeaders, } from './util';
|
|
5
|
+
import { validateQueueName, validateMessageId, validateLimit, validateOffset } from './validation';
|
|
6
|
+
const DlqListResponseSchema = APIResponseSchema(z.object({
|
|
7
|
+
messages: z.array(DeadLetterMessageSchema),
|
|
8
|
+
total: z.number().optional(),
|
|
9
|
+
}));
|
|
10
|
+
const ReplayDlqResponseSchema = APIResponseSchema(z.object({ message: MessageSchema }));
|
|
11
|
+
const DeleteDlqResponseSchema = APIResponseSchemaNoData();
|
|
12
|
+
/**
|
|
13
|
+
* List messages in the dead letter queue.
|
|
14
|
+
*
|
|
15
|
+
* Retrieves messages that failed processing after exhausting all retries.
|
|
16
|
+
* These messages can be inspected, replayed back to the main queue, or deleted.
|
|
17
|
+
*
|
|
18
|
+
* @param client - The API client instance
|
|
19
|
+
* @param queueName - The name of the queue whose DLQ to list
|
|
20
|
+
* @param params - Optional pagination parameters (limit, offset)
|
|
21
|
+
* @returns Object containing dead letter messages and optional total count
|
|
22
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name, limit, or offset)
|
|
23
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
24
|
+
* @throws {QueueError} If the API request fails
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // List first 10 dead letter messages
|
|
29
|
+
* const result = await listDeadLetterMessages(client, 'order-queue', { limit: 10 });
|
|
30
|
+
* for (const msg of result.messages) {
|
|
31
|
+
* console.log(`Failed message ${msg.id}: ${msg.failure_reason}`);
|
|
32
|
+
* console.log(`Attempts: ${msg.delivery_attempts}, Moved at: ${msg.moved_at}`);
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export async function listDeadLetterMessages(client, queueName, params, options) {
|
|
37
|
+
validateQueueName(queueName);
|
|
38
|
+
if (params?.limit !== undefined) {
|
|
39
|
+
validateLimit(params.limit);
|
|
40
|
+
}
|
|
41
|
+
if (params?.offset !== undefined) {
|
|
42
|
+
validateOffset(params.offset);
|
|
43
|
+
}
|
|
44
|
+
const searchParams = new URLSearchParams();
|
|
45
|
+
if (params?.limit !== undefined) {
|
|
46
|
+
searchParams.set('limit', String(params.limit));
|
|
47
|
+
}
|
|
48
|
+
if (params?.offset !== undefined) {
|
|
49
|
+
searchParams.set('offset', String(params.offset));
|
|
50
|
+
}
|
|
51
|
+
const queryString = searchParams.toString();
|
|
52
|
+
const url = queueApiPathWithQuery('dlq/list', queryString || undefined, queueName);
|
|
53
|
+
const resp = await client.get(url, DlqListResponseSchema, undefined, buildQueueHeaders(options?.orgId));
|
|
54
|
+
if (resp.success) {
|
|
55
|
+
return { messages: resp.data.messages, total: resp.data.total };
|
|
56
|
+
}
|
|
57
|
+
if (resp.message?.includes('not found')) {
|
|
58
|
+
throw new QueueNotFoundError({
|
|
59
|
+
queueName,
|
|
60
|
+
message: resp.message,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
throw new QueueError({
|
|
64
|
+
queueName,
|
|
65
|
+
message: resp.message || 'Failed to list dead letter messages',
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Replay a dead letter message back to the main queue.
|
|
70
|
+
*
|
|
71
|
+
* Moves a message from the dead letter queue back to the main queue for
|
|
72
|
+
* reprocessing. The message state is reset to pending and retry count is
|
|
73
|
+
* preserved. Use this after fixing the underlying issue that caused the failure.
|
|
74
|
+
*
|
|
75
|
+
* @param client - The API client instance
|
|
76
|
+
* @param queueName - The name of the queue
|
|
77
|
+
* @param messageId - The message ID to replay (prefixed with msg_)
|
|
78
|
+
* @returns The replayed message with updated state
|
|
79
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name or message ID)
|
|
80
|
+
* @throws {MessageNotFoundError} If the message does not exist in the DLQ
|
|
81
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
82
|
+
* @throws {QueueError} If the API request fails
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* // Replay a failed message after fixing the bug
|
|
87
|
+
* const message = await replayDeadLetterMessage(client, 'order-queue', 'msg_abc123');
|
|
88
|
+
* console.log(`Replayed message ${message.id}, now in state: ${message.state}`);
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
export async function replayDeadLetterMessage(client, queueName, messageId, options) {
|
|
92
|
+
validateQueueName(queueName);
|
|
93
|
+
validateMessageId(messageId);
|
|
94
|
+
const url = queueApiPath('dlq/replay', queueName, messageId);
|
|
95
|
+
const resp = await client.post(url, undefined, ReplayDlqResponseSchema, undefined, undefined, buildQueueHeaders(options?.orgId));
|
|
96
|
+
if (resp.success) {
|
|
97
|
+
return resp.data.message;
|
|
98
|
+
}
|
|
99
|
+
if (resp.message?.includes('message') && resp.message?.includes('not found')) {
|
|
100
|
+
throw new MessageNotFoundError({
|
|
101
|
+
queueName,
|
|
102
|
+
messageId,
|
|
103
|
+
message: resp.message,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (resp.message?.includes('queue') && resp.message?.includes('not found')) {
|
|
107
|
+
throw new QueueNotFoundError({
|
|
108
|
+
queueName,
|
|
109
|
+
message: resp.message,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
throw new QueueError({
|
|
113
|
+
queueName,
|
|
114
|
+
message: resp.message || 'Failed to replay dead letter message',
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Purge all messages from a dead letter queue.
|
|
119
|
+
*
|
|
120
|
+
* Permanently deletes all messages in the dead letter queue. This operation
|
|
121
|
+
* cannot be undone. Use with caution - consider reviewing or exporting
|
|
122
|
+
* messages before purging.
|
|
123
|
+
*
|
|
124
|
+
* @param client - The API client instance
|
|
125
|
+
* @param queueName - The name of the queue whose DLQ to purge
|
|
126
|
+
* @returns void
|
|
127
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name)
|
|
128
|
+
* @throws {QueueNotFoundError} If the queue does not exist
|
|
129
|
+
* @throws {QueueError} If the API request fails
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* // Purge all dead letter messages after investigation
|
|
134
|
+
* await purgeDeadLetter(client, 'order-queue');
|
|
135
|
+
* console.log('All dead letter messages have been deleted');
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export async function purgeDeadLetter(client, queueName, options) {
|
|
139
|
+
validateQueueName(queueName);
|
|
140
|
+
const url = queueApiPath('dlq/purge', queueName);
|
|
141
|
+
const resp = await client.delete(url, DeleteDlqResponseSchema, undefined, buildQueueHeaders(options?.orgId));
|
|
142
|
+
if (resp.success) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (resp.message?.includes('not found')) {
|
|
146
|
+
throw new QueueNotFoundError({
|
|
147
|
+
queueName,
|
|
148
|
+
message: resp.message,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
throw new QueueError({
|
|
152
|
+
queueName,
|
|
153
|
+
message: resp.message || 'Failed to purge dead letter queue',
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Delete a specific message from the dead letter queue.
|
|
158
|
+
*
|
|
159
|
+
* Permanently removes a single message from the dead letter queue.
|
|
160
|
+
* Use this when you've determined that a specific failed message
|
|
161
|
+
* should not be retried and can be discarded.
|
|
162
|
+
*
|
|
163
|
+
* @param client - The API client instance
|
|
164
|
+
* @param queueName - The name of the queue
|
|
165
|
+
* @param messageId - The message ID to delete (prefixed with msg_)
|
|
166
|
+
* @returns void
|
|
167
|
+
* @throws {QueueValidationError} If validation fails (invalid queue name or message ID)
|
|
168
|
+
* @throws {MessageNotFoundError} If the message does not exist in the DLQ
|
|
169
|
+
* @throws {QueueError} If the API request fails
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* // Delete a message that cannot be recovered
|
|
174
|
+
* await deleteDeadLetterMessage(client, 'order-queue', 'msg_abc123');
|
|
175
|
+
* console.log('Dead letter message deleted');
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
export async function deleteDeadLetterMessage(client, queueName, messageId, options) {
|
|
179
|
+
validateQueueName(queueName);
|
|
180
|
+
validateMessageId(messageId);
|
|
181
|
+
const url = queueApiPath('dlq/delete', queueName, messageId);
|
|
182
|
+
const resp = await client.delete(url, DeleteDlqResponseSchema, undefined, buildQueueHeaders(options?.orgId));
|
|
183
|
+
if (resp.success) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (resp.message?.includes('queue') && resp.message?.includes('not found')) {
|
|
187
|
+
throw new QueueNotFoundError({
|
|
188
|
+
queueName,
|
|
189
|
+
message: resp.message,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
if (resp.message?.includes('message') && resp.message?.includes('not found')) {
|
|
193
|
+
throw new MessageNotFoundError({
|
|
194
|
+
queueName,
|
|
195
|
+
messageId,
|
|
196
|
+
message: resp.message,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
throw new QueueError({
|
|
200
|
+
queueName,
|
|
201
|
+
message: resp.message || 'Failed to delete dead letter message',
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=dlq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dlq.js","sourceRoot":"","sources":["../../../src/api/queue/dlq.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module queue
|
|
3
|
+
*
|
|
4
|
+
* Queue API client for managing message queues, messages, destinations, and dead letter queues.
|
|
5
|
+
*
|
|
6
|
+
* This module provides a complete client for the Agentuity Queue API, supporting:
|
|
7
|
+
* - **Queue Management**: Create, read, update, and delete message queues
|
|
8
|
+
* - **Message Operations**: Publish, consume, acknowledge, and manage messages
|
|
9
|
+
* - **Destinations**: Configure webhook endpoints for automatic message delivery
|
|
10
|
+
* - **Dead Letter Queue**: Handle failed messages that exceeded retry limits
|
|
11
|
+
*
|
|
12
|
+
* @example Basic Queue Operations
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { createQueue, publishMessage, receiveMessage, ackMessage } from '@agentuity/server';
|
|
15
|
+
*
|
|
16
|
+
* // Create a worker queue
|
|
17
|
+
* const queue = await createQueue(client, {
|
|
18
|
+
* name: 'order-processing',
|
|
19
|
+
* queue_type: 'worker',
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Publish a message
|
|
23
|
+
* await publishMessage(client, 'order-processing', {
|
|
24
|
+
* payload: { orderId: 123 },
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Receive and acknowledge a message
|
|
28
|
+
* const message = await receiveMessage(client, 'order-processing');
|
|
29
|
+
* if (message) {
|
|
30
|
+
* // Process the message...
|
|
31
|
+
* await ackMessage(client, 'order-processing', message.id);
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example Webhook Destinations
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { createDestination } from '@agentuity/server';
|
|
38
|
+
*
|
|
39
|
+
* // Messages are automatically delivered to this URL
|
|
40
|
+
* await createDestination(client, 'order-processing', {
|
|
41
|
+
* destination_type: 'http',
|
|
42
|
+
* config: { url: 'https://api.example.com/webhook' },
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export { QueueTypeSchema, QueueSettingsSchema, QueueStatsSchema, QueueSchema, MessageStateSchema, MessageSchema, DestinationTypeSchema, HttpDestinationConfigSchema, DestinationStatsSchema, DestinationSchema, DeadLetterMessageSchema, CreateQueueRequestSchema, UpdateQueueRequestSchema, ListQueuesRequestSchema, PublishMessageRequestSchema, BatchPublishMessagesRequestSchema, ListMessagesRequestSchema, ConsumeMessagesRequestSchema, CreateDestinationRequestSchema, UpdateDestinationRequestSchema, ListDlqRequestSchema, type QueueType, type QueueSettings, type QueueStats, type Queue, type MessageState, type Message, type DestinationType, type HttpDestinationConfig, type DestinationStats, type Destination, type DeadLetterMessage, type CreateQueueRequest, type UpdateQueueRequest, type ListQueuesRequest, type PublishMessageRequest, type BatchPublishMessagesRequest, type ListMessagesRequest, type ConsumeMessagesRequest, type CreateDestinationRequest, type UpdateDestinationRequest, type ListDlqRequest, type QueueApiOptions, AnalyticsGranularitySchema, TimePeriodSchema, LatencyStatsSchema, QueueCurrentStatsSchema, QueuePeriodStatsSchema, DestinationAnalyticsSchema, QueueAnalyticsSchema, QueueSummarySchema, OrgAnalyticsSummarySchema, OrgAnalyticsSchema, TimeSeriesPointSchema, TimeSeriesDataSchema, SSEStatsEventSchema, type AnalyticsGranularity, type AnalyticsOptions, type StreamAnalyticsOptions, type TimePeriod, type LatencyStats, type QueueCurrentStats, type QueuePeriodStats, type DestinationAnalytics, type QueueAnalytics, type QueueSummary, type OrgAnalyticsSummary, type OrgAnalytics, type TimeSeriesPoint, type TimeSeriesData, type SSEStatsEvent, SourceAuthTypeSchema, SourceSchema, CreateSourceRequestSchema, UpdateSourceRequestSchema, type SourceAuthType, type Source, type CreateSourceRequest, type UpdateSourceRequest, } from './types';
|
|
47
|
+
export { QueueError, QueueNotFoundError, MessageNotFoundError, DestinationNotFoundError, DestinationAlreadyExistsError, QueueInvalidArgumentError, SourceNotFoundError, SourceAlreadyExistsError, } from './util';
|
|
48
|
+
export { createQueue, getQueue, listQueues, updateQueue, deleteQueue, pauseQueue, resumeQueue, } from './queues';
|
|
49
|
+
export { publishMessage, batchPublishMessages, getMessage, getMessageByOffset, listMessages, deleteMessage, replayMessage, consumeMessages, getQueueHead, getQueueTail, receiveMessage, ackMessage, nackMessage, } from './messages';
|
|
50
|
+
export { listDeadLetterMessages, replayDeadLetterMessage, purgeDeadLetter, deleteDeadLetterMessage, } from './dlq';
|
|
51
|
+
export { createDestination, listDestinations, updateDestination, deleteDestination, } from './destinations';
|
|
52
|
+
export { createSource, listSources, getSource, updateSource, deleteSource } from './sources';
|
|
53
|
+
export { getOrgAnalytics, getQueueAnalytics, getQueueTimeSeries, streamOrgAnalytics, streamQueueAnalytics, } from './analytics';
|
|
54
|
+
export { QueueValidationError, validateQueueName, validateQueueType, validatePayload, validateMessageId, validateDestinationId, validateDescription, validatePartitionKey, validateIdempotencyKey, validateTTL, validateVisibilityTimeout, validateMaxRetries, validateMaxInFlight, validateOffset, validateLimit, validateBatchSize, validateWebhookUrl, validateDestinationConfig, validateSourceId, validateSourceName, MAX_QUEUE_NAME_LENGTH, MIN_QUEUE_NAME_LENGTH, MAX_PAYLOAD_SIZE, MAX_DESCRIPTION_LENGTH, MAX_BATCH_SIZE, MAX_METADATA_SIZE, MAX_PARTITION_KEY_LENGTH, MAX_IDEMPOTENCY_KEY_LENGTH, MAX_VISIBILITY_TIMEOUT, MAX_RETRIES, MAX_IN_FLIGHT, MAX_SOURCE_NAME_LENGTH, } from './validation';
|
|
55
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/queue/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module queue
|
|
3
|
+
*
|
|
4
|
+
* Queue API client for managing message queues, messages, destinations, and dead letter queues.
|
|
5
|
+
*
|
|
6
|
+
* This module provides a complete client for the Agentuity Queue API, supporting:
|
|
7
|
+
* - **Queue Management**: Create, read, update, and delete message queues
|
|
8
|
+
* - **Message Operations**: Publish, consume, acknowledge, and manage messages
|
|
9
|
+
* - **Destinations**: Configure webhook endpoints for automatic message delivery
|
|
10
|
+
* - **Dead Letter Queue**: Handle failed messages that exceeded retry limits
|
|
11
|
+
*
|
|
12
|
+
* @example Basic Queue Operations
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { createQueue, publishMessage, receiveMessage, ackMessage } from '@agentuity/server';
|
|
15
|
+
*
|
|
16
|
+
* // Create a worker queue
|
|
17
|
+
* const queue = await createQueue(client, {
|
|
18
|
+
* name: 'order-processing',
|
|
19
|
+
* queue_type: 'worker',
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // Publish a message
|
|
23
|
+
* await publishMessage(client, 'order-processing', {
|
|
24
|
+
* payload: { orderId: 123 },
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Receive and acknowledge a message
|
|
28
|
+
* const message = await receiveMessage(client, 'order-processing');
|
|
29
|
+
* if (message) {
|
|
30
|
+
* // Process the message...
|
|
31
|
+
* await ackMessage(client, 'order-processing', message.id);
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example Webhook Destinations
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import { createDestination } from '@agentuity/server';
|
|
38
|
+
*
|
|
39
|
+
* // Messages are automatically delivered to this URL
|
|
40
|
+
* await createDestination(client, 'order-processing', {
|
|
41
|
+
* destination_type: 'http',
|
|
42
|
+
* config: { url: 'https://api.example.com/webhook' },
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
// ============================================================================
|
|
47
|
+
// Types & Schemas
|
|
48
|
+
// ============================================================================
|
|
49
|
+
export { QueueTypeSchema, QueueSettingsSchema, QueueStatsSchema, QueueSchema, MessageStateSchema, MessageSchema, DestinationTypeSchema, HttpDestinationConfigSchema, DestinationStatsSchema, DestinationSchema, DeadLetterMessageSchema, CreateQueueRequestSchema, UpdateQueueRequestSchema, ListQueuesRequestSchema, PublishMessageRequestSchema, BatchPublishMessagesRequestSchema, ListMessagesRequestSchema, ConsumeMessagesRequestSchema, CreateDestinationRequestSchema, UpdateDestinationRequestSchema, ListDlqRequestSchema,
|
|
50
|
+
// Analytics types
|
|
51
|
+
AnalyticsGranularitySchema, TimePeriodSchema, LatencyStatsSchema, QueueCurrentStatsSchema, QueuePeriodStatsSchema, DestinationAnalyticsSchema, QueueAnalyticsSchema, QueueSummarySchema, OrgAnalyticsSummarySchema, OrgAnalyticsSchema, TimeSeriesPointSchema, TimeSeriesDataSchema, SSEStatsEventSchema,
|
|
52
|
+
// Source types
|
|
53
|
+
SourceAuthTypeSchema, SourceSchema, CreateSourceRequestSchema, UpdateSourceRequestSchema, } from './types';
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Errors
|
|
56
|
+
// ============================================================================
|
|
57
|
+
export { QueueError, QueueNotFoundError, MessageNotFoundError, DestinationNotFoundError, DestinationAlreadyExistsError, QueueInvalidArgumentError, SourceNotFoundError, SourceAlreadyExistsError, } from './util';
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// Queue Operations
|
|
60
|
+
// ============================================================================
|
|
61
|
+
export { createQueue, getQueue, listQueues, updateQueue, deleteQueue, pauseQueue, resumeQueue, } from './queues';
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Message Operations
|
|
64
|
+
// ============================================================================
|
|
65
|
+
export { publishMessage, batchPublishMessages, getMessage, getMessageByOffset, listMessages, deleteMessage, replayMessage, consumeMessages, getQueueHead, getQueueTail, receiveMessage, ackMessage, nackMessage, } from './messages';
|
|
66
|
+
// ============================================================================
|
|
67
|
+
// Dead Letter Queue Operations
|
|
68
|
+
// ============================================================================
|
|
69
|
+
export { listDeadLetterMessages, replayDeadLetterMessage, purgeDeadLetter, deleteDeadLetterMessage, } from './dlq';
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Destination Operations
|
|
72
|
+
// ============================================================================
|
|
73
|
+
export { createDestination, listDestinations, updateDestination, deleteDestination, } from './destinations';
|
|
74
|
+
// ============================================================================
|
|
75
|
+
// Source Operations
|
|
76
|
+
// ============================================================================
|
|
77
|
+
export { createSource, listSources, getSource, updateSource, deleteSource } from './sources';
|
|
78
|
+
// ============================================================================
|
|
79
|
+
// Analytics Operations
|
|
80
|
+
// ============================================================================
|
|
81
|
+
export { getOrgAnalytics, getQueueAnalytics, getQueueTimeSeries, streamOrgAnalytics, streamQueueAnalytics, } from './analytics';
|
|
82
|
+
// ============================================================================
|
|
83
|
+
// Validation Utilities
|
|
84
|
+
// ============================================================================
|
|
85
|
+
export { QueueValidationError, validateQueueName, validateQueueType, validatePayload, validateMessageId, validateDestinationId, validateDescription, validatePartitionKey, validateIdempotencyKey, validateTTL, validateVisibilityTimeout, validateMaxRetries, validateMaxInFlight, validateOffset, validateLimit, validateBatchSize, validateWebhookUrl, validateDestinationConfig, validateSourceId, validateSourceName, MAX_QUEUE_NAME_LENGTH, MIN_QUEUE_NAME_LENGTH, MAX_PAYLOAD_SIZE, MAX_DESCRIPTION_LENGTH, MAX_BATCH_SIZE, MAX_METADATA_SIZE, MAX_PARTITION_KEY_LENGTH, MAX_IDEMPOTENCY_KEY_LENGTH, MAX_VISIBILITY_TIMEOUT, MAX_RETRIES, MAX_IN_FLIGHT, MAX_SOURCE_NAME_LENGTH, } from './validation';
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/queue/index.ts"],"names":[],"mappings":"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"}
|