@agentuity/cli 2.0.5 → 2.0.7

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 (128) hide show
  1. package/README.md +11 -0
  2. package/dist/cmd/build/patch/otel-llm.js +2 -2
  3. package/dist/cmd/build/patch/otel-llm.js.map +1 -1
  4. package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
  5. package/dist/cmd/build/vite/bun-dev-server.js +1 -0
  6. package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
  7. package/dist/cmd/build/vite/index.d.ts +0 -28
  8. package/dist/cmd/build/vite/index.d.ts.map +1 -1
  9. package/dist/cmd/build/vite/index.js +1 -104
  10. package/dist/cmd/build/vite/index.js.map +1 -1
  11. package/dist/cmd/build/vite/metadata-generator.d.ts.map +1 -1
  12. package/dist/cmd/build/vite/metadata-generator.js +8 -2
  13. package/dist/cmd/build/vite/metadata-generator.js.map +1 -1
  14. package/dist/cmd/build/vite/vite-asset-server-config.d.ts +2 -0
  15. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
  16. package/dist/cmd/build/vite/vite-asset-server-config.js +5 -1
  17. package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
  18. package/dist/cmd/build/vite/vite-asset-server.d.ts +2 -0
  19. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
  20. package/dist/cmd/build/vite/vite-asset-server.js +2 -1
  21. package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
  22. package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
  23. package/dist/cmd/build/vite/vite-builder.js +143 -2
  24. package/dist/cmd/build/vite/vite-builder.js.map +1 -1
  25. package/dist/cmd/cloud/task/close.d.ts +3 -0
  26. package/dist/cmd/cloud/task/close.d.ts.map +1 -0
  27. package/dist/cmd/cloud/task/close.js +286 -0
  28. package/dist/cmd/cloud/task/close.js.map +1 -0
  29. package/dist/cmd/cloud/task/delete.d.ts +1 -5
  30. package/dist/cmd/cloud/task/delete.d.ts.map +1 -1
  31. package/dist/cmd/cloud/task/delete.js +15 -38
  32. package/dist/cmd/cloud/task/delete.js.map +1 -1
  33. package/dist/cmd/cloud/task/index.d.ts.map +1 -1
  34. package/dist/cmd/cloud/task/index.js +10 -0
  35. package/dist/cmd/cloud/task/index.js.map +1 -1
  36. package/dist/cmd/cloud/task/list.d.ts.map +1 -1
  37. package/dist/cmd/cloud/task/list.js +97 -3
  38. package/dist/cmd/cloud/task/list.js.map +1 -1
  39. package/dist/cmd/cloud/task/util.d.ts +10 -0
  40. package/dist/cmd/cloud/task/util.d.ts.map +1 -1
  41. package/dist/cmd/cloud/task/util.js +47 -3
  42. package/dist/cmd/cloud/task/util.js.map +1 -1
  43. package/dist/cmd/coder/config/index.d.ts +2 -0
  44. package/dist/cmd/coder/config/index.d.ts.map +1 -0
  45. package/dist/cmd/coder/config/index.js +20 -0
  46. package/dist/cmd/coder/config/index.js.map +1 -0
  47. package/dist/cmd/coder/config/set.d.ts +2 -0
  48. package/dist/cmd/coder/config/set.d.ts.map +1 -0
  49. package/dist/cmd/coder/config/set.js +100 -0
  50. package/dist/cmd/coder/config/set.js.map +1 -0
  51. package/dist/cmd/coder/hub-url.d.ts +21 -10
  52. package/dist/cmd/coder/hub-url.d.ts.map +1 -1
  53. package/dist/cmd/coder/hub-url.js +97 -55
  54. package/dist/cmd/coder/hub-url.js.map +1 -1
  55. package/dist/cmd/coder/index.d.ts.map +1 -1
  56. package/dist/cmd/coder/index.js +6 -1
  57. package/dist/cmd/coder/index.js.map +1 -1
  58. package/dist/cmd/coder/inspect.d.ts.map +1 -1
  59. package/dist/cmd/coder/inspect.js +15 -7
  60. package/dist/cmd/coder/inspect.js.map +1 -1
  61. package/dist/cmd/coder/list.d.ts.map +1 -1
  62. package/dist/cmd/coder/list.js +14 -7
  63. package/dist/cmd/coder/list.js.map +1 -1
  64. package/dist/cmd/coder/start.d.ts.map +1 -1
  65. package/dist/cmd/coder/start.js +38 -23
  66. package/dist/cmd/coder/start.js.map +1 -1
  67. package/dist/cmd/coder/tui-init.d.ts +4 -1
  68. package/dist/cmd/coder/tui-init.d.ts.map +1 -1
  69. package/dist/cmd/coder/tui-init.js +3 -2
  70. package/dist/cmd/coder/tui-init.js.map +1 -1
  71. package/dist/cmd/dev/index.d.ts.map +1 -1
  72. package/dist/cmd/dev/index.js +1 -0
  73. package/dist/cmd/dev/index.js.map +1 -1
  74. package/dist/cmd/dev/sync.js +5 -5
  75. package/dist/cmd/dev/sync.js.map +1 -1
  76. package/dist/coder-config.d.ts +14 -0
  77. package/dist/coder-config.d.ts.map +1 -0
  78. package/dist/coder-config.js +119 -0
  79. package/dist/coder-config.js.map +1 -0
  80. package/dist/coder-hub-url.d.ts +3 -0
  81. package/dist/coder-hub-url.d.ts.map +1 -0
  82. package/dist/coder-hub-url.js +32 -0
  83. package/dist/coder-hub-url.js.map +1 -0
  84. package/dist/config.d.ts +1 -0
  85. package/dist/config.d.ts.map +1 -1
  86. package/dist/config.js +11 -0
  87. package/dist/config.js.map +1 -1
  88. package/dist/internal-logger.d.ts +4 -0
  89. package/dist/internal-logger.d.ts.map +1 -1
  90. package/dist/internal-logger.js +64 -2
  91. package/dist/internal-logger.js.map +1 -1
  92. package/dist/keychain.d.ts +3 -0
  93. package/dist/keychain.d.ts.map +1 -1
  94. package/dist/keychain.js +47 -28
  95. package/dist/keychain.js.map +1 -1
  96. package/dist/types.d.ts +4 -0
  97. package/dist/types.d.ts.map +1 -1
  98. package/dist/types.js +10 -0
  99. package/dist/types.js.map +1 -1
  100. package/package.json +6 -6
  101. package/src/cmd/build/patch/otel-llm.ts +2 -2
  102. package/src/cmd/build/vite/bun-dev-server.ts +1 -0
  103. package/src/cmd/build/vite/index.ts +1 -148
  104. package/src/cmd/build/vite/metadata-generator.ts +8 -2
  105. package/src/cmd/build/vite/vite-asset-server-config.ts +16 -1
  106. package/src/cmd/build/vite/vite-asset-server.ts +4 -0
  107. package/src/cmd/build/vite/vite-builder.ts +171 -9
  108. package/src/cmd/cloud/task/close.ts +319 -0
  109. package/src/cmd/cloud/task/delete.ts +15 -43
  110. package/src/cmd/cloud/task/index.ts +10 -0
  111. package/src/cmd/cloud/task/list.ts +111 -4
  112. package/src/cmd/cloud/task/util.ts +59 -5
  113. package/src/cmd/coder/config/index.ts +20 -0
  114. package/src/cmd/coder/config/set.ts +112 -0
  115. package/src/cmd/coder/hub-url.ts +147 -53
  116. package/src/cmd/coder/index.ts +6 -1
  117. package/src/cmd/coder/inspect.ts +33 -10
  118. package/src/cmd/coder/list.ts +33 -10
  119. package/src/cmd/coder/start.ts +62 -26
  120. package/src/cmd/coder/tui-init.ts +7 -2
  121. package/src/cmd/dev/index.ts +1 -0
  122. package/src/cmd/dev/sync.ts +5 -5
  123. package/src/coder-config.ts +141 -0
  124. package/src/coder-hub-url.ts +32 -0
  125. package/src/config.ts +13 -0
  126. package/src/internal-logger.ts +83 -2
  127. package/src/keychain.ts +68 -39
  128. package/src/types.ts +10 -0
@@ -4,7 +4,110 @@
4
4
  * Utilities for running Vite builds (client, server, workbench)
5
5
  */
6
6
  import { join } from 'node:path';
7
- import { existsSync, rmSync } from 'node:fs';
7
+ import { existsSync, rmSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs';
8
+ import { createHash } from 'node:crypto';
9
+ import { createRequire } from 'node:module';
10
+ /**
11
+ * Read the pre-built beacon script from @agentuity/frontend package.
12
+ * Tries multiple resolution strategies for workspace/installed/symlink scenarios.
13
+ */
14
+ async function readBeaconScript(projectRoot) {
15
+ let frontendPath = null;
16
+ try {
17
+ frontendPath = await Bun.resolve('@agentuity/frontend', projectRoot);
18
+ }
19
+ catch {
20
+ // Not found from project root
21
+ }
22
+ if (!frontendPath) {
23
+ try {
24
+ const thisDir = new URL('.', import.meta.url).pathname;
25
+ frontendPath = await Bun.resolve('@agentuity/frontend', thisDir);
26
+ }
27
+ catch {
28
+ // Not found from CLI directory
29
+ }
30
+ }
31
+ if (!frontendPath) {
32
+ try {
33
+ const projectRequire = createRequire(join(projectRoot, 'package.json'));
34
+ frontendPath = projectRequire.resolve('@agentuity/frontend');
35
+ }
36
+ catch {
37
+ // Not found via createRequire
38
+ }
39
+ }
40
+ if (!frontendPath) {
41
+ throw new Error('Could not resolve @agentuity/frontend. Ensure the package is installed and built.');
42
+ }
43
+ const packageDir = join(frontendPath, '..');
44
+ const beaconPath = join(packageDir, 'beacon.js');
45
+ const beaconFile = Bun.file(beaconPath);
46
+ if (!(await beaconFile.exists())) {
47
+ throw new Error(`Beacon script not found at ${beaconPath}. Run "bun run build" in @agentuity/frontend first.`);
48
+ }
49
+ return beaconFile.text();
50
+ }
51
+ /**
52
+ * Post-build step: inject the analytics beacon into the built index.html.
53
+ *
54
+ * 1. Reads the beacon script from @agentuity/frontend
55
+ * 2. Writes it as a content-hashed asset file
56
+ * 3. Injects a <script data-agentuity-beacon> tag into the HTML
57
+ *
58
+ * This runs after `vite build` completes so it works regardless of the
59
+ * user's vite.config.ts — no Vite plugin required.
60
+ */
61
+ async function injectBeacon(rootDir, cdnBaseUrl, logger) {
62
+ const clientDir = join(rootDir, '.agentuity/client');
63
+ const indexHtmlPath = join(clientDir, 'index.html');
64
+ if (!existsSync(indexHtmlPath)) {
65
+ logger.debug('No index.html found, skipping beacon injection');
66
+ return;
67
+ }
68
+ let beaconCode;
69
+ try {
70
+ beaconCode = await readBeaconScript(rootDir);
71
+ }
72
+ catch (error) {
73
+ logger.warn('Failed to read beacon script, skipping injection: %s', error instanceof Error ? error.message : String(error));
74
+ return;
75
+ }
76
+ // Write beacon as a content-hashed asset (matches Vite's naming convention)
77
+ const hash = createHash('sha256').update(beaconCode).digest('hex').slice(0, 8);
78
+ const beaconFileName = `agentuity-beacon-${hash}.js`;
79
+ const assetsDir = join(clientDir, 'assets');
80
+ mkdirSync(assetsDir, { recursive: true });
81
+ writeFileSync(join(assetsDir, beaconFileName), beaconCode);
82
+ // If a Vite manifest exists, add the beacon so the metadata generator
83
+ // includes it in the asset list. When no manifest exists, the directory
84
+ // scanner in metadata-generator.ts picks up assets/ directly.
85
+ const manifestPath = join(clientDir, '.vite', 'manifest.json');
86
+ if (existsSync(manifestPath)) {
87
+ const manifest = JSON.parse(readFileSync(manifestPath, 'utf-8'));
88
+ manifest['agentuity-beacon'] = { file: `assets/${beaconFileName}` };
89
+ writeFileSync(manifestPath, JSON.stringify(manifest));
90
+ }
91
+ // Build the beacon URL using the CDN base
92
+ const normalizedBase = cdnBaseUrl.endsWith('/') ? cdnBaseUrl : `${cdnBaseUrl}/`;
93
+ const beaconUrl = `${normalizedBase}assets/${beaconFileName}`;
94
+ // Inject the script tag into index.html
95
+ // The script must be sync (no async/defer) to patch history API before router loads.
96
+ // The data-agentuity-beacon attribute is the marker the runtime looks for.
97
+ const beaconScript = `<script data-agentuity-beacon src="${beaconUrl}"></script>`;
98
+ let html = readFileSync(indexHtmlPath, 'utf-8');
99
+ if (html.includes('</head>')) {
100
+ html = html.replace('</head>', `${beaconScript}</head>`);
101
+ }
102
+ else if (html.includes('<body')) {
103
+ html = html.replace(/<body([^>]*)>/, `<body$1>${beaconScript}`);
104
+ }
105
+ else {
106
+ html = beaconScript + html;
107
+ }
108
+ writeFileSync(indexHtmlPath, html);
109
+ logger.debug('Injected analytics beacon: %s', beaconUrl);
110
+ }
8
111
  /**
9
112
  * Run a Vite build for the specified mode
10
113
  * Uses inline Vite config (customizable via agentuity.config.ts)
@@ -76,10 +179,35 @@ export default defineConfig({
76
179
  `;
77
180
  await Bun.write(viteConfigPath, fallbackConfig);
78
181
  }
182
+ // Construct CDN base URL for production builds so Vite prefixes all
183
+ // asset URLs (CSS, JS chunks) with the CDN origin instead of "/".
184
+ const cdnBaseUrl = !dev && options.deploymentId
185
+ ? `https://${options.region === 'local' ? 'localstack-static-assets.t3.storageapi.dev' : 'cdn.agentuity.com'}/${options.deploymentId}/client/`
186
+ : undefined;
187
+ const args = [
188
+ 'bun',
189
+ 'x',
190
+ 'vite',
191
+ 'build',
192
+ '--mode',
193
+ buildMode,
194
+ '--outDir',
195
+ clientOutDir,
196
+ '--logLevel',
197
+ 'error',
198
+ '--clearScreen',
199
+ 'false',
200
+ ];
201
+ if (cdnBaseUrl) {
202
+ args.push('--base', cdnBaseUrl);
203
+ }
79
204
  logger.debug('Spawning vite build for client (subprocess mode)');
80
205
  logger.debug(' outDir: %s', clientOutDir);
81
206
  logger.debug(' mode: %s', buildMode);
82
- const viteProcess = Bun.spawn(['bun', 'x', 'vite', 'build', '--mode', buildMode, '--outDir', clientOutDir], {
207
+ if (cdnBaseUrl) {
208
+ logger.debug(' base (CDN): %s', cdnBaseUrl);
209
+ }
210
+ const viteProcess = Bun.spawn(args, {
83
211
  cwd: rootDir,
84
212
  stdout: 'inherit',
85
213
  stderr: 'inherit',
@@ -188,6 +316,19 @@ export async function runAllBuilds(options) {
188
316
  renameSync(nestedIndexHtml, rootIndexHtml);
189
317
  logger.debug('Moved index.html from src/web/ to client root');
190
318
  }
319
+ // Post-build: inject analytics beacon into the built HTML.
320
+ // Must run AFTER the index.html normalization above (Vite may
321
+ // output to src/web/index.html which gets moved to the client root).
322
+ const isLocalRegion = options.region === 'local';
323
+ const cdnDomain = isLocalRegion
324
+ ? 'localstack-static-assets.t3.storageapi.dev'
325
+ : 'cdn.agentuity.com';
326
+ const cdnBaseUrl = !dev && options.deploymentId
327
+ ? `https://${cdnDomain}/${options.deploymentId}/client/`
328
+ : undefined;
329
+ if (cdnBaseUrl && analyticsEnabled) {
330
+ await injectBeacon(rootDir, cdnBaseUrl, logger);
331
+ }
191
332
  result.client.included = true;
192
333
  result.client.duration = Date.now() - started;
193
334
  endClientDiagnostic?.();
@@ -1 +1 @@
1
- {"version":3,"file":"vite-builder.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/vite-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vite-builder.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/vite-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const closeSubcommand: import("../../..").CommandDefinition;
2
+ export default closeSubcommand;
3
+ //# sourceMappingURL=close.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/close.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,eAAe,sCAkS1B,CAAC;AAEH,eAAe,eAAe,CAAC"}
@@ -0,0 +1,286 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../types';
3
+ import * as tui from '../../../tui';
4
+ import { createStorageAdapter, resolveMeId, parseDuration, truncate } from './util';
5
+ import { getCommand } from '../../../command-prefix';
6
+ import { isDryRunMode, outputDryRun } from '../../../explain';
7
+ const TaskCloseResponseSchema = z.object({
8
+ success: z.boolean().describe('Whether the operation succeeded'),
9
+ closed: z
10
+ .array(z.object({
11
+ id: z.string().describe('Closed task ID'),
12
+ title: z.string().describe('Closed task title'),
13
+ status: z.string().describe('Task status'),
14
+ closed_date: z.string().optional().describe('ISO 8601 closed date'),
15
+ }))
16
+ .describe('List of closed tasks'),
17
+ count: z.number().describe('Number of tasks closed'),
18
+ durationMs: z.number().describe('Operation duration in milliseconds'),
19
+ dryRun: z.boolean().optional().describe('Whether this was a dry run'),
20
+ message: z.string().optional().describe('Status message'),
21
+ });
22
+ export const closeSubcommand = createCommand({
23
+ name: 'close',
24
+ aliases: ['done', 'complete'],
25
+ description: 'Close a task by ID or batch-close tasks by filter',
26
+ tags: ['mutating', 'slow', 'requires-auth'],
27
+ requires: { auth: true },
28
+ examples: [
29
+ {
30
+ command: getCommand('cloud task close task_abc123'),
31
+ description: 'Close a single task by ID',
32
+ },
33
+ {
34
+ command: getCommand('cloud task close --status in_progress --older-than 7d'),
35
+ description: 'Close in-progress tasks older than 7 days',
36
+ },
37
+ {
38
+ command: getCommand('cloud task close --status open --limit 10 --dry-run'),
39
+ description: 'Preview which open tasks would be closed (dry run)',
40
+ },
41
+ {
42
+ command: getCommand('cloud task close --created-id me --confirm'),
43
+ description: 'Close all tasks created by me without confirmation prompt',
44
+ },
45
+ ],
46
+ schema: {
47
+ args: z.object({
48
+ id: z.string().optional().describe('Task ID to close (for single close)'),
49
+ }),
50
+ options: z.object({
51
+ status: z
52
+ .enum(['open', 'in_progress', 'started', 'done', 'completed', 'closed', 'cancelled'])
53
+ .optional()
54
+ .describe('filter batch close by status'),
55
+ type: z
56
+ .enum(['epic', 'feature', 'enhancement', 'bug', 'task'])
57
+ .optional()
58
+ .describe('filter batch close by type'),
59
+ priority: z
60
+ .enum(['high', 'medium', 'low', 'none'])
61
+ .optional()
62
+ .describe('filter batch close by priority'),
63
+ olderThan: z
64
+ .string()
65
+ .optional()
66
+ .describe('filter batch close by age (e.g. 30s, 7d, 24h, 2w)'),
67
+ parentId: z.string().optional().describe('filter batch close by parent task ID'),
68
+ createdId: z
69
+ .string()
70
+ .optional()
71
+ .describe('filter batch close by creator ID (use "me" for current user)'),
72
+ assignedId: z.string().optional().describe('filter batch close by assigned user ID'),
73
+ projectId: z.string().optional().describe('filter batch close by project ID'),
74
+ tagId: z.string().optional().describe('filter batch close by tag ID'),
75
+ idsFile: z.string().optional().describe('path to JSON file containing task IDs to close'),
76
+ orgId: z.string().optional().describe('organization ID (uses default if not specified)'),
77
+ dryRun: z
78
+ .boolean()
79
+ .optional()
80
+ .default(false)
81
+ .describe('preview changes without executing'),
82
+ limit: z.coerce
83
+ .number()
84
+ .int()
85
+ .min(1)
86
+ .max(200)
87
+ .default(50)
88
+ .describe('max tasks to close in batch mode (default: 50, max: 200)'),
89
+ confirm: z.boolean().optional().default(false).describe('skip confirmation prompt'),
90
+ }),
91
+ response: TaskCloseResponseSchema,
92
+ },
93
+ async handler(ctx) {
94
+ const { args, opts, options } = ctx;
95
+ const started = Date.now();
96
+ const storage = await createStorageAdapter(ctx);
97
+ const isSingleClose = !!args.id;
98
+ const hasFilters = opts.status ||
99
+ opts.type ||
100
+ opts.priority ||
101
+ opts.olderThan ||
102
+ opts.parentId ||
103
+ opts.createdId ||
104
+ opts.assignedId ||
105
+ opts.projectId ||
106
+ opts.tagId ||
107
+ opts.idsFile;
108
+ if (!isSingleClose && !hasFilters) {
109
+ tui.fatal('Provide a task ID for single close, or use --status, --type, --priority, --older-than, --parent-id, --created-id, --assigned-id, --project-id, --tag-id, or --ids-file for batch close.');
110
+ }
111
+ if (isSingleClose && hasFilters) {
112
+ tui.fatal('Cannot combine task ID with filter options. Use either single close (by ID) or batch close (by filters).');
113
+ }
114
+ if (isSingleClose) {
115
+ if (isDryRunMode(options)) {
116
+ outputDryRun(`Would close task: ${args.id}`, options);
117
+ return {
118
+ success: true,
119
+ closed: [{ id: args.id, title: '(dry run)', status: 'done' }],
120
+ count: 1,
121
+ durationMs: Date.now() - started,
122
+ dryRun: true,
123
+ message: 'Dry run — no tasks were closed',
124
+ };
125
+ }
126
+ if (!opts.confirm) {
127
+ const confirmed = await tui.confirm(`Close task "${args.id}"?`, false);
128
+ if (!confirmed) {
129
+ if (!options.json)
130
+ tui.info('Cancelled');
131
+ return {
132
+ success: false,
133
+ closed: [],
134
+ count: 0,
135
+ durationMs: Date.now() - started,
136
+ message: 'Cancelled',
137
+ };
138
+ }
139
+ }
140
+ const task = await storage.close(args.id);
141
+ const durationMs = Date.now() - started;
142
+ if (!options.json) {
143
+ tui.success(`Closed task ${tui.bold(task.id)} (${task.title}) in ${durationMs}ms`);
144
+ }
145
+ return {
146
+ success: true,
147
+ closed: [
148
+ {
149
+ id: task.id,
150
+ title: task.title,
151
+ status: task.status,
152
+ closed_date: task.closed_date,
153
+ },
154
+ ],
155
+ count: 1,
156
+ durationMs,
157
+ };
158
+ }
159
+ // Batch close mode
160
+ if (opts.olderThan) {
161
+ parseDuration(opts.olderThan);
162
+ }
163
+ const createdId = resolveMeId(opts.createdId, ctx);
164
+ const assignedId = resolveMeId(opts.assignedId, ctx);
165
+ // Handle IDs file
166
+ let explicitIds;
167
+ if (opts.idsFile) {
168
+ const file = Bun.file(opts.idsFile);
169
+ if (!(await file.exists())) {
170
+ tui.fatal(`IDs file not found: ${opts.idsFile}`);
171
+ }
172
+ try {
173
+ const content = await file.json();
174
+ if (Array.isArray(content)) {
175
+ explicitIds = content.map((id) => String(id));
176
+ }
177
+ else if (content && Array.isArray(content.ids)) {
178
+ explicitIds = content.ids;
179
+ }
180
+ else {
181
+ tui.fatal(`Invalid IDs file format. Expected array of IDs or { ids: [...] }`);
182
+ }
183
+ }
184
+ catch (err) {
185
+ tui.fatal(`Failed to parse IDs file: ${err}`);
186
+ }
187
+ }
188
+ const batchParams = {
189
+ status: opts.status,
190
+ type: opts.type,
191
+ priority: opts.priority,
192
+ parent_id: opts.parentId,
193
+ created_id: createdId,
194
+ assigned_id: assignedId,
195
+ project_id: opts.projectId,
196
+ tag_id: opts.tagId,
197
+ older_than: opts.olderThan,
198
+ ids: explicitIds,
199
+ limit: opts.limit,
200
+ closed_id: ctx.auth.userId,
201
+ dry_run: isDryRunMode(options),
202
+ };
203
+ // For confirmation, run a dry-run first to preview
204
+ if (!isDryRunMode(options) && !opts.confirm) {
205
+ const preview = await storage.batchClose({ ...batchParams, dry_run: true });
206
+ if (preview.count === 0) {
207
+ if (!options.json)
208
+ tui.info('No tasks match the given filters');
209
+ return {
210
+ success: true,
211
+ closed: [],
212
+ count: 0,
213
+ durationMs: Date.now() - started,
214
+ message: 'No matching tasks found',
215
+ };
216
+ }
217
+ if (!options.json) {
218
+ tui.warning(`Found ${preview.count} ${tui.plural(preview.count, 'task', 'tasks')} to close:`);
219
+ tui.newline();
220
+ const tableData = preview.closed.map((task) => ({
221
+ ID: tui.muted(truncate(task.id, 28)),
222
+ Title: truncate(task.title, 40),
223
+ Status: task.status,
224
+ }));
225
+ tui.table(tableData, [
226
+ { name: 'ID', alignment: 'left' },
227
+ { name: 'Title', alignment: 'left' },
228
+ { name: 'Status', alignment: 'left' },
229
+ ]);
230
+ tui.newline();
231
+ }
232
+ const confirmed = await tui.confirm(`Close ${preview.count} ${tui.plural(preview.count, 'task', 'tasks')}?`, false);
233
+ if (!confirmed) {
234
+ if (!options.json)
235
+ tui.info('Cancelled');
236
+ return {
237
+ success: false,
238
+ closed: [],
239
+ count: 0,
240
+ durationMs: Date.now() - started,
241
+ message: 'Cancelled',
242
+ };
243
+ }
244
+ }
245
+ // Execute batch close
246
+ const result = await storage.batchClose(batchParams);
247
+ const durationMs = Date.now() - started;
248
+ if (!options.json) {
249
+ if (result.dry_run) {
250
+ if (result.count > 0) {
251
+ tui.info(`Dry run: would close ${result.count} ${tui.plural(result.count, 'task', 'tasks')}`);
252
+ }
253
+ else {
254
+ tui.info('No tasks match the given filters');
255
+ }
256
+ }
257
+ else if (result.count > 0) {
258
+ tui.success(`Closed ${result.count} ${tui.plural(result.count, 'task', 'tasks')} in ${durationMs}ms`);
259
+ // Show which tasks were closed
260
+ if (result.closed.length > 0) {
261
+ tui.newline();
262
+ const closedTable = result.closed.map((task) => ({
263
+ ID: tui.muted(truncate(task.id, 28)),
264
+ Title: truncate(task.title, 40),
265
+ }));
266
+ tui.table(closedTable, [
267
+ { name: 'ID', alignment: 'left' },
268
+ { name: 'Title', alignment: 'left' },
269
+ ]);
270
+ }
271
+ }
272
+ else {
273
+ tui.info('No tasks matched the given filters');
274
+ }
275
+ }
276
+ return {
277
+ success: true,
278
+ closed: result.closed,
279
+ count: result.count,
280
+ durationMs,
281
+ dryRun: result.dry_run,
282
+ };
283
+ },
284
+ });
285
+ export default closeSubcommand;
286
+ //# sourceMappingURL=close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/close.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- /**
2
- * Parse a human-friendly duration string (e.g. "30s", "7d", "24h", "30m", "2w")
3
- * into milliseconds. Exported for testing.
4
- */
5
- export declare function parseDuration(duration: string): number;
1
+ export { parseDuration } from './util';
6
2
  export declare const deleteSubcommand: import("../../..").CommandDefinition;
7
3
  export default deleteSubcommand;
8
4
  //# sourceMappingURL=delete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/delete.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiBtD;AAuBD,eAAO,MAAM,gBAAgB,sCAuR3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/task/delete.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAkBvC,eAAO,MAAM,gBAAgB,sCA4R3B,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
@@ -1,41 +1,11 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { createStorageAdapter } from './util';
4
+ import { createStorageAdapter, resolveMeId, parseDuration, truncate } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
6
  import { isDryRunMode, outputDryRun } from '../../../explain';
7
- const DURATION_UNITS = {
8
- s: 1000,
9
- m: 60 * 1000,
10
- h: 60 * 60 * 1000,
11
- d: 24 * 60 * 60 * 1000,
12
- w: 7 * 24 * 60 * 60 * 1000,
13
- };
14
- /**
15
- * Parse a human-friendly duration string (e.g. "30s", "7d", "24h", "30m", "2w")
16
- * into milliseconds. Exported for testing.
17
- */
18
- export function parseDuration(duration) {
19
- const match = duration.match(/^(\d+)([smhdw])$/);
20
- if (!match) {
21
- tui.fatal(`Invalid duration format: "${duration}". Use a number followed by s (seconds), m (minutes), h (hours), d (days), or w (weeks). Examples: 30s, 30m, 24h, 7d, 2w`);
22
- // tui.fatal exits, but TypeScript doesn't know that
23
- throw new Error('unreachable');
24
- }
25
- const value = parseInt(match[1], 10);
26
- const unit = match[2];
27
- const ms = DURATION_UNITS[unit];
28
- if (!ms) {
29
- tui.fatal(`Unknown duration unit: "${unit}"`);
30
- throw new Error('unreachable');
31
- }
32
- return value * ms;
33
- }
34
- function truncate(s, max) {
35
- if (s.length <= max)
36
- return s;
37
- return `${s.slice(0, max - 1)}…`;
38
- }
7
+ // Re-export for testing
8
+ export { parseDuration } from './util';
39
9
  const TaskDeleteResponseSchema = z.object({
40
10
  success: z.boolean().describe('Whether the operation succeeded'),
41
11
  deleted: z
@@ -95,7 +65,16 @@ export const deleteSubcommand = createCommand({
95
65
  .optional()
96
66
  .describe('filter batch delete by age (e.g. 30s, 7d, 24h, 2w)'),
97
67
  parentId: z.string().optional().describe('filter batch delete by parent task ID'),
98
- createdId: z.string().optional().describe('filter batch delete by creator ID'),
68
+ createdId: z
69
+ .string()
70
+ .optional()
71
+ .describe('filter batch delete by creator ID (use "me" for current user)'),
72
+ orgId: z.string().optional().describe('organization ID (uses default if not specified)'),
73
+ dryRun: z
74
+ .boolean()
75
+ .optional()
76
+ .default(false)
77
+ .describe('preview changes without executing'),
99
78
  limit: z.coerce
100
79
  .number()
101
80
  .int()
@@ -174,7 +153,7 @@ export const deleteSubcommand = createCommand({
174
153
  type: opts.type,
175
154
  priority: opts.priority,
176
155
  parent_id: opts.parentId,
177
- created_id: opts.createdId,
156
+ created_id: resolveMeId(opts.createdId, ctx),
178
157
  older_than: opts.olderThan,
179
158
  limit: opts.limit,
180
159
  };
@@ -187,15 +166,13 @@ export const deleteSubcommand = createCommand({
187
166
  type: batchParams.type,
188
167
  priority: batchParams.priority,
189
168
  parent_id: batchParams.parent_id,
169
+ created_id: batchParams.created_id,
190
170
  limit: batchParams.limit,
191
171
  sort: 'created_at',
192
172
  order: 'asc',
193
173
  });
194
174
  // Client-side filters for preview (server will apply these on actual delete)
195
175
  let candidates = preview.tasks;
196
- if (batchParams.created_id) {
197
- candidates = candidates.filter((t) => t.created_id === batchParams.created_id);
198
- }
199
176
  if (opts.olderThan) {
200
177
  const durationMs = parseDuration(opts.olderThan);
201
178
  const cutoff = new Date(Date.now() - durationMs);