@agentuity/runtime 1.0.22 → 1.0.24

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 (48) hide show
  1. package/dist/_context.d.ts +4 -1
  2. package/dist/_context.d.ts.map +1 -1
  3. package/dist/_context.js +3 -0
  4. package/dist/_context.js.map +1 -1
  5. package/dist/_services.d.ts +4 -1
  6. package/dist/_services.d.ts.map +1 -1
  7. package/dist/_services.js +28 -3
  8. package/dist/_services.js.map +1 -1
  9. package/dist/_standalone.d.ts +4 -1
  10. package/dist/_standalone.d.ts.map +1 -1
  11. package/dist/_standalone.js +3 -0
  12. package/dist/_standalone.js.map +1 -1
  13. package/dist/agent.d.ts +43 -1
  14. package/dist/agent.d.ts.map +1 -1
  15. package/dist/agent.js.map +1 -1
  16. package/dist/app.d.ts +12 -1
  17. package/dist/app.d.ts.map +1 -1
  18. package/dist/app.js.map +1 -1
  19. package/dist/middleware.d.ts +1 -1
  20. package/dist/middleware.d.ts.map +1 -1
  21. package/dist/middleware.js +6 -0
  22. package/dist/middleware.js.map +1 -1
  23. package/dist/services/local/_db.d.ts.map +1 -1
  24. package/dist/services/local/_db.js +49 -1
  25. package/dist/services/local/_db.js.map +1 -1
  26. package/dist/services/local/email.d.ts +20 -0
  27. package/dist/services/local/email.d.ts.map +1 -0
  28. package/dist/services/local/email.js +46 -0
  29. package/dist/services/local/email.js.map +1 -0
  30. package/dist/services/local/index.d.ts +2 -0
  31. package/dist/services/local/index.d.ts.map +1 -1
  32. package/dist/services/local/index.js +2 -0
  33. package/dist/services/local/index.js.map +1 -1
  34. package/dist/services/local/task.d.ts +16 -0
  35. package/dist/services/local/task.d.ts.map +1 -0
  36. package/dist/services/local/task.js +425 -0
  37. package/dist/services/local/task.js.map +1 -0
  38. package/package.json +7 -7
  39. package/src/_context.ts +6 -0
  40. package/src/_services.ts +33 -1
  41. package/src/_standalone.ts +6 -0
  42. package/src/agent.ts +48 -0
  43. package/src/app.ts +14 -0
  44. package/src/middleware.ts +7 -3
  45. package/src/services/local/_db.ts +64 -3
  46. package/src/services/local/email.ts +75 -0
  47. package/src/services/local/index.ts +2 -0
  48. package/src/services/local/task.ts +595 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/services/local/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EACX,WAAW,EACX,IAAI,EAKJ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,MAAM,iBAAiB,CAAC;AA+FzB,qBAAa,gBAAiB,YAAW,WAAW;;gBAIvC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM;IAKvC,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8E/C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IA+BrC,IAAI,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAuExD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmL3D,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmFhC,SAAS,CACd,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1C,OAAO,CAAC,mBAAmB,CAAC;CAgC/B"}
@@ -0,0 +1,425 @@
1
+ import { StructuredError } from '@agentuity/core';
2
+ import { now } from './_util';
3
+ const TaskTitleRequiredError = StructuredError('TaskTitleRequiredError', 'Task title is required and must be a non-empty string');
4
+ const TaskNotFoundError = StructuredError('TaskNotFoundError', 'Task not found');
5
+ const TaskAlreadyClosedError = StructuredError('TaskAlreadyClosedError', 'Task is already closed');
6
+ const DEFAULT_LIMIT = 100;
7
+ const SORT_FIELDS = {
8
+ created_at: 'created_at',
9
+ updated_at: 'updated_at',
10
+ title: 'title',
11
+ priority: 'priority',
12
+ status: 'status',
13
+ type: 'type',
14
+ open_date: 'open_date',
15
+ in_progress_date: 'in_progress_date',
16
+ closed_date: 'closed_date',
17
+ };
18
+ function generateTaskId() {
19
+ return `task_${crypto.randomUUID().replace(/-/g, '').slice(0, 24)}`;
20
+ }
21
+ function generateChangelogId() {
22
+ return `taskch_${crypto.randomUUID().replace(/-/g, '').slice(0, 24)}`;
23
+ }
24
+ function toTask(row) {
25
+ return {
26
+ id: row.id,
27
+ created_at: new Date(row.created_at).toISOString(),
28
+ updated_at: new Date(row.updated_at).toISOString(),
29
+ title: row.title,
30
+ description: row.description ?? undefined,
31
+ metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
32
+ priority: row.priority,
33
+ parent_id: row.parent_id ?? undefined,
34
+ type: row.type,
35
+ status: row.status,
36
+ open_date: row.open_date ?? undefined,
37
+ in_progress_date: row.in_progress_date ?? undefined,
38
+ closed_date: row.closed_date ?? undefined,
39
+ created_id: row.created_id,
40
+ assigned_id: row.assigned_id ?? undefined,
41
+ closed_id: row.closed_id ?? undefined,
42
+ };
43
+ }
44
+ function toChangelogEntry(row) {
45
+ return {
46
+ id: row.id,
47
+ created_at: new Date(row.created_at).toISOString(),
48
+ task_id: row.task_id,
49
+ field: row.field,
50
+ old_value: row.old_value ?? undefined,
51
+ new_value: row.new_value ?? undefined,
52
+ };
53
+ }
54
+ export class LocalTaskStorage {
55
+ #db;
56
+ #projectPath;
57
+ constructor(db, projectPath) {
58
+ this.#db = db;
59
+ this.#projectPath = projectPath;
60
+ }
61
+ async create(params) {
62
+ const trimmedTitle = params?.title?.trim();
63
+ if (!trimmedTitle) {
64
+ throw new TaskTitleRequiredError();
65
+ }
66
+ const id = generateTaskId();
67
+ const timestamp = now();
68
+ const status = params.status ?? 'open';
69
+ const priority = params.priority ?? 'none';
70
+ const openDate = status === 'open' ? new Date(timestamp).toISOString() : null;
71
+ const inProgressDate = status === 'in_progress' ? new Date(timestamp).toISOString() : null;
72
+ const closedDate = status === 'closed' ? new Date(timestamp).toISOString() : null;
73
+ const stmt = this.#db.prepare(`
74
+ INSERT INTO task_storage (
75
+ project_path,
76
+ id,
77
+ title,
78
+ description,
79
+ metadata,
80
+ priority,
81
+ parent_id,
82
+ type,
83
+ status,
84
+ open_date,
85
+ in_progress_date,
86
+ closed_date,
87
+ created_id,
88
+ assigned_id,
89
+ closed_id,
90
+ created_at,
91
+ updated_at
92
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
93
+ `);
94
+ const row = {
95
+ id,
96
+ created_at: timestamp,
97
+ updated_at: timestamp,
98
+ title: trimmedTitle,
99
+ description: params.description ?? null,
100
+ metadata: params.metadata ? JSON.stringify(params.metadata) : null,
101
+ priority,
102
+ parent_id: params.parent_id ?? null,
103
+ type: params.type,
104
+ status,
105
+ open_date: openDate,
106
+ in_progress_date: inProgressDate,
107
+ closed_date: closedDate,
108
+ created_id: params.created_id,
109
+ assigned_id: params.assigned_id ?? null,
110
+ closed_id: null,
111
+ };
112
+ stmt.run(this.#projectPath, row.id, row.title, row.description, row.metadata, row.priority, row.parent_id, row.type, row.status, row.open_date, row.in_progress_date, row.closed_date, row.created_id, row.assigned_id, row.closed_id, row.created_at, row.updated_at);
113
+ return toTask(row);
114
+ }
115
+ async get(id) {
116
+ const query = this.#db.query(`
117
+ SELECT
118
+ id,
119
+ created_at,
120
+ updated_at,
121
+ title,
122
+ description,
123
+ metadata,
124
+ priority,
125
+ parent_id,
126
+ type,
127
+ status,
128
+ open_date,
129
+ in_progress_date,
130
+ closed_date,
131
+ created_id,
132
+ assigned_id,
133
+ closed_id
134
+ FROM task_storage
135
+ WHERE project_path = ? AND id = ?
136
+ `);
137
+ const row = query.get(this.#projectPath, id);
138
+ if (!row) {
139
+ return null;
140
+ }
141
+ return toTask(row);
142
+ }
143
+ async list(params) {
144
+ const filters = ['project_path = ?'];
145
+ const values = [this.#projectPath];
146
+ if (params?.status) {
147
+ filters.push('status = ?');
148
+ values.push(params.status);
149
+ }
150
+ if (params?.type) {
151
+ filters.push('type = ?');
152
+ values.push(params.type);
153
+ }
154
+ if (params?.priority) {
155
+ filters.push('priority = ?');
156
+ values.push(params.priority);
157
+ }
158
+ if (params?.assigned_id) {
159
+ filters.push('assigned_id = ?');
160
+ values.push(params.assigned_id);
161
+ }
162
+ if (params?.parent_id) {
163
+ filters.push('parent_id = ?');
164
+ values.push(params.parent_id);
165
+ }
166
+ const whereClause = filters.length > 0 ? `WHERE ${filters.join(' AND ')}` : '';
167
+ const sortField = params?.sort && SORT_FIELDS[params.sort] ? SORT_FIELDS[params.sort] : 'created_at';
168
+ const sortOrder = params?.order === 'asc' ? 'ASC' : 'DESC';
169
+ const limit = params?.limit ?? DEFAULT_LIMIT;
170
+ const offset = params?.offset ?? 0;
171
+ const totalQuery = this.#db.query(`SELECT COUNT(*) as count FROM task_storage ${whereClause}`);
172
+ const totalRow = totalQuery.get(...values);
173
+ const query = this.#db.query(`
174
+ SELECT
175
+ id,
176
+ created_at,
177
+ updated_at,
178
+ title,
179
+ description,
180
+ metadata,
181
+ priority,
182
+ parent_id,
183
+ type,
184
+ status,
185
+ open_date,
186
+ in_progress_date,
187
+ closed_date,
188
+ created_id,
189
+ assigned_id,
190
+ closed_id
191
+ FROM task_storage
192
+ ${whereClause}
193
+ ORDER BY ${sortField} ${sortOrder}
194
+ LIMIT ? OFFSET ?
195
+ `);
196
+ const rows = query.all(...values, limit, offset);
197
+ return {
198
+ tasks: rows.map(toTask),
199
+ total: totalRow.count,
200
+ limit,
201
+ offset,
202
+ };
203
+ }
204
+ async update(id, params) {
205
+ const updateInTransaction = this.#db.transaction(() => {
206
+ const existingQuery = this.#db.query(`
207
+ SELECT
208
+ id,
209
+ created_at,
210
+ updated_at,
211
+ title,
212
+ description,
213
+ metadata,
214
+ priority,
215
+ parent_id,
216
+ type,
217
+ status,
218
+ open_date,
219
+ in_progress_date,
220
+ closed_date,
221
+ created_id,
222
+ assigned_id,
223
+ closed_id
224
+ FROM task_storage
225
+ WHERE project_path = ? AND id = ?
226
+ `);
227
+ const existing = existingQuery.get(this.#projectPath, id);
228
+ if (!existing) {
229
+ throw new TaskNotFoundError();
230
+ }
231
+ const trimmedTitle = params.title !== undefined ? params.title?.trim() : undefined;
232
+ if (params.title !== undefined && !trimmedTitle) {
233
+ throw new TaskTitleRequiredError();
234
+ }
235
+ const timestamp = now();
236
+ const nowIso = new Date(timestamp).toISOString();
237
+ const updated = {
238
+ ...existing,
239
+ title: trimmedTitle ?? existing.title,
240
+ description: params.description !== undefined ? params.description : existing.description,
241
+ metadata: params.metadata !== undefined
242
+ ? params.metadata
243
+ ? JSON.stringify(params.metadata)
244
+ : null
245
+ : existing.metadata,
246
+ priority: params.priority ?? existing.priority,
247
+ parent_id: params.parent_id !== undefined ? params.parent_id : existing.parent_id,
248
+ type: params.type ?? existing.type,
249
+ status: params.status ?? existing.status,
250
+ assigned_id: params.assigned_id !== undefined ? params.assigned_id : existing.assigned_id,
251
+ closed_id: params.closed_id !== undefined ? params.closed_id : existing.closed_id,
252
+ updated_at: timestamp,
253
+ };
254
+ if (params.status && params.status !== existing.status) {
255
+ if (params.status === 'open' && !existing.open_date) {
256
+ updated.open_date = nowIso;
257
+ }
258
+ if (params.status === 'in_progress' && !existing.in_progress_date) {
259
+ updated.in_progress_date = nowIso;
260
+ }
261
+ if (params.status === 'closed' && !existing.closed_date) {
262
+ updated.closed_date = nowIso;
263
+ }
264
+ }
265
+ const changelogEntries = [];
266
+ const compare = (field, oldValue, newValue) => {
267
+ if (oldValue !== newValue) {
268
+ changelogEntries.push({ field, oldValue, newValue });
269
+ }
270
+ };
271
+ if (params.title !== undefined) {
272
+ compare('title', existing.title, updated.title);
273
+ }
274
+ if (params.description !== undefined) {
275
+ compare('description', existing.description, updated.description);
276
+ }
277
+ if (params.metadata !== undefined) {
278
+ compare('metadata', existing.metadata, updated.metadata);
279
+ }
280
+ if (params.priority !== undefined) {
281
+ compare('priority', existing.priority, updated.priority);
282
+ }
283
+ if (params.parent_id !== undefined) {
284
+ compare('parent_id', existing.parent_id, updated.parent_id);
285
+ }
286
+ if (params.type !== undefined) {
287
+ compare('type', existing.type, updated.type);
288
+ }
289
+ if (params.status !== undefined) {
290
+ compare('status', existing.status, updated.status);
291
+ }
292
+ if (params.assigned_id !== undefined) {
293
+ compare('assigned_id', existing.assigned_id, updated.assigned_id);
294
+ }
295
+ if (params.closed_id !== undefined) {
296
+ compare('closed_id', existing.closed_id, updated.closed_id);
297
+ }
298
+ const updateStmt = this.#db.prepare(`
299
+ UPDATE task_storage
300
+ SET
301
+ title = ?,
302
+ description = ?,
303
+ metadata = ?,
304
+ priority = ?,
305
+ parent_id = ?,
306
+ type = ?,
307
+ status = ?,
308
+ open_date = ?,
309
+ in_progress_date = ?,
310
+ closed_date = ?,
311
+ created_id = ?,
312
+ assigned_id = ?,
313
+ closed_id = ?,
314
+ updated_at = ?
315
+ WHERE project_path = ? AND id = ?
316
+ `);
317
+ updateStmt.run(updated.title, updated.description, updated.metadata, updated.priority, updated.parent_id, updated.type, updated.status, updated.open_date, updated.in_progress_date, updated.closed_date, updated.created_id, updated.assigned_id, updated.closed_id, updated.updated_at, this.#projectPath, id);
318
+ if (changelogEntries.length > 0) {
319
+ const changelogStmt = this.#db.prepare(`
320
+ INSERT INTO task_changelog_storage (
321
+ project_path,
322
+ id,
323
+ task_id,
324
+ field,
325
+ old_value,
326
+ new_value,
327
+ created_at
328
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
329
+ `);
330
+ for (const entry of changelogEntries) {
331
+ changelogStmt.run(this.#projectPath, generateChangelogId(), id, entry.field, entry.oldValue, entry.newValue, timestamp);
332
+ }
333
+ }
334
+ return toTask(updated);
335
+ });
336
+ return updateInTransaction.immediate();
337
+ }
338
+ async close(id) {
339
+ const closeInTransaction = this.#db.transaction(() => {
340
+ const existingQuery = this.#db.query(`
341
+ SELECT
342
+ id,
343
+ created_at,
344
+ updated_at,
345
+ title,
346
+ description,
347
+ metadata,
348
+ priority,
349
+ parent_id,
350
+ type,
351
+ status,
352
+ open_date,
353
+ in_progress_date,
354
+ closed_date,
355
+ created_id,
356
+ assigned_id,
357
+ closed_id
358
+ FROM task_storage
359
+ WHERE project_path = ? AND id = ?
360
+ `);
361
+ const existing = existingQuery.get(this.#projectPath, id);
362
+ if (!existing) {
363
+ throw new TaskNotFoundError();
364
+ }
365
+ if (existing.status === 'closed') {
366
+ throw new TaskAlreadyClosedError();
367
+ }
368
+ const timestamp = now();
369
+ const nowIso = new Date(timestamp).toISOString();
370
+ const updated = {
371
+ ...existing,
372
+ status: 'closed',
373
+ closed_date: existing.closed_date ?? nowIso,
374
+ updated_at: timestamp,
375
+ };
376
+ const updateStmt = this.#db.prepare(`
377
+ UPDATE task_storage
378
+ SET status = ?, closed_date = ?, updated_at = ?
379
+ WHERE project_path = ? AND id = ?
380
+ `);
381
+ updateStmt.run(updated.status, updated.closed_date, updated.updated_at, this.#projectPath, id);
382
+ const changelogStmt = this.#db.prepare(`
383
+ INSERT INTO task_changelog_storage (
384
+ project_path,
385
+ id,
386
+ task_id,
387
+ field,
388
+ old_value,
389
+ new_value,
390
+ created_at
391
+ ) VALUES (?, ?, ?, ?, ?, ?, ?)
392
+ `);
393
+ changelogStmt.run(this.#projectPath, generateChangelogId(), id, 'status', existing.status, updated.status, timestamp);
394
+ return toTask(updated);
395
+ });
396
+ return closeInTransaction.immediate();
397
+ }
398
+ async changelog(id, params) {
399
+ const limit = params?.limit ?? DEFAULT_LIMIT;
400
+ const offset = params?.offset ?? 0;
401
+ const totalQuery = this.#db.query(`SELECT COUNT(*) as count FROM task_changelog_storage WHERE project_path = ? AND task_id = ?`);
402
+ const totalRow = totalQuery.get(this.#projectPath, id);
403
+ const query = this.#db.query(`
404
+ SELECT
405
+ id,
406
+ created_at,
407
+ task_id,
408
+ field,
409
+ old_value,
410
+ new_value
411
+ FROM task_changelog_storage
412
+ WHERE project_path = ? AND task_id = ?
413
+ ORDER BY created_at DESC
414
+ LIMIT ? OFFSET ?
415
+ `);
416
+ const rows = query.all(this.#projectPath, id, limit, offset);
417
+ return {
418
+ changelog: rows.map(toChangelogEntry),
419
+ total: totalRow.count,
420
+ limit,
421
+ offset,
422
+ };
423
+ }
424
+ }
425
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/services/local/task.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/runtime",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -26,11 +26,11 @@
26
26
  "prepublishOnly": "bun run clean && bun run build"
27
27
  },
28
28
  "dependencies": {
29
- "@agentuity/auth": "1.0.22",
30
- "@agentuity/core": "1.0.22",
31
- "@agentuity/frontend": "1.0.22",
32
- "@agentuity/schema": "1.0.22",
33
- "@agentuity/server": "1.0.22",
29
+ "@agentuity/auth": "1.0.24",
30
+ "@agentuity/core": "1.0.24",
31
+ "@agentuity/frontend": "1.0.24",
32
+ "@agentuity/schema": "1.0.24",
33
+ "@agentuity/server": "1.0.24",
34
34
  "@opentelemetry/api": "^1.9.0",
35
35
  "@opentelemetry/api-logs": "^0.207.0",
36
36
  "@opentelemetry/auto-instrumentations-node": "^0.66.0",
@@ -50,7 +50,7 @@
50
50
  "zod": "^4.3.5"
51
51
  },
52
52
  "devDependencies": {
53
- "@agentuity/test-utils": "1.0.22",
53
+ "@agentuity/test-utils": "1.0.24",
54
54
  "@types/bun": "latest",
55
55
  "@types/react": "^19.2.2",
56
56
  "@types/react-dom": "^19.2.2",
package/src/_context.ts CHANGED
@@ -8,6 +8,9 @@ import {
8
8
  type VectorStorage,
9
9
  type SandboxService,
10
10
  type QueueService,
11
+ type EmailService,
12
+ type ScheduleService,
13
+ type TaskStorage,
11
14
  } from '@agentuity/core';
12
15
  import type { AuthInterface } from '@agentuity/auth';
13
16
  import type {
@@ -56,6 +59,9 @@ export class RequestAgentContext<
56
59
  vector!: VectorStorage;
57
60
  sandbox!: SandboxService;
58
61
  queue!: QueueService;
62
+ email!: EmailService;
63
+ schedule!: ScheduleService;
64
+ task!: TaskStorage;
59
65
  state: Map<string, unknown>;
60
66
  session: Session;
61
67
  thread: Thread;
package/src/_services.ts CHANGED
@@ -4,12 +4,17 @@ import {
4
4
  StreamStorageService,
5
5
  VectorStorageService,
6
6
  QueueStorageService,
7
+ EmailStorageService,
8
+ ScheduleService,
9
+ TaskStorageService,
7
10
  type FetchAdapter,
8
11
  type KeyValueStorage,
9
12
  type StreamStorage,
10
13
  type VectorStorage,
11
14
  type SandboxService,
12
15
  type QueueService,
16
+ type EmailService,
17
+ type TaskStorage,
13
18
  type ListStreamsResponse,
14
19
  type VectorUpsertResult,
15
20
  type VectorSearchResult,
@@ -49,6 +54,8 @@ import {
49
54
  LocalStreamStorage,
50
55
  LocalVectorStorage,
51
56
  LocalQueueStorage,
57
+ LocalEmailStorage,
58
+ LocalTaskStorage,
52
59
  getLocalDB,
53
60
  normalizeProjectPath,
54
61
  createLocalStorageRouter,
@@ -66,6 +73,8 @@ const getStreamBaseUrl = () => getLazyServiceUrls().stream;
66
73
  const getVectorBaseUrl = () => getLazyServiceUrls().vector;
67
74
  const getCatalystBaseUrl = () => getLazyServiceUrls().catalyst;
68
75
  const getQueueBaseUrl = () => getCatalystBaseUrl();
76
+ const getEmailBaseUrl = () => getLazyServiceUrls().email;
77
+ const getTaskBaseUrl = () => getCatalystBaseUrl();
69
78
 
70
79
  let adapter: FetchAdapter;
71
80
 
@@ -174,6 +183,9 @@ let stream: StreamStorage;
174
183
  let vector: VectorStorage;
175
184
  let sandbox: SandboxService;
176
185
  let queue: QueueService;
186
+ let email: EmailService;
187
+ let schedule: ScheduleService;
188
+ let task: TaskStorage;
177
189
  let session: SessionProvider;
178
190
  let thread: ThreadProvider;
179
191
  let sessionEvent: SessionEventProvider;
@@ -211,6 +223,8 @@ export function createServices(logger: Logger, config?: AppConfig<any>, serverUr
211
223
  stream = config?.services?.stream || new LocalStreamStorage(db, projectPath, serverUrl);
212
224
  vector = config?.services?.vector || new LocalVectorStorage(db, projectPath);
213
225
  queue = new LocalQueueStorage(db, projectPath);
226
+ email = config?.services?.email || new LocalEmailStorage();
227
+ task = config?.services?.task || new LocalTaskStorage(db, projectPath);
214
228
  session = config?.services?.session || new DefaultSessionProvider();
215
229
  thread = config?.services?.thread || new LocalThreadProvider();
216
230
  sessionEvent = config?.services?.sessionEvent
@@ -241,7 +255,10 @@ export function createServices(logger: Logger, config?: AppConfig<any>, serverUr
241
255
  stream = config?.services?.stream || new StreamStorageService(streamBaseUrl, adapter);
242
256
  vector = config?.services?.vector || new VectorStorageService(getVectorBaseUrl(), adapter);
243
257
  queue = new QueueStorageService(getQueueBaseUrl(), adapter);
258
+ email = config?.services?.email || new EmailStorageService(getEmailBaseUrl(), adapter);
259
+ task = config?.services?.task || new TaskStorageService(getTaskBaseUrl(), adapter);
244
260
  sandbox = new HTTPSandboxService(new APIClient(catalystUrl, logger), streamBaseUrl);
261
+ schedule = new ScheduleService(getCatalystBaseUrl(), adapter);
245
262
  session = config?.services?.session || new DefaultSessionProvider();
246
263
  thread = config?.services?.thread || new DefaultThreadProvider();
247
264
  // FIXME: this is turned off for now for production until we have the new changes deployed
@@ -292,7 +309,7 @@ export function getEvalRunEventProvider() {
292
309
  }
293
310
 
294
311
  export function getServices() {
295
- return { kv, stream, vector, sandbox, queue };
312
+ return { kv, stream, vector, sandbox, queue, email, schedule, task };
296
313
  }
297
314
 
298
315
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -322,6 +339,21 @@ export function registerServices(o: any, includeAgents = false) {
322
339
  enumerable: false,
323
340
  configurable: false,
324
341
  });
342
+ Object.defineProperty(o, 'email', {
343
+ get: () => email,
344
+ enumerable: false,
345
+ configurable: false,
346
+ });
347
+ Object.defineProperty(o, 'schedule', {
348
+ get: () => schedule,
349
+ enumerable: false,
350
+ configurable: false,
351
+ });
352
+ Object.defineProperty(o, 'task', {
353
+ get: () => task,
354
+ enumerable: false,
355
+ configurable: false,
356
+ });
325
357
 
326
358
  // Also register agent registry if requested
327
359
  if (includeAgents) {
@@ -6,6 +6,9 @@ import type {
6
6
  VectorStorage,
7
7
  SandboxService,
8
8
  QueueService,
9
+ EmailService,
10
+ ScheduleService,
11
+ TaskStorage,
9
12
  Logger,
10
13
  } from '@agentuity/core';
11
14
  import { formatMessage } from './logger/util';
@@ -197,6 +200,9 @@ export class StandaloneAgentContext<
197
200
  vector!: VectorStorage;
198
201
  sandbox!: SandboxService;
199
202
  queue!: QueueService;
203
+ email!: EmailService;
204
+ schedule!: ScheduleService;
205
+ task!: TaskStorage;
200
206
  config: TConfig;
201
207
  app: TAppState;
202
208
  current!: AgentMetadata;
package/src/agent.ts CHANGED
@@ -7,6 +7,9 @@ import {
7
7
  type VectorStorage,
8
8
  type SandboxService,
9
9
  type QueueService,
10
+ type EmailService,
11
+ type ScheduleService,
12
+ type TaskStorage,
10
13
  type InferInput,
11
14
  type InferOutput,
12
15
  toCamelCase,
@@ -242,6 +245,51 @@ export interface AgentContext<
242
245
  */
243
246
  queue: QueueService;
244
247
 
248
+ /**
249
+ * Email service for managing email addresses, destinations, and sending/receiving emails.
250
+ *
251
+ * @example
252
+ * ```typescript
253
+ * // Create an email address
254
+ * const address = await ctx.email.createAddress('support');
255
+ *
256
+ * // Send an email
257
+ * const result = await ctx.email.send({
258
+ * from: address.email,
259
+ * to: ['user@example.com'],
260
+ * subject: 'Hello!',
261
+ * text: 'Welcome to our platform.',
262
+ * });
263
+ *
264
+ * // List inbound emails
265
+ * const inbound = await ctx.email.listInbound(address.id);
266
+ * ```
267
+ */
268
+ email: EmailService;
269
+
270
+ /**
271
+ * Schedule service for managing cron-based scheduled tasks with
272
+ * destinations and delivery tracking.
273
+ *
274
+ * @see https://agentuity.dev/services/schedule
275
+ */
276
+ schedule: ScheduleService;
277
+
278
+ /**
279
+ * Task service for agent-driven issue tracking.
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * const task = await ctx.task.create({
284
+ * title: 'Investigate API error',
285
+ * type: 'bug',
286
+ * created_id: ctx.current.id,
287
+ * });
288
+ * await ctx.task.update(task.id, { status: 'in_progress' });
289
+ * ```
290
+ */
291
+ task: TaskStorage;
292
+
245
293
  /**
246
294
  * In-memory state storage scoped to the current request.
247
295
  * Use for passing data between middleware and handlers.