@agentuity/core 1.0.29 → 1.0.30

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.
@@ -1,11 +1,71 @@
1
1
  import { buildUrl, toServiceException } from "./_util.js";
2
+ /**
3
+ * Client for the Agentuity Schedule service.
4
+ *
5
+ * Provides methods for creating, managing, and monitoring cron-based scheduled jobs.
6
+ * Schedules fire at intervals defined by cron expressions and deliver HTTP requests
7
+ * to configured destinations (URLs or sandboxes).
8
+ *
9
+ * The service supports:
10
+ * - CRUD operations on schedules and their destinations
11
+ * - Cron expression validation
12
+ * - Delivery history and monitoring
13
+ * - Automatic due date computation from cron expressions
14
+ *
15
+ * All methods are instrumented with OpenTelemetry spans for observability.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const schedules = new ScheduleService(baseUrl, adapter);
20
+ *
21
+ * // Create a schedule that fires every hour
22
+ * const result = await schedules.create({
23
+ * name: 'Hourly Sync',
24
+ * expression: '0 * * * *',
25
+ * destinations: [{ type: 'url', config: { url: 'https://example.com/sync' } }],
26
+ * });
27
+ *
28
+ * // List all schedules
29
+ * const { schedules: list, total } = await schedules.list();
30
+ * ```
31
+ */
2
32
  export class ScheduleService {
3
33
  #adapter;
4
34
  #baseUrl;
35
+ /**
36
+ * Create a new ScheduleService instance.
37
+ *
38
+ * @param baseUrl - The base URL for the Agentuity Schedule API (e.g., `https://api.agentuity.com`)
39
+ * @param adapter - The HTTP fetch adapter used for making API requests
40
+ */
5
41
  constructor(baseUrl, adapter) {
6
42
  this.#adapter = adapter;
7
43
  this.#baseUrl = baseUrl;
8
44
  }
45
+ /**
46
+ * Create a new schedule with optional destinations.
47
+ *
48
+ * The schedule and its destinations are created atomically — if any validation
49
+ * fails, the entire operation is rolled back.
50
+ *
51
+ * @param params - The schedule creation parameters including name, cron expression, and optional destinations
52
+ * @returns The created schedule and its destinations
53
+ * @throws ServiceException on API errors (e.g., invalid cron expression, invalid destination URL)
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const result = await schedules.create({
58
+ * name: 'Daily Report',
59
+ * description: 'Generate and send daily reports',
60
+ * expression: '0 9 * * *',
61
+ * destinations: [
62
+ * { type: 'url', config: { url: 'https://example.com/reports' } },
63
+ * ],
64
+ * });
65
+ * console.log('Created schedule:', result.schedule.id);
66
+ * console.log('Next run:', result.schedule.due_date);
67
+ * ```
68
+ */
9
69
  async create(params) {
10
70
  const url = buildUrl(this.#baseUrl, '/schedule/create/2026-02-24');
11
71
  const signal = AbortSignal.timeout(30_000);
@@ -27,6 +87,25 @@ export class ScheduleService {
27
87
  }
28
88
  throw await toServiceException('POST', url, res.response);
29
89
  }
90
+ /**
91
+ * List all schedules with optional pagination.
92
+ *
93
+ * @param params - Optional pagination parameters
94
+ * @param params.limit - Maximum number of schedules to return (max 500)
95
+ * @param params.offset - Number of schedules to skip for pagination
96
+ * @returns A paginated list of schedules with the total count
97
+ * @throws ServiceException on API errors
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * // List first page
102
+ * const { schedules, total } = await service.list({ limit: 20 });
103
+ * console.log(`Showing ${schedules.length} of ${total} schedules`);
104
+ *
105
+ * // Paginate through all schedules
106
+ * const page2 = await service.list({ limit: 20, offset: 20 });
107
+ * ```
108
+ */
30
109
  async list(params) {
31
110
  const qs = new URLSearchParams();
32
111
  if (params?.limit !== undefined) {
@@ -56,6 +135,21 @@ export class ScheduleService {
56
135
  }
57
136
  throw await toServiceException('GET', url, res.response);
58
137
  }
138
+ /**
139
+ * Get a schedule by its ID, including all configured destinations.
140
+ *
141
+ * @param scheduleId - The schedule ID (prefixed with `sch_`)
142
+ * @returns The schedule record and its array of destinations
143
+ * @throws ServiceException on API errors (including 404 if not found)
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const { schedule, destinations } = await service.get('sch_abc123');
148
+ * console.log('Schedule:', schedule.name);
149
+ * console.log('Next run:', schedule.due_date);
150
+ * console.log('Destinations:', destinations.length);
151
+ * ```
152
+ */
59
153
  async get(scheduleId) {
60
154
  const url = buildUrl(this.#baseUrl, `/schedule/get/2026-02-24/${encodeURIComponent(scheduleId)}`);
61
155
  const signal = AbortSignal.timeout(30_000);
@@ -77,6 +171,27 @@ export class ScheduleService {
77
171
  }
78
172
  throw await toServiceException('GET', url, res.response);
79
173
  }
174
+ /**
175
+ * Update an existing schedule. Only the provided fields are modified.
176
+ *
177
+ * @remarks If the `expression` field is changed, the `due_date` is automatically
178
+ * recomputed based on the new cron expression.
179
+ *
180
+ * @param scheduleId - The schedule ID (prefixed with `sch_`)
181
+ * @param params - The fields to update (all optional)
182
+ * @returns The updated schedule record
183
+ * @throws ServiceException on API errors (e.g., invalid cron expression, schedule not found)
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * // Update the name and expression
188
+ * const { schedule } = await service.update('sch_abc123', {
189
+ * name: 'Daily Midnight Sync',
190
+ * expression: '0 0 * * *',
191
+ * });
192
+ * console.log('Updated. Next run:', schedule.due_date);
193
+ * ```
194
+ */
80
195
  async update(scheduleId, params) {
81
196
  const url = buildUrl(this.#baseUrl, `/schedule/update/2026-02-24/${encodeURIComponent(scheduleId)}`);
82
197
  const signal = AbortSignal.timeout(30_000);
@@ -97,6 +212,18 @@ export class ScheduleService {
97
212
  }
98
213
  throw await toServiceException('PUT', url, res.response);
99
214
  }
215
+ /**
216
+ * Delete a schedule and all of its destinations and delivery history.
217
+ *
218
+ * @param scheduleId - The schedule ID (prefixed with `sch_`)
219
+ * @throws ServiceException on API errors (e.g., schedule not found)
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * await service.delete('sch_abc123');
224
+ * console.log('Schedule deleted');
225
+ * ```
226
+ */
100
227
  async delete(scheduleId) {
101
228
  const url = buildUrl(this.#baseUrl, `/schedule/delete/2026-02-24/${encodeURIComponent(scheduleId)}`);
102
229
  const signal = AbortSignal.timeout(30_000);
@@ -115,6 +242,26 @@ export class ScheduleService {
115
242
  }
116
243
  throw await toServiceException('DELETE', url, res.response);
117
244
  }
245
+ /**
246
+ * Create a new destination on an existing schedule.
247
+ *
248
+ * @param scheduleId - The schedule ID (prefixed with `sch_`)
249
+ * @param params - The destination configuration including type and type-specific config
250
+ * @returns The newly created destination record
251
+ * @throws ServiceException on API errors (e.g., invalid URL, schedule not found)
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * const { destination } = await service.createDestination('sch_abc123', {
256
+ * type: 'url',
257
+ * config: {
258
+ * url: 'https://example.com/webhook',
259
+ * headers: { 'Authorization': 'Bearer token' },
260
+ * },
261
+ * });
262
+ * console.log('Destination created:', destination.id);
263
+ * ```
264
+ */
118
265
  async createDestination(scheduleId, params) {
119
266
  const url = buildUrl(this.#baseUrl, `/schedule/destinations/create/2026-02-24/${encodeURIComponent(scheduleId)}`);
120
267
  const signal = AbortSignal.timeout(30_000);
@@ -136,6 +283,18 @@ export class ScheduleService {
136
283
  }
137
284
  throw await toServiceException('POST', url, res.response);
138
285
  }
286
+ /**
287
+ * Delete a destination from a schedule.
288
+ *
289
+ * @param destinationId - The destination ID (prefixed with `sdst_`)
290
+ * @throws ServiceException on API errors (e.g., destination not found)
291
+ *
292
+ * @example
293
+ * ```typescript
294
+ * await service.deleteDestination('sdst_xyz789');
295
+ * console.log('Destination removed');
296
+ * ```
297
+ */
139
298
  async deleteDestination(destinationId) {
140
299
  const url = buildUrl(this.#baseUrl, `/schedule/destinations/delete/2026-02-24/${encodeURIComponent(destinationId)}`);
141
300
  const signal = AbortSignal.timeout(30_000);
@@ -154,6 +313,27 @@ export class ScheduleService {
154
313
  }
155
314
  throw await toServiceException('DELETE', url, res.response);
156
315
  }
316
+ /**
317
+ * List delivery attempts for a schedule with optional pagination.
318
+ *
319
+ * @param scheduleId - The schedule ID (prefixed with `sch_`)
320
+ * @param params - Optional pagination parameters
321
+ * @param params.limit - Maximum number of deliveries to return
322
+ * @param params.offset - Number of deliveries to skip for pagination
323
+ * @returns A list of delivery attempt records
324
+ * @throws ServiceException on API errors (including 404 if schedule not found)
325
+ *
326
+ * @example
327
+ * ```typescript
328
+ * const { deliveries } = await service.listDeliveries('sch_abc123');
329
+ * for (const d of deliveries) {
330
+ * console.log(`${d.date}: ${d.status} (retries: ${d.retries})`);
331
+ * if (d.error) {
332
+ * console.error(' Error:', d.error);
333
+ * }
334
+ * }
335
+ * ```
336
+ */
157
337
  async listDeliveries(scheduleId, params) {
158
338
  const qs = new URLSearchParams();
159
339
  if (params?.limit !== undefined) {
@@ -186,6 +366,26 @@ export class ScheduleService {
186
366
  }
187
367
  throw await toServiceException('GET', url, res.response);
188
368
  }
369
+ /**
370
+ * Get a specific destination for a schedule by its ID.
371
+ *
372
+ * @remarks This is a convenience method that fetches the schedule and filters
373
+ * its destinations client-side. For large destination lists, prefer using
374
+ * {@link get} directly.
375
+ *
376
+ * @param scheduleId - The schedule ID (prefixed with `sch_`)
377
+ * @param destinationId - The destination ID (prefixed with `sdst_`)
378
+ * @returns The matching destination record
379
+ * @throws Error if the destination is not found within the schedule
380
+ * @throws ServiceException on API errors when fetching the schedule
381
+ *
382
+ * @example
383
+ * ```typescript
384
+ * const dest = await service.getDestination('sch_abc123', 'sdst_xyz789');
385
+ * console.log('Destination type:', dest.type);
386
+ * console.log('Config:', dest.config);
387
+ * ```
388
+ */
189
389
  async getDestination(scheduleId, destinationId) {
190
390
  const result = await this.get(scheduleId);
191
391
  const destination = result.destinations.find((d) => d.id === destinationId);
@@ -194,6 +394,27 @@ export class ScheduleService {
194
394
  }
195
395
  return destination;
196
396
  }
397
+ /**
398
+ * Get a specific delivery record by its ID.
399
+ *
400
+ * @remarks This is a convenience method that lists deliveries and filters
401
+ * client-side. Use the optional `params` to control the search window if
402
+ * the delivery may not be in the first page of results.
403
+ *
404
+ * @param scheduleId - The schedule ID (prefixed with `sch_`)
405
+ * @param deliveryId - The delivery ID to find
406
+ * @param params - Optional pagination parameters to control the search window
407
+ * @returns The matching delivery record
408
+ * @throws Error if the delivery is not found in the result set
409
+ * @throws ServiceException on API errors when listing deliveries
410
+ *
411
+ * @example
412
+ * ```typescript
413
+ * const delivery = await service.getDelivery('sch_abc123', 'del_xyz789');
414
+ * console.log('Status:', delivery.status);
415
+ * console.log('Retries:', delivery.retries);
416
+ * ```
417
+ */
197
418
  async getDelivery(scheduleId, deliveryId, params) {
198
419
  const result = await this.listDeliveries(scheduleId, params);
199
420
  const delivery = result.deliveries.find((d) => d.id === deliveryId);
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/services/schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/services/schedule.ts"],"names":[],"mappings":"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"}