@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.
Files changed (93) hide show
  1. package/dist/api/api.d.ts +11 -6
  2. package/dist/api/api.d.ts.map +1 -1
  3. package/dist/api/api.js +19 -12
  4. package/dist/api/api.js.map +1 -1
  5. package/dist/api/index.d.ts +1 -0
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +1 -0
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/api/org/env-delete.d.ts.map +1 -1
  10. package/dist/api/org/env-delete.js.map +1 -1
  11. package/dist/api/org/env-get.d.ts.map +1 -1
  12. package/dist/api/org/env-get.js.map +1 -1
  13. package/dist/api/org/env-update.d.ts.map +1 -1
  14. package/dist/api/org/env-update.js.map +1 -1
  15. package/dist/api/queue/analytics.d.ts +108 -0
  16. package/dist/api/queue/analytics.d.ts.map +1 -0
  17. package/dist/api/queue/analytics.js +245 -0
  18. package/dist/api/queue/analytics.js.map +1 -0
  19. package/dist/api/queue/destinations.d.ts +108 -0
  20. package/dist/api/queue/destinations.d.ts.map +1 -0
  21. package/dist/api/queue/destinations.js +238 -0
  22. package/dist/api/queue/destinations.js.map +1 -0
  23. package/dist/api/queue/dlq.d.ts +100 -0
  24. package/dist/api/queue/dlq.d.ts.map +1 -0
  25. package/dist/api/queue/dlq.js +204 -0
  26. package/dist/api/queue/dlq.js.map +1 -0
  27. package/dist/api/queue/index.d.ts +55 -0
  28. package/dist/api/queue/index.d.ts.map +1 -0
  29. package/dist/api/queue/index.js +86 -0
  30. package/dist/api/queue/index.js.map +1 -0
  31. package/dist/api/queue/messages.d.ts +332 -0
  32. package/dist/api/queue/messages.d.ts.map +1 -0
  33. package/dist/api/queue/messages.js +637 -0
  34. package/dist/api/queue/messages.js.map +1 -0
  35. package/dist/api/queue/queues.d.ts +153 -0
  36. package/dist/api/queue/queues.d.ts.map +1 -0
  37. package/dist/api/queue/queues.js +319 -0
  38. package/dist/api/queue/queues.js.map +1 -0
  39. package/dist/api/queue/sources.d.ts +132 -0
  40. package/dist/api/queue/sources.d.ts.map +1 -0
  41. package/dist/api/queue/sources.js +285 -0
  42. package/dist/api/queue/sources.js.map +1 -0
  43. package/dist/api/queue/types.d.ts +1129 -0
  44. package/dist/api/queue/types.d.ts.map +1 -0
  45. package/dist/api/queue/types.js +949 -0
  46. package/dist/api/queue/types.js.map +1 -0
  47. package/dist/api/queue/util.d.ts +262 -0
  48. package/dist/api/queue/util.d.ts.map +1 -0
  49. package/dist/api/queue/util.js +171 -0
  50. package/dist/api/queue/util.js.map +1 -0
  51. package/dist/api/queue/validation.d.ts +247 -0
  52. package/dist/api/queue/validation.d.ts.map +1 -0
  53. package/dist/api/queue/validation.js +513 -0
  54. package/dist/api/queue/validation.js.map +1 -0
  55. package/dist/api/sandbox/get.d.ts.map +1 -1
  56. package/dist/api/sandbox/get.js +5 -0
  57. package/dist/api/sandbox/get.js.map +1 -1
  58. package/dist/api/sandbox/index.d.ts +3 -3
  59. package/dist/api/sandbox/index.d.ts.map +1 -1
  60. package/dist/api/sandbox/index.js +1 -1
  61. package/dist/api/sandbox/index.js.map +1 -1
  62. package/dist/api/sandbox/run.d.ts.map +1 -1
  63. package/dist/api/sandbox/run.js +5 -2
  64. package/dist/api/sandbox/run.js.map +1 -1
  65. package/dist/api/sandbox/snapshot-build.d.ts +2 -0
  66. package/dist/api/sandbox/snapshot-build.d.ts.map +1 -1
  67. package/dist/api/sandbox/snapshot-build.js +4 -0
  68. package/dist/api/sandbox/snapshot-build.js.map +1 -1
  69. package/dist/api/sandbox/snapshot.d.ts +143 -1
  70. package/dist/api/sandbox/snapshot.d.ts.map +1 -1
  71. package/dist/api/sandbox/snapshot.js +183 -4
  72. package/dist/api/sandbox/snapshot.js.map +1 -1
  73. package/package.json +4 -4
  74. package/src/api/api.ts +62 -13
  75. package/src/api/index.ts +1 -0
  76. package/src/api/org/env-delete.ts +1 -4
  77. package/src/api/org/env-get.ts +1 -4
  78. package/src/api/org/env-update.ts +1 -4
  79. package/src/api/queue/analytics.ts +313 -0
  80. package/src/api/queue/destinations.ts +321 -0
  81. package/src/api/queue/dlq.ts +283 -0
  82. package/src/api/queue/index.ts +261 -0
  83. package/src/api/queue/messages.ts +875 -0
  84. package/src/api/queue/queues.ts +448 -0
  85. package/src/api/queue/sources.ts +384 -0
  86. package/src/api/queue/types.ts +1253 -0
  87. package/src/api/queue/util.ts +204 -0
  88. package/src/api/queue/validation.ts +560 -0
  89. package/src/api/sandbox/get.ts +5 -0
  90. package/src/api/sandbox/index.ts +13 -1
  91. package/src/api/sandbox/run.ts +5 -2
  92. package/src/api/sandbox/snapshot-build.ts +4 -0
  93. package/src/api/sandbox/snapshot.ts +223 -5
@@ -0,0 +1,332 @@
1
+ import { APIClient } from '../api';
2
+ import { type Message, type PublishMessageRequest, type BatchPublishMessagesRequest, type ListMessagesRequest, type ConsumeMessagesRequest, type QueueApiOptions } from './types';
3
+ /**
4
+ * Publish a message to a queue.
5
+ *
6
+ * Publishes a single message to the specified queue. The message will be assigned
7
+ * a unique ID and offset.
8
+ *
9
+ * @param client - The API client instance
10
+ * @param queueName - The name of the queue to publish to
11
+ * @param params - Message parameters including payload
12
+ * @returns The published message with assigned ID and offset
13
+ * @throws {QueueValidationError} If validation fails
14
+ * @throws {QueueNotFoundError} If the queue does not exist
15
+ * @throws {QueueError} If the API request fails
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const message = await publishMessage(client, 'order-queue', {
20
+ * payload: { orderId: 123, action: 'process' },
21
+ * metadata: { priority: 'high' },
22
+ * idempotency_key: 'order-123-process',
23
+ * });
24
+ * console.log(`Published message ${message.id} at offset ${message.offset}`);
25
+ * ```
26
+ */
27
+ export declare function publishMessage(client: APIClient, queueName: string, params: PublishMessageRequest, options?: QueueApiOptions): Promise<Message>;
28
+ /**
29
+ * Batch publish multiple messages to a queue.
30
+ *
31
+ * Publishes up to 1000 messages in a single API call. This is more efficient
32
+ * than publishing messages individually.
33
+ *
34
+ * @param client - The API client instance
35
+ * @param queueName - The name of the queue to publish to
36
+ * @param messages - Array of message parameters (max 1000)
37
+ * @returns Object containing the published messages and optionally failed indices
38
+ * @throws {QueueValidationError} If validation fails
39
+ * @throws {QueueNotFoundError} If the queue does not exist
40
+ * @throws {QueueError} If the API request fails
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const result = await batchPublishMessages(client, 'order-queue', [
45
+ * { payload: { orderId: 1 } },
46
+ * { payload: { orderId: 2 } },
47
+ * { payload: { orderId: 3 } },
48
+ * ]);
49
+ * console.log(`Published ${result.messages.length} messages`);
50
+ * ```
51
+ */
52
+ export declare function batchPublishMessages(client: APIClient, queueName: string, messages: BatchPublishMessagesRequest['messages'], options?: QueueApiOptions): Promise<{
53
+ messages: Message[];
54
+ failed?: number[];
55
+ }>;
56
+ /**
57
+ * Get a message by ID.
58
+ *
59
+ * Retrieves a specific message from a queue by its message ID.
60
+ *
61
+ * @param client - The API client instance
62
+ * @param queueName - The name of the queue
63
+ * @param messageId - The message ID (prefixed with msg_)
64
+ * @returns The message details
65
+ * @throws {QueueValidationError} If validation fails
66
+ * @throws {MessageNotFoundError} If the message does not exist
67
+ * @throws {QueueNotFoundError} If the queue does not exist
68
+ * @throws {QueueError} If the API request fails
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const message = await getMessage(client, 'order-queue', 'msg_abc123');
73
+ * console.log(`Message state: ${message.state}`);
74
+ * ```
75
+ */
76
+ export declare function getMessage(client: APIClient, queueName: string, messageId: string, options?: QueueApiOptions): Promise<Message>;
77
+ /**
78
+ * Get a message by its offset position.
79
+ *
80
+ * Retrieves a specific message from a queue by its offset (sequential position).
81
+ * Useful for log-style consumption where you track position by offset.
82
+ *
83
+ * @param client - The API client instance
84
+ * @param queueName - The name of the queue
85
+ * @param offset - The message offset (0-based sequential position)
86
+ * @returns The message at the specified offset
87
+ * @throws {QueueValidationError} If validation fails
88
+ * @throws {MessageNotFoundError} If no message exists at the offset
89
+ * @throws {QueueError} If the API request fails
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const message = await getMessageByOffset(client, 'events', 42);
94
+ * console.log(`Message at offset 42: ${message.id}`);
95
+ * ```
96
+ */
97
+ export declare function getMessageByOffset(client: APIClient, queueName: string, offset: number, options?: QueueApiOptions): Promise<Message>;
98
+ /**
99
+ * List messages in a queue.
100
+ *
101
+ * Retrieves messages from a queue with optional filtering and pagination.
102
+ * Supports filtering by state and pagination via limit/offset.
103
+ *
104
+ * @param client - The API client instance
105
+ * @param queueName - The name of the queue
106
+ * @param params - Optional filtering and pagination parameters
107
+ * @param params.limit - Maximum number of messages to return (1-1000)
108
+ * @param params.offset - Starting offset for pagination
109
+ * @param params.state - Filter by message state (pending, processing, completed, failed, dead)
110
+ * @returns Object containing messages array and optional total count
111
+ * @throws {QueueValidationError} If validation fails
112
+ * @throws {QueueNotFoundError} If the queue does not exist
113
+ * @throws {QueueError} If the API request fails
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * // List first 10 pending messages
118
+ * const result = await listMessages(client, 'order-queue', {
119
+ * limit: 10,
120
+ * state: 'pending',
121
+ * });
122
+ * console.log(`Found ${result.messages.length} pending messages`);
123
+ * ```
124
+ */
125
+ export declare function listMessages(client: APIClient, queueName: string, params?: ListMessagesRequest, options?: QueueApiOptions): Promise<{
126
+ messages: Message[];
127
+ total?: number;
128
+ }>;
129
+ /**
130
+ * Delete a message from a queue.
131
+ *
132
+ * Permanently removes a message from the queue. This operation cannot be undone.
133
+ *
134
+ * @param client - The API client instance
135
+ * @param queueName - The name of the queue
136
+ * @param messageId - The message ID to delete (prefixed with msg_)
137
+ * @returns void
138
+ * @throws {QueueValidationError} If validation fails
139
+ * @throws {MessageNotFoundError} If the message does not exist
140
+ * @throws {QueueError} If the API request fails
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * await deleteMessage(client, 'order-queue', 'msg_abc123');
145
+ * console.log('Message deleted');
146
+ * ```
147
+ */
148
+ export declare function deleteMessage(client: APIClient, queueName: string, messageId: string, options?: QueueApiOptions): Promise<void>;
149
+ /**
150
+ * Replay a message.
151
+ *
152
+ * Re-queues a previously processed message for reprocessing. The message
153
+ * is reset to pending state and will be delivered again to consumers.
154
+ * Useful for retrying failed messages or reprocessing historical data.
155
+ *
156
+ * @param client - The API client instance
157
+ * @param queueName - The name of the queue
158
+ * @param messageId - The message ID to replay (prefixed with msg_)
159
+ * @returns The replayed message with updated state
160
+ * @throws {QueueValidationError} If validation fails
161
+ * @throws {MessageNotFoundError} If the message does not exist
162
+ * @throws {QueueError} If the API request fails
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * const message = await replayMessage(client, 'order-queue', 'msg_abc123');
167
+ * console.log(`Message replayed, new state: ${message.state}`);
168
+ * ```
169
+ */
170
+ export declare function replayMessage(client: APIClient, queueName: string, messageId: string, options?: QueueApiOptions): Promise<Message>;
171
+ /**
172
+ * Consume messages from a queue starting at an offset.
173
+ *
174
+ * Retrieves messages for log-style consumption, starting from the specified
175
+ * offset. Unlike receive/ack flow, this does not mark messages as processing.
176
+ * Ideal for event sourcing or fan-out patterns where multiple consumers
177
+ * read the same messages.
178
+ *
179
+ * @param client - The API client instance
180
+ * @param queueName - The name of the queue
181
+ * @param params - Consume parameters
182
+ * @param params.offset - Starting offset (0-based)
183
+ * @param params.limit - Maximum messages to return (optional, 1-1000)
184
+ * @returns Object containing the messages array
185
+ * @throws {QueueValidationError} If validation fails
186
+ * @throws {QueueNotFoundError} If the queue does not exist
187
+ * @throws {QueueError} If the API request fails
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * // Consume 100 messages starting at offset 500
192
+ * const result = await consumeMessages(client, 'events', {
193
+ * offset: 500,
194
+ * limit: 100,
195
+ * });
196
+ * for (const msg of result.messages) {
197
+ * console.log(`Processing event at offset ${msg.offset}`);
198
+ * }
199
+ * ```
200
+ */
201
+ export declare function consumeMessages(client: APIClient, queueName: string, params: ConsumeMessagesRequest, options?: QueueApiOptions): Promise<{
202
+ messages: Message[];
203
+ }>;
204
+ /**
205
+ * Get the head offset of a queue.
206
+ *
207
+ * Returns the offset of the oldest (first) message in the queue.
208
+ * Useful for determining the starting point for log-style consumption.
209
+ *
210
+ * @param client - The API client instance
211
+ * @param queueName - The name of the queue
212
+ * @returns The head offset (oldest message position)
213
+ * @throws {QueueValidationError} If validation fails
214
+ * @throws {QueueNotFoundError} If the queue does not exist
215
+ * @throws {QueueError} If the API request fails
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * const head = await getQueueHead(client, 'events');
220
+ * console.log(`Queue starts at offset ${head}`);
221
+ * ```
222
+ */
223
+ export declare function getQueueHead(client: APIClient, queueName: string, options?: QueueApiOptions): Promise<number>;
224
+ /**
225
+ * Get the tail offset of a queue.
226
+ *
227
+ * Returns the offset of the newest (last) message in the queue.
228
+ * The next published message will have offset = tail + 1.
229
+ *
230
+ * @param client - The API client instance
231
+ * @param queueName - The name of the queue
232
+ * @returns The tail offset (newest message position)
233
+ * @throws {QueueValidationError} If validation fails
234
+ * @throws {QueueNotFoundError} If the queue does not exist
235
+ * @throws {QueueError} If the API request fails
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * const tail = await getQueueTail(client, 'events');
240
+ * console.log(`Queue ends at offset ${tail}`);
241
+ * ```
242
+ */
243
+ export declare function getQueueTail(client: APIClient, queueName: string, options?: QueueApiOptions): Promise<number>;
244
+ /**
245
+ * Receive the next available message from a queue.
246
+ *
247
+ * Atomically retrieves and locks the next pending message for processing.
248
+ * The message state transitions to "processing" and must be acknowledged
249
+ * (ack) or negative-acknowledged (nack) when done. Supports long polling
250
+ * with an optional timeout.
251
+ *
252
+ * @param client - The API client instance
253
+ * @param queueName - The name of the queue
254
+ * @param timeout - Optional timeout in seconds for long polling (0-30)
255
+ * @returns The received message, or null if no message is available
256
+ * @throws {QueueValidationError} If validation fails
257
+ * @throws {QueueNotFoundError} If the queue does not exist
258
+ * @throws {QueueError} If the API request fails
259
+ *
260
+ * @example
261
+ * ```typescript
262
+ * // Receive with 10 second long poll
263
+ * const message = await receiveMessage(client, 'tasks', 10);
264
+ * if (message) {
265
+ * console.log(`Received: ${message.id}`);
266
+ * // Process message...
267
+ * await ackMessage(client, 'tasks', message.id);
268
+ * }
269
+ * ```
270
+ */
271
+ export declare function receiveMessage(client: APIClient, queueName: string, timeout?: number, options?: QueueApiOptions): Promise<Message | null>;
272
+ /**
273
+ * Acknowledge successful processing of a message.
274
+ *
275
+ * Marks a message as successfully processed (completed state).
276
+ * Should be called after successfully processing a message received
277
+ * via receiveMessage. The message will not be redelivered.
278
+ *
279
+ * @param client - The API client instance
280
+ * @param queueName - The name of the queue
281
+ * @param messageId - The message ID to acknowledge (prefixed with msg_)
282
+ * @returns void
283
+ * @throws {QueueValidationError} If validation fails
284
+ * @throws {MessageNotFoundError} If the message does not exist
285
+ * @throws {QueueError} If the API request fails
286
+ *
287
+ * @example
288
+ * ```typescript
289
+ * const message = await receiveMessage(client, 'tasks');
290
+ * if (message) {
291
+ * try {
292
+ * await processTask(message.payload);
293
+ * await ackMessage(client, 'tasks', message.id);
294
+ * } catch (error) {
295
+ * await nackMessage(client, 'tasks', message.id);
296
+ * }
297
+ * }
298
+ * ```
299
+ */
300
+ export declare function ackMessage(client: APIClient, queueName: string, messageId: string, options?: QueueApiOptions): Promise<void>;
301
+ /**
302
+ * Negative acknowledge a message (mark as failed).
303
+ *
304
+ * Returns a message to the queue for retry. The message state returns
305
+ * to pending and will be redelivered. Use when processing fails and
306
+ * the message should be retried. After max retries, the message moves
307
+ * to the dead letter queue.
308
+ *
309
+ * @param client - The API client instance
310
+ * @param queueName - The name of the queue
311
+ * @param messageId - The message ID to nack (prefixed with msg_)
312
+ * @returns void
313
+ * @throws {QueueValidationError} If validation fails
314
+ * @throws {MessageNotFoundError} If the message does not exist
315
+ * @throws {QueueError} If the API request fails
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * const message = await receiveMessage(client, 'tasks');
320
+ * if (message) {
321
+ * try {
322
+ * await processTask(message.payload);
323
+ * await ackMessage(client, 'tasks', message.id);
324
+ * } catch (error) {
325
+ * // Processing failed, return to queue for retry
326
+ * await nackMessage(client, 'tasks', message.id);
327
+ * }
328
+ * }
329
+ * ```
330
+ */
331
+ export declare function nackMessage(client: APIClient, queueName: string, messageId: string, options?: QueueApiOptions): Promise<void>;
332
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/api/queue/messages.ts"],"names":[],"mappings":"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"}