@agentuity/cli 1.0.24 → 1.0.25

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 (147) hide show
  1. package/dist/cache/index.d.ts +1 -0
  2. package/dist/cache/index.d.ts.map +1 -1
  3. package/dist/cache/index.js +1 -0
  4. package/dist/cache/index.js.map +1 -1
  5. package/dist/cache/user-cache.d.ts +20 -0
  6. package/dist/cache/user-cache.d.ts.map +1 -0
  7. package/dist/cache/user-cache.js +79 -0
  8. package/dist/cache/user-cache.js.map +1 -0
  9. package/dist/cmd/auth/logout.d.ts.map +1 -1
  10. package/dist/cmd/auth/logout.js +3 -1
  11. package/dist/cmd/auth/logout.js.map +1 -1
  12. package/dist/cmd/build/entry-generator.d.ts +4 -0
  13. package/dist/cmd/build/entry-generator.d.ts.map +1 -1
  14. package/dist/cmd/build/entry-generator.js +18 -3
  15. package/dist/cmd/build/entry-generator.js.map +1 -1
  16. package/dist/cmd/build/vite/bun-dev-server.d.ts +1 -0
  17. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
  18. package/dist/cmd/build/vite/bun-dev-server.js +11 -9
  19. package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
  20. package/dist/cmd/cloud/db/stats.d.ts.map +1 -1
  21. package/dist/cmd/cloud/db/stats.js.map +1 -1
  22. package/dist/cmd/cloud/email/create.d.ts.map +1 -1
  23. package/dist/cmd/cloud/email/create.js +1 -4
  24. package/dist/cmd/cloud/email/create.js.map +1 -1
  25. package/dist/cmd/cloud/email/destination/delete.d.ts.map +1 -1
  26. package/dist/cmd/cloud/email/destination/delete.js +5 -1
  27. package/dist/cmd/cloud/email/destination/delete.js.map +1 -1
  28. package/dist/cmd/cloud/email/get.d.ts.map +1 -1
  29. package/dist/cmd/cloud/email/get.js +1 -3
  30. package/dist/cmd/cloud/email/get.js.map +1 -1
  31. package/dist/cmd/cloud/email/send.d.ts.map +1 -1
  32. package/dist/cmd/cloud/email/send.js +1 -5
  33. package/dist/cmd/cloud/email/send.js.map +1 -1
  34. package/dist/cmd/cloud/email/stats.d.ts.map +1 -1
  35. package/dist/cmd/cloud/email/stats.js.map +1 -1
  36. package/dist/cmd/cloud/email/util.d.ts.map +1 -1
  37. package/dist/cmd/cloud/email/util.js +1 -2
  38. package/dist/cmd/cloud/email/util.js.map +1 -1
  39. package/dist/cmd/cloud/sandbox/snapshot/build.d.ts.map +1 -1
  40. package/dist/cmd/cloud/sandbox/snapshot/build.js +4 -1
  41. package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
  42. package/dist/cmd/cloud/sandbox/stats.d.ts.map +1 -1
  43. package/dist/cmd/cloud/sandbox/stats.js.map +1 -1
  44. package/dist/cmd/cloud/schedule/delete.d.ts.map +1 -1
  45. package/dist/cmd/cloud/schedule/delete.js +4 -1
  46. package/dist/cmd/cloud/schedule/delete.js.map +1 -1
  47. package/dist/cmd/cloud/schedule/delivery/list.d.ts.map +1 -1
  48. package/dist/cmd/cloud/schedule/delivery/list.js.map +1 -1
  49. package/dist/cmd/cloud/schedule/destination/create.d.ts.map +1 -1
  50. package/dist/cmd/cloud/schedule/destination/create.js +3 -1
  51. package/dist/cmd/cloud/schedule/destination/create.js.map +1 -1
  52. package/dist/cmd/cloud/schedule/destination/index.d.ts.map +1 -1
  53. package/dist/cmd/cloud/schedule/destination/index.js.map +1 -1
  54. package/dist/cmd/cloud/schedule/destination/list.d.ts.map +1 -1
  55. package/dist/cmd/cloud/schedule/destination/list.js.map +1 -1
  56. package/dist/cmd/cloud/schedule/get.d.ts.map +1 -1
  57. package/dist/cmd/cloud/schedule/get.js +4 -1
  58. package/dist/cmd/cloud/schedule/get.js.map +1 -1
  59. package/dist/cmd/cloud/schedule/index.d.ts.map +1 -1
  60. package/dist/cmd/cloud/schedule/index.js +4 -1
  61. package/dist/cmd/cloud/schedule/index.js.map +1 -1
  62. package/dist/cmd/cloud/schedule/list.d.ts.map +1 -1
  63. package/dist/cmd/cloud/schedule/list.js.map +1 -1
  64. package/dist/cmd/cloud/schedule/stats.d.ts.map +1 -1
  65. package/dist/cmd/cloud/schedule/stats.js.map +1 -1
  66. package/dist/cmd/cloud/schedule/util.d.ts.map +1 -1
  67. package/dist/cmd/cloud/schedule/util.js +1 -2
  68. package/dist/cmd/cloud/schedule/util.js.map +1 -1
  69. package/dist/cmd/cloud/services/stats.d.ts.map +1 -1
  70. package/dist/cmd/cloud/services/stats.js.map +1 -1
  71. package/dist/cmd/cloud/stream/index.d.ts.map +1 -1
  72. package/dist/cmd/cloud/stream/index.js +7 -1
  73. package/dist/cmd/cloud/stream/index.js.map +1 -1
  74. package/dist/cmd/cloud/stream/stats.d.ts.map +1 -1
  75. package/dist/cmd/cloud/stream/stats.js.map +1 -1
  76. package/dist/cmd/cloud/task/attachment.d.ts +2 -0
  77. package/dist/cmd/cloud/task/attachment.d.ts.map +1 -0
  78. package/dist/cmd/cloud/task/attachment.js +393 -0
  79. package/dist/cmd/cloud/task/attachment.js.map +1 -0
  80. package/dist/cmd/cloud/task/create.d.ts.map +1 -1
  81. package/dist/cmd/cloud/task/create.js +126 -5
  82. package/dist/cmd/cloud/task/create.js.map +1 -1
  83. package/dist/cmd/cloud/task/get.d.ts.map +1 -1
  84. package/dist/cmd/cloud/task/get.js +29 -11
  85. package/dist/cmd/cloud/task/get.js.map +1 -1
  86. package/dist/cmd/cloud/task/index.d.ts.map +1 -1
  87. package/dist/cmd/cloud/task/index.js +13 -1
  88. package/dist/cmd/cloud/task/index.js.map +1 -1
  89. package/dist/cmd/cloud/task/list.d.ts.map +1 -1
  90. package/dist/cmd/cloud/task/list.js +31 -15
  91. package/dist/cmd/cloud/task/list.js.map +1 -1
  92. package/dist/cmd/cloud/task/stats.js +2 -0
  93. package/dist/cmd/cloud/task/stats.js.map +1 -1
  94. package/dist/cmd/cloud/task/util.d.ts.map +1 -1
  95. package/dist/cmd/cloud/task/util.js +2 -4
  96. package/dist/cmd/cloud/task/util.js.map +1 -1
  97. package/dist/cmd/cloud/webhook/create.d.ts.map +1 -1
  98. package/dist/cmd/cloud/webhook/create.js +6 -1
  99. package/dist/cmd/cloud/webhook/create.js.map +1 -1
  100. package/dist/cmd/cloud/webhook/deliveries.d.ts.map +1 -1
  101. package/dist/cmd/cloud/webhook/deliveries.js +4 -1
  102. package/dist/cmd/cloud/webhook/deliveries.js.map +1 -1
  103. package/dist/cmd/cloud/webhook/destinations.d.ts.map +1 -1
  104. package/dist/cmd/cloud/webhook/destinations.js +4 -5
  105. package/dist/cmd/cloud/webhook/destinations.js.map +1 -1
  106. package/dist/cmd/dev/index.d.ts.map +1 -1
  107. package/dist/cmd/dev/index.js +80 -34
  108. package/dist/cmd/dev/index.js.map +1 -1
  109. package/package.json +6 -6
  110. package/src/cache/index.ts +2 -0
  111. package/src/cache/user-cache.ts +93 -0
  112. package/src/cmd/auth/logout.ts +3 -1
  113. package/src/cmd/build/entry-generator.ts +34 -4
  114. package/src/cmd/build/vite/bun-dev-server.ts +21 -9
  115. package/src/cmd/cloud/db/stats.ts +4 -12
  116. package/src/cmd/cloud/email/create.ts +1 -4
  117. package/src/cmd/cloud/email/destination/delete.ts +5 -1
  118. package/src/cmd/cloud/email/get.ts +1 -3
  119. package/src/cmd/cloud/email/send.ts +1 -5
  120. package/src/cmd/cloud/email/stats.ts +2 -6
  121. package/src/cmd/cloud/email/util.ts +1 -2
  122. package/src/cmd/cloud/sandbox/snapshot/build.ts +25 -6
  123. package/src/cmd/cloud/sandbox/stats.ts +2 -6
  124. package/src/cmd/cloud/schedule/delete.ts +4 -1
  125. package/src/cmd/cloud/schedule/delivery/list.ts +15 -13
  126. package/src/cmd/cloud/schedule/destination/create.ts +11 -3
  127. package/src/cmd/cloud/schedule/destination/index.ts +3 -1
  128. package/src/cmd/cloud/schedule/destination/list.ts +19 -17
  129. package/src/cmd/cloud/schedule/get.ts +25 -20
  130. package/src/cmd/cloud/schedule/index.ts +4 -1
  131. package/src/cmd/cloud/schedule/list.ts +18 -16
  132. package/src/cmd/cloud/schedule/stats.ts +1 -3
  133. package/src/cmd/cloud/schedule/util.ts +1 -2
  134. package/src/cmd/cloud/services/stats.ts +13 -39
  135. package/src/cmd/cloud/stream/index.ts +7 -1
  136. package/src/cmd/cloud/stream/stats.ts +2 -6
  137. package/src/cmd/cloud/task/attachment.ts +432 -0
  138. package/src/cmd/cloud/task/create.ts +131 -5
  139. package/src/cmd/cloud/task/get.ts +30 -12
  140. package/src/cmd/cloud/task/index.ts +13 -1
  141. package/src/cmd/cloud/task/list.ts +31 -15
  142. package/src/cmd/cloud/task/stats.ts +3 -3
  143. package/src/cmd/cloud/task/util.ts +2 -4
  144. package/src/cmd/cloud/webhook/create.ts +6 -1
  145. package/src/cmd/cloud/webhook/deliveries.ts +4 -5
  146. package/src/cmd/cloud/webhook/destinations.ts +4 -5
  147. package/src/cmd/dev/index.ts +91 -48
@@ -0,0 +1,393 @@
1
+ import { basename, join } from 'path';
2
+ import { stat as fsStat } from 'node:fs/promises';
3
+ import { z } from 'zod';
4
+ import { createCommand } from '../../../types';
5
+ import * as tui from '../../../tui';
6
+ import { createStorageAdapter } from './util';
7
+ import { getCommand } from '../../../command-prefix';
8
+ function formatBytes(bytes) {
9
+ if (bytes === undefined || bytes === null)
10
+ return '—';
11
+ if (bytes < 1024)
12
+ return `${bytes} B`;
13
+ if (bytes < 1024 * 1024)
14
+ return `${(bytes / 1024).toFixed(1)} KB`;
15
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
16
+ }
17
+ function truncate(s, max) {
18
+ if (s.length <= max)
19
+ return s;
20
+ return `${s.slice(0, max - 1)}…`;
21
+ }
22
+ // ── Upload ──────────────────────────────────────────────────────────────
23
+ const uploadSubcommand = createCommand({
24
+ name: 'upload',
25
+ aliases: ['up', 'put'],
26
+ description: 'Upload a file attachment to a task',
27
+ tags: ['mutating', 'slow', 'requires-auth'],
28
+ requires: { auth: true },
29
+ examples: [
30
+ {
31
+ command: getCommand('cloud task attachment upload task_abc123 ./report.pdf'),
32
+ description: 'Upload a file to a task',
33
+ },
34
+ ],
35
+ schema: {
36
+ args: z.object({
37
+ taskId: z.string().min(1).describe('the task ID to attach the file to'),
38
+ file: z.string().min(1).describe('local file path to upload'),
39
+ }),
40
+ response: z.object({
41
+ success: z.boolean().describe('Whether the operation succeeded'),
42
+ attachment: z.object({
43
+ id: z.string().describe('Attachment ID'),
44
+ filename: z.string().describe('Filename'),
45
+ content_type: z.string().optional().describe('Content type'),
46
+ size: z.number().optional().describe('File size in bytes'),
47
+ }),
48
+ durationMs: z.number().describe('Operation duration in milliseconds'),
49
+ }),
50
+ },
51
+ async handler(ctx) {
52
+ const { args, options } = ctx;
53
+ const started = Date.now();
54
+ const storage = await createStorageAdapter(ctx);
55
+ const file = Bun.file(args.file);
56
+ if (!(await file.exists())) {
57
+ tui.fatal(`File not found: ${args.file}`);
58
+ }
59
+ const filename = basename(args.file);
60
+ const contentType = file.type || 'application/octet-stream';
61
+ const size = file.size;
62
+ // Step 1: Get presigned upload URL
63
+ const presign = await tui.spinner({
64
+ message: 'Requesting upload URL',
65
+ clearOnSuccess: true,
66
+ callback: async () => {
67
+ return storage.uploadAttachment(args.taskId, {
68
+ filename,
69
+ content_type: contentType,
70
+ size,
71
+ });
72
+ },
73
+ });
74
+ // Step 2: Upload file to presigned URL
75
+ await tui.spinner({
76
+ message: `Uploading ${filename}`,
77
+ clearOnSuccess: true,
78
+ callback: async () => {
79
+ const response = await fetch(presign.presigned_url, {
80
+ method: 'PUT',
81
+ body: file.stream(),
82
+ headers: {
83
+ 'Content-Type': contentType,
84
+ },
85
+ duplex: 'half',
86
+ });
87
+ if (!response.ok) {
88
+ tui.fatal(`Upload failed: ${response.statusText}`);
89
+ }
90
+ },
91
+ });
92
+ // Step 3: Confirm the upload
93
+ const attachment = await tui.spinner({
94
+ message: 'Confirming upload',
95
+ clearOnSuccess: true,
96
+ callback: async () => {
97
+ return storage.confirmAttachment(presign.attachment.id);
98
+ },
99
+ });
100
+ const durationMs = Date.now() - started;
101
+ if (!options.json) {
102
+ tui.success(`Attachment uploaded: ${tui.bold(attachment.id)}`);
103
+ const tableData = {
104
+ ID: attachment.id,
105
+ Filename: attachment.filename,
106
+ 'Content Type': attachment.content_type ?? '—',
107
+ Size: formatBytes(attachment.size),
108
+ Task: attachment.task_id,
109
+ Created: new Date(attachment.created_at).toLocaleString(),
110
+ };
111
+ tui.table([tableData], Object.keys(tableData), { layout: 'vertical', padStart: ' ' });
112
+ }
113
+ return {
114
+ success: true,
115
+ attachment: {
116
+ id: attachment.id,
117
+ filename: attachment.filename,
118
+ content_type: attachment.content_type,
119
+ size: attachment.size,
120
+ },
121
+ durationMs,
122
+ };
123
+ },
124
+ });
125
+ // ── List ────────────────────────────────────────────────────────────────
126
+ const listAttachmentsSubcommand = createCommand({
127
+ name: 'list',
128
+ aliases: ['ls'],
129
+ description: 'List attachments for a task',
130
+ tags: ['read-only', 'slow', 'requires-auth'],
131
+ idempotent: true,
132
+ requires: { auth: true },
133
+ examples: [
134
+ {
135
+ command: getCommand('cloud task attachment list task_abc123'),
136
+ description: 'List all attachments for a task',
137
+ },
138
+ ],
139
+ schema: {
140
+ args: z.object({
141
+ taskId: z.string().min(1).describe('the task ID to list attachments for'),
142
+ }),
143
+ response: z.object({
144
+ success: z.boolean().describe('Whether the operation succeeded'),
145
+ attachments: z.array(z.object({
146
+ id: z.string(),
147
+ filename: z.string(),
148
+ content_type: z.string().optional(),
149
+ size: z.number().optional(),
150
+ created_at: z.string(),
151
+ })),
152
+ total: z.number().describe('Total number of attachments'),
153
+ durationMs: z.number().describe('Operation duration in milliseconds'),
154
+ }),
155
+ },
156
+ async handler(ctx) {
157
+ const { args, options } = ctx;
158
+ const started = Date.now();
159
+ const storage = await createStorageAdapter(ctx);
160
+ const result = await storage.listAttachments(args.taskId);
161
+ const durationMs = Date.now() - started;
162
+ if (!options.json) {
163
+ if (result.attachments.length === 0) {
164
+ tui.info('No attachments found');
165
+ }
166
+ else {
167
+ const tableData = result.attachments.map((att) => ({
168
+ ID: tui.muted(truncate(att.id, 28)),
169
+ Filename: truncate(att.filename, 40),
170
+ 'Content Type': att.content_type ?? tui.muted('—'),
171
+ Size: formatBytes(att.size),
172
+ Created: new Date(att.created_at).toLocaleDateString(),
173
+ }));
174
+ tui.table(tableData, [
175
+ { name: 'ID', alignment: 'left' },
176
+ { name: 'Filename', alignment: 'left' },
177
+ { name: 'Content Type', alignment: 'left' },
178
+ { name: 'Size', alignment: 'right' },
179
+ { name: 'Created', alignment: 'left' },
180
+ ]);
181
+ tui.info(`${result.total} ${tui.plural(result.total, 'attachment', 'attachments')} (${durationMs.toFixed(1)}ms)`);
182
+ }
183
+ }
184
+ return {
185
+ success: true,
186
+ attachments: result.attachments.map((att) => ({
187
+ id: att.id,
188
+ filename: att.filename,
189
+ content_type: att.content_type,
190
+ size: att.size,
191
+ created_at: att.created_at,
192
+ })),
193
+ total: result.total,
194
+ durationMs,
195
+ };
196
+ },
197
+ });
198
+ // ── Download ────────────────────────────────────────────────────────────
199
+ const downloadSubcommand = createCommand({
200
+ name: 'download',
201
+ aliases: ['dl', 'get'],
202
+ description: 'Download a task attachment',
203
+ tags: ['read-only', 'slow', 'requires-auth'],
204
+ requires: { auth: true },
205
+ examples: [
206
+ {
207
+ command: getCommand('cloud task attachment download att_abc123'),
208
+ description: 'Download an attachment to the current directory',
209
+ },
210
+ {
211
+ command: getCommand('cloud task attachment download att_abc123 --output ./downloads/'),
212
+ description: 'Download an attachment to a specific directory',
213
+ },
214
+ ],
215
+ schema: {
216
+ args: z.object({
217
+ attachmentId: z.string().min(1).describe('the attachment ID to download'),
218
+ }),
219
+ options: z.object({
220
+ output: z
221
+ .string()
222
+ .optional()
223
+ .describe('output file path or directory (defaults to current directory)'),
224
+ }),
225
+ response: z.object({
226
+ success: z.boolean().describe('Whether the operation succeeded'),
227
+ path: z.string().describe('Path where the file was saved'),
228
+ size: z.number().describe('Downloaded file size in bytes'),
229
+ durationMs: z.number().describe('Operation duration in milliseconds'),
230
+ }),
231
+ },
232
+ async handler(ctx) {
233
+ const { args, opts, options } = ctx;
234
+ const started = Date.now();
235
+ const storage = await createStorageAdapter(ctx);
236
+ // Step 1: Get presigned download URL
237
+ const presign = await tui.spinner({
238
+ message: 'Requesting download URL',
239
+ clearOnSuccess: true,
240
+ callback: async () => {
241
+ return storage.downloadAttachment(args.attachmentId);
242
+ },
243
+ });
244
+ // Step 2: Download the file
245
+ const response = await tui.spinner({
246
+ message: 'Downloading',
247
+ clearOnSuccess: true,
248
+ callback: async () => {
249
+ const res = await fetch(presign.presigned_url);
250
+ if (!res.ok) {
251
+ tui.fatal(`Download failed: ${res.statusText}`);
252
+ }
253
+ return res;
254
+ },
255
+ });
256
+ // Determine output path
257
+ // Extract filename from Content-Disposition header or URL
258
+ let filename = 'attachment';
259
+ const disposition = response.headers.get('content-disposition');
260
+ if (disposition) {
261
+ const match = disposition.match(/filename[*]?=(?:UTF-8''|"?)([^";]+)/i);
262
+ if (match?.[1]) {
263
+ filename = decodeURIComponent(match[1].replace(/"/g, ''));
264
+ }
265
+ }
266
+ else {
267
+ // Try to extract filename from the presigned URL path
268
+ const urlPath = new URL(presign.presigned_url).pathname;
269
+ const urlFilename = basename(urlPath);
270
+ if (urlFilename && urlFilename !== '/') {
271
+ filename = decodeURIComponent(urlFilename);
272
+ }
273
+ }
274
+ // Sanitize filename against path traversal
275
+ filename = filename.replace(/\0/g, ''); // strip null bytes
276
+ filename = filename.replace(/[/\\]/g, '_'); // replace path separators
277
+ filename = filename.replace(/^\.+/, ''); // strip leading dots
278
+ if (!filename || filename === '.' || filename === '..') {
279
+ filename = 'attachment';
280
+ }
281
+ let outputPath;
282
+ if (opts.output) {
283
+ try {
284
+ const stats = await fsStat(opts.output);
285
+ if (stats.isDirectory()) {
286
+ outputPath = join(opts.output, filename);
287
+ }
288
+ else {
289
+ // It's an existing file — use it directly
290
+ outputPath = opts.output;
291
+ }
292
+ }
293
+ catch {
294
+ // Path doesn't exist — treat as target file path
295
+ outputPath = opts.output;
296
+ }
297
+ }
298
+ else {
299
+ outputPath = join(process.cwd(), filename);
300
+ }
301
+ // Step 3: Write file to disk
302
+ const size = await tui.spinner({
303
+ message: `Saving to ${outputPath}`,
304
+ clearOnSuccess: true,
305
+ callback: async () => {
306
+ const bytes = await Bun.write(outputPath, response);
307
+ return bytes;
308
+ },
309
+ });
310
+ const durationMs = Date.now() - started;
311
+ if (!options.json) {
312
+ tui.success(`Downloaded to ${tui.bold(outputPath)} (${formatBytes(size)})`);
313
+ }
314
+ return {
315
+ success: true,
316
+ path: outputPath,
317
+ size,
318
+ durationMs,
319
+ };
320
+ },
321
+ });
322
+ // ── Delete ──────────────────────────────────────────────────────────────
323
+ const deleteAttachmentSubcommand = createCommand({
324
+ name: 'delete',
325
+ aliases: ['rm', 'remove'],
326
+ description: 'Delete a task attachment',
327
+ tags: ['mutating', 'slow', 'requires-auth'],
328
+ requires: { auth: true },
329
+ examples: [
330
+ {
331
+ command: getCommand('cloud task attachment delete att_abc123'),
332
+ description: 'Delete an attachment',
333
+ },
334
+ ],
335
+ schema: {
336
+ args: z.object({
337
+ attachmentId: z.string().min(1).describe('the attachment ID to delete'),
338
+ }),
339
+ response: z.object({
340
+ success: z.boolean().describe('Whether the operation succeeded'),
341
+ attachmentId: z.string().describe('Deleted attachment ID'),
342
+ durationMs: z.number().describe('Operation duration in milliseconds'),
343
+ }),
344
+ },
345
+ async handler(ctx) {
346
+ const { args, options } = ctx;
347
+ const started = Date.now();
348
+ const storage = await createStorageAdapter(ctx);
349
+ await storage.deleteAttachment(args.attachmentId);
350
+ const durationMs = Date.now() - started;
351
+ if (!options.json) {
352
+ tui.success(`Attachment deleted: ${tui.bold(args.attachmentId)}`);
353
+ }
354
+ return {
355
+ success: true,
356
+ attachmentId: args.attachmentId,
357
+ durationMs,
358
+ };
359
+ },
360
+ });
361
+ // ── Parent command ──────────────────────────────────────────────────────
362
+ export const attachmentSubcommand = createCommand({
363
+ name: 'attachment',
364
+ aliases: ['attach', 'att'],
365
+ description: 'Manage task attachments',
366
+ tags: ['requires-auth'],
367
+ requires: { auth: true },
368
+ examples: [
369
+ {
370
+ command: getCommand('cloud task attachment upload task_abc123 ./report.pdf'),
371
+ description: 'Upload a file to a task',
372
+ },
373
+ {
374
+ command: getCommand('cloud task attachment list task_abc123'),
375
+ description: 'List task attachments',
376
+ },
377
+ {
378
+ command: getCommand('cloud task attachment download att_abc123'),
379
+ description: 'Download an attachment',
380
+ },
381
+ {
382
+ command: getCommand('cloud task attachment delete att_abc123'),
383
+ description: 'Delete an attachment',
384
+ },
385
+ ],
386
+ subcommands: [
387
+ uploadSubcommand,
388
+ listAttachmentsSubcommand,
389
+ downloadSubcommand,
390
+ deleteAttachmentSubcommand,
391
+ ],
392
+ });
393
+ //# sourceMappingURL=attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/attachment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/create.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,gBAAgB,sCAoG3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/create.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,gBAAgB,sCAuN3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -1,8 +1,12 @@
1
+ import { basename, join } from 'path';
1
2
  import { z } from 'zod';
2
3
  import { createCommand } from '../../../types';
3
4
  import * as tui from '../../../tui';
4
5
  import { createStorageAdapter, parseMetadataFlag, cacheTaskId } from './util';
5
6
  import { getCommand } from '../../../command-prefix';
7
+ import { whoami } from '@agentuity/server';
8
+ import { getCachedUserInfo, setCachedUserInfo } from '../../../cache';
9
+ import { defaultProfileName } from '../../../config';
6
10
  const TaskCreateResponseSchema = z.object({
7
11
  success: z.boolean().describe('Whether the operation succeeded'),
8
12
  task: z.object({
@@ -13,6 +17,13 @@ const TaskCreateResponseSchema = z.object({
13
17
  priority: z.string().describe('Task priority'),
14
18
  created_at: z.string().describe('Creation timestamp'),
15
19
  }),
20
+ attachment: z
21
+ .object({
22
+ id: z.string().describe('Attachment ID'),
23
+ filename: z.string().describe('Attached filename'),
24
+ })
25
+ .optional()
26
+ .describe('Attached file info (when --file is used)'),
16
27
  durationMs: z.number().describe('Operation duration in milliseconds'),
17
28
  });
18
29
  export const createSubcommand = createCommand({
@@ -20,7 +31,8 @@ export const createSubcommand = createCommand({
20
31
  aliases: ['new', 'add'],
21
32
  description: 'Create a new task',
22
33
  tags: ['mutating', 'slow', 'requires-auth'],
23
- requires: { auth: true },
34
+ requires: { auth: true, apiClient: true },
35
+ optional: { project: true },
24
36
  examples: [
25
37
  {
26
38
  command: getCommand('cloud task create "Fix login bug" --type bug --created-id agent_001'),
@@ -41,19 +53,34 @@ export const createSubcommand = createCommand({
41
53
  }),
42
54
  options: z.object({
43
55
  type: z.enum(['epic', 'feature', 'enhancement', 'bug', 'task']).describe('the task type'),
44
- createdId: z.string().min(1).describe('the ID of the creator (agent or user)'),
56
+ createdId: z
57
+ .string()
58
+ .min(1)
59
+ .optional()
60
+ .describe('the ID of the creator (agent or user, defaults to authenticated user)'),
61
+ createdName: z
62
+ .string()
63
+ .min(1)
64
+ .optional()
65
+ .describe('the display name of the creator (used with --created-id)'),
66
+ projectId: z.string().optional().describe('project ID to associate with the task'),
67
+ projectName: z
68
+ .string()
69
+ .optional()
70
+ .describe('project display name (used with --project-id)'),
45
71
  description: z.string().optional().describe('task description'),
46
72
  priority: z
47
73
  .enum(['high', 'medium', 'low', 'none'])
48
74
  .optional()
49
75
  .describe('task priority (default: none)'),
50
76
  status: z
51
- .enum(['open', 'in_progress', 'closed'])
77
+ .enum(['open', 'in_progress', 'closed', 'done', 'cancelled'])
52
78
  .optional()
53
79
  .describe('initial task status (default: open)'),
54
80
  parentId: z.string().optional().describe('parent task ID for subtasks'),
55
81
  assignedId: z.string().optional().describe('ID of the assigned agent or user'),
56
82
  metadata: z.string().optional().describe('JSON metadata object'),
83
+ file: z.string().optional().describe('file path to attach to the task'),
57
84
  }),
58
85
  response: TaskCreateResponseSchema,
59
86
  },
@@ -62,10 +89,68 @@ export const createSubcommand = createCommand({
62
89
  const started = Date.now();
63
90
  const storage = await createStorageAdapter(ctx);
64
91
  const metadata = parseMetadataFlag(opts.metadata);
92
+ // Resolve creator info
93
+ const createdId = opts.createdId ?? ctx.auth.userId;
94
+ let creator;
95
+ if (opts.createdId && opts.createdName) {
96
+ // Explicit creator with name
97
+ creator = { id: opts.createdId, name: opts.createdName };
98
+ }
99
+ else if (!opts.createdId) {
100
+ // Using auth userId — check cache first, then fall back to whoami API call
101
+ const profileName = ctx.config?.name ?? defaultProfileName;
102
+ const cached = getCachedUserInfo(profileName);
103
+ if (cached) {
104
+ const name = [cached.firstName, cached.lastName].filter(Boolean).join(' ');
105
+ if (name) {
106
+ creator = { id: createdId, name };
107
+ }
108
+ }
109
+ else {
110
+ // Fetch from API and cache
111
+ try {
112
+ const user = await whoami(ctx.apiClient);
113
+ const name = [user.firstName, user.lastName].filter(Boolean).join(' ');
114
+ if (name) {
115
+ creator = { id: createdId, name };
116
+ }
117
+ setCachedUserInfo(profileName, createdId, user.firstName, user.lastName);
118
+ }
119
+ catch {
120
+ // Fall back to no creator EntityRef — task DB will use id as name
121
+ }
122
+ }
123
+ }
124
+ // Resolve project info
125
+ let project;
126
+ if (opts.projectId) {
127
+ // Explicit project via flags
128
+ project = { id: opts.projectId, name: opts.projectName ?? opts.projectId };
129
+ }
130
+ else if (ctx.project?.projectId) {
131
+ // Auto-detect from project context — read name from package.json
132
+ let projectName = ctx.project.projectId;
133
+ try {
134
+ const pkgPath = join(ctx.projectDir, 'package.json');
135
+ const pkgFile = Bun.file(pkgPath);
136
+ if (await pkgFile.exists()) {
137
+ const pkg = await pkgFile.json();
138
+ if (pkg.name) {
139
+ projectName = pkg.name;
140
+ }
141
+ }
142
+ }
143
+ catch {
144
+ // Fall back to projectId as name
145
+ }
146
+ project = { id: ctx.project.projectId, name: projectName };
147
+ }
65
148
  const task = await storage.create({
66
149
  title: args.title,
67
150
  type: opts.type,
68
- created_id: opts.createdId,
151
+ created_id: createdId,
152
+ creator,
153
+ project,
69
154
  description: opts.description,
70
155
  priority: opts.priority,
71
156
  status: opts.status,
@@ -73,8 +158,37 @@ export const createSubcommand = createCommand({
73
158
  assigned_id: opts.assignedId,
74
159
  metadata,
75
160
  });
76
- const durationMs = Date.now() - started;
77
161
  await cacheTaskId(ctx, task.id);
162
+ // Handle --file attachment
163
+ let attachmentInfo;
164
+ if (opts.file) {
165
+ const file = Bun.file(opts.file);
166
+ if (!(await file.exists())) {
167
+ tui.fatal(`File not found: ${opts.file}`);
168
+ }
169
+ const filename = basename(opts.file);
170
+ const contentType = file.type || 'application/octet-stream';
171
+ const size = file.size;
172
+ const presign = await storage.uploadAttachment(task.id, {
173
+ filename,
174
+ content_type: contentType,
175
+ size,
176
+ });
177
+ const uploadResponse = await fetch(presign.presigned_url, {
178
+ method: 'PUT',
179
+ body: file.stream(),
180
+ headers: {
181
+ 'Content-Type': contentType,
182
+ },
183
+ duplex: 'half',
184
+ });
185
+ if (!uploadResponse.ok) {
186
+ tui.fatal(`Attachment upload failed: ${uploadResponse.statusText}`);
187
+ }
188
+ const attachment = await storage.confirmAttachment(presign.attachment.id);
189
+ attachmentInfo = { id: attachment.id, filename: attachment.filename };
190
+ }
191
+ const durationMs = Date.now() - started;
78
192
  if (!options.json) {
79
193
  tui.success(`Task created: ${tui.bold(task.id)}`);
80
194
  const tableData = {
@@ -87,6 +201,12 @@ export const createSubcommand = createCommand({
87
201
  if (task.description) {
88
202
  tableData['Description'] = task.description;
89
203
  }
204
+ if (project) {
205
+ tableData['Project'] = project.name;
206
+ }
207
+ if (attachmentInfo) {
208
+ tableData['Attachment'] = `${attachmentInfo.filename} (${attachmentInfo.id})`;
209
+ }
90
210
  tui.table([tableData], Object.keys(tableData), { layout: 'vertical', padStart: ' ' });
91
211
  }
92
212
  return {
@@ -99,6 +219,7 @@ export const createSubcommand = createCommand({
99
219
  priority: task.priority,
100
220
  created_at: task.created_at,
101
221
  },
222
+ ...(attachmentInfo ? { attachment: attachmentInfo } : {}),
102
223
  durationMs,
103
224
  };
104
225
  },
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/get.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,aAAa,sCA2GxB,CAAC;AAEH,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/get.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,aAAa,sCAoHxB,CAAC;AAEH,eAAe,aAAa,CAAC"}