@agentuity/cli 1.0.30 → 1.0.32

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 (119) hide show
  1. package/dist/agent-detection.js +1 -1
  2. package/dist/agent-detection.js.map +1 -1
  3. package/dist/api.d.ts +1 -1
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +1 -1
  6. package/dist/api.js.map +1 -1
  7. package/dist/cache/agent-intro.d.ts.map +1 -1
  8. package/dist/cache/agent-intro.js.map +1 -1
  9. package/dist/cache/resource-region.d.ts.map +1 -1
  10. package/dist/cache/resource-region.js.map +1 -1
  11. package/dist/cache/user-cache.d.ts.map +1 -1
  12. package/dist/cache/user-cache.js.map +1 -1
  13. package/dist/cmd/ai/opencode/install.js +1 -1
  14. package/dist/cmd/ai/opencode/install.js.map +1 -1
  15. package/dist/cmd/build/ast.js +2 -2
  16. package/dist/cmd/build/ast.js.map +1 -1
  17. package/dist/cmd/build/patch/_util.d.ts +1 -1
  18. package/dist/cmd/build/patch/_util.d.ts.map +1 -1
  19. package/dist/cmd/build/patch/_util.js +2 -2
  20. package/dist/cmd/build/patch/_util.js.map +1 -1
  21. package/dist/cmd/build/vite/bun-dev-server.js +9 -1
  22. package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
  23. package/dist/cmd/build/vite/config-loader.js +9 -1
  24. package/dist/cmd/build/vite/config-loader.js.map +1 -1
  25. package/dist/cmd/build/vite/registry-generator.js.map +1 -1
  26. package/dist/cmd/build/vite/server-bundler.js +9 -1
  27. package/dist/cmd/build/vite/server-bundler.js.map +1 -1
  28. package/dist/cmd/build/vite/static-renderer.js +11 -3
  29. package/dist/cmd/build/vite/static-renderer.js.map +1 -1
  30. package/dist/cmd/build/vite/vite-asset-server-config.js +9 -1
  31. package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
  32. package/dist/cmd/build/vite/vite-asset-server.js +9 -1
  33. package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
  34. package/dist/cmd/build/vite/vite-builder.js +10 -2
  35. package/dist/cmd/build/vite/vite-builder.js.map +1 -1
  36. package/dist/cmd/build/vite/workbench-generator.d.ts +1 -1
  37. package/dist/cmd/build/vite/workbench-generator.d.ts.map +1 -1
  38. package/dist/cmd/build/vite/workbench-generator.js +1 -1
  39. package/dist/cmd/build/vite/workbench-generator.js.map +1 -1
  40. package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -1
  41. package/dist/cmd/cloud/keyvalue/repl.js +4 -2
  42. package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
  43. package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -1
  44. package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
  45. package/dist/cmd/cloud/sandbox/cp.js +2 -2
  46. package/dist/cmd/cloud/sandbox/cp.js.map +1 -1
  47. package/dist/cmd/cloud/storage/config.d.ts.map +1 -1
  48. package/dist/cmd/cloud/storage/config.js +1 -2
  49. package/dist/cmd/cloud/storage/config.js.map +1 -1
  50. package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
  51. package/dist/cmd/cloud/storage/list.js.map +1 -1
  52. package/dist/cmd/cloud/task/create.d.ts.map +1 -1
  53. package/dist/cmd/cloud/task/create.js +15 -6
  54. package/dist/cmd/cloud/task/create.js.map +1 -1
  55. package/dist/cmd/cloud/task/delete.d.ts +8 -0
  56. package/dist/cmd/cloud/task/delete.d.ts.map +1 -0
  57. package/dist/cmd/cloud/task/delete.js +286 -0
  58. package/dist/cmd/cloud/task/delete.js.map +1 -0
  59. package/dist/cmd/cloud/task/get.d.ts.map +1 -1
  60. package/dist/cmd/cloud/task/get.js +10 -3
  61. package/dist/cmd/cloud/task/get.js.map +1 -1
  62. package/dist/cmd/cloud/task/index.d.ts.map +1 -1
  63. package/dist/cmd/cloud/task/index.js +10 -0
  64. package/dist/cmd/cloud/task/index.js.map +1 -1
  65. package/dist/cmd/cloud/task/list.d.ts.map +1 -1
  66. package/dist/cmd/cloud/task/list.js +2 -0
  67. package/dist/cmd/cloud/task/list.js.map +1 -1
  68. package/dist/cmd/dev/dev-lock.js +2 -2
  69. package/dist/cmd/dev/dev-lock.js.map +1 -1
  70. package/dist/cmd/dev/templates.d.ts.map +1 -1
  71. package/dist/cmd/dev/templates.js +0 -1
  72. package/dist/cmd/dev/templates.js.map +1 -1
  73. package/dist/cmd/project/download.js +1 -1
  74. package/dist/cmd/project/download.js.map +1 -1
  75. package/dist/domain.js +1 -1
  76. package/dist/domain.js.map +1 -1
  77. package/dist/schema-generator.d.ts +1 -1
  78. package/dist/schema-generator.d.ts.map +1 -1
  79. package/dist/schema-generator.js +1 -1
  80. package/dist/schema-generator.js.map +1 -1
  81. package/dist/schema-parser.js +1 -1
  82. package/dist/schema-parser.js.map +1 -1
  83. package/dist/terminal.d.ts.map +1 -1
  84. package/dist/terminal.js +12 -17
  85. package/dist/terminal.js.map +1 -1
  86. package/dist/tui.js +1 -1
  87. package/dist/tui.js.map +1 -1
  88. package/dist/utils/date.js +1 -1
  89. package/dist/utils/date.js.map +1 -1
  90. package/package.json +6 -6
  91. package/src/agent-detection.ts +1 -1
  92. package/src/api.ts +1 -1
  93. package/src/cache/agent-intro.ts +3 -4
  94. package/src/cache/resource-region.ts +3 -1
  95. package/src/cache/user-cache.ts +3 -4
  96. package/src/cmd/ai/opencode/install.ts +1 -1
  97. package/src/cmd/build/ast.ts +2 -2
  98. package/src/cmd/build/patch/_util.ts +2 -2
  99. package/src/cmd/build/vite/registry-generator.ts +4 -4
  100. package/src/cmd/build/vite/workbench-generator.ts +1 -1
  101. package/src/cmd/cloud/keyvalue/repl.ts +6 -2
  102. package/src/cmd/cloud/keyvalue/search.ts +2 -1
  103. package/src/cmd/cloud/sandbox/cp.ts +2 -2
  104. package/src/cmd/cloud/storage/config.ts +3 -8
  105. package/src/cmd/cloud/storage/list.ts +8 -3
  106. package/src/cmd/cloud/task/create.ts +17 -8
  107. package/src/cmd/cloud/task/delete.ts +342 -0
  108. package/src/cmd/cloud/task/get.ts +11 -3
  109. package/src/cmd/cloud/task/index.ts +10 -0
  110. package/src/cmd/cloud/task/list.ts +2 -0
  111. package/src/cmd/dev/dev-lock.ts +2 -2
  112. package/src/cmd/dev/templates.ts +0 -1
  113. package/src/cmd/project/download.ts +1 -1
  114. package/src/domain.ts +3 -3
  115. package/src/schema-generator.ts +1 -1
  116. package/src/schema-parser.ts +1 -1
  117. package/src/terminal.ts +12 -14
  118. package/src/tui.ts +1 -1
  119. package/src/utils/date.ts +1 -1
@@ -11,6 +11,14 @@ const EntityRefSchema = z
11
11
  })
12
12
  .optional();
13
13
 
14
+ const UserEntityRefSchema = z
15
+ .object({
16
+ id: z.string(),
17
+ name: z.string(),
18
+ type: z.enum(['human', 'agent']).optional(),
19
+ })
20
+ .optional();
21
+
14
22
  const TaskGetResponseSchema = z.object({
15
23
  success: z.boolean().describe('Whether the operation succeeded'),
16
24
  task: z.object({
@@ -21,9 +29,9 @@ const TaskGetResponseSchema = z.object({
21
29
  status: z.string().describe('Task status'),
22
30
  priority: z.string().describe('Task priority'),
23
31
  parent_id: z.string().optional().describe('Parent task ID'),
24
- creator: EntityRefSchema.describe('Creator'),
25
- assignee: EntityRefSchema.describe('Assignee'),
26
- closer: EntityRefSchema.describe('Closer'),
32
+ creator: UserEntityRefSchema.describe('Creator'),
33
+ assignee: UserEntityRefSchema.describe('Assignee'),
34
+ closer: UserEntityRefSchema.describe('Closer'),
27
35
  project: EntityRefSchema.describe('Project'),
28
36
  metadata: z.record(z.string(), z.unknown()).optional().describe('Task metadata'),
29
37
  created_at: z.string().describe('Creation timestamp'),
@@ -3,6 +3,7 @@ import { getSubcommand } from './get';
3
3
  import { createSubcommand } from './create';
4
4
  import { updateSubcommand } from './update';
5
5
  import { listSubcommand } from './list';
6
+ import { deleteSubcommand } from './delete';
6
7
  import { statsSubcommand } from './stats';
7
8
  import { attachmentSubcommand } from './attachment';
8
9
  import { getCommand } from '../../../command-prefix';
@@ -28,6 +29,14 @@ export const taskCommand = createCommand({
28
29
  command: getCommand('cloud task update task_abc123 --status in_progress'),
29
30
  description: 'Update task status',
30
31
  },
32
+ {
33
+ command: getCommand('cloud task delete task_abc123'),
34
+ description: 'Delete a task by ID',
35
+ },
36
+ {
37
+ command: getCommand('cloud task delete --status closed --older-than 7d'),
38
+ description: 'Batch delete closed tasks older than 7 days',
39
+ },
31
40
  {
32
41
  command: getCommand('cloud task attachment upload task_abc123 ./report.pdf'),
33
42
  description: 'Upload a file attachment to a task',
@@ -38,6 +47,7 @@ export const taskCommand = createCommand({
38
47
  createSubcommand,
39
48
  updateSubcommand,
40
49
  listSubcommand,
50
+ deleteSubcommand,
41
51
  statsSubcommand,
42
52
  attachmentSubcommand,
43
53
  ],
@@ -18,12 +18,14 @@ const TaskListResponseSchema = z.object({
18
18
  .object({
19
19
  id: z.string(),
20
20
  name: z.string(),
21
+ type: z.enum(['human', 'agent']).optional(),
21
22
  })
22
23
  .optional(),
23
24
  assignee: z
24
25
  .object({
25
26
  id: z.string(),
26
27
  name: z.string(),
28
+ type: z.enum(['human', 'agent']).optional(),
27
29
  })
28
30
  .optional(),
29
31
  project: z
@@ -205,7 +205,7 @@ async function cleanupStaleLock(
205
205
  */
206
206
  async function ensureNoActiveDevForProject(
207
207
  rootDir: string,
208
- port: number,
208
+ _port: number,
209
209
  logger: LoggerLike
210
210
  ): Promise<void> {
211
211
  const lockPath = getLockPath(rootDir);
@@ -214,7 +214,7 @@ async function ensureNoActiveDevForProject(
214
214
 
215
215
  const now = Date.now();
216
216
  const createdAt = Date.parse(existing.createdAt || '');
217
- const ageMs = isFinite(createdAt) ? now - createdAt : Infinity;
217
+ const ageMs = Number.isFinite(createdAt) ? now - createdAt : Infinity;
218
218
 
219
219
  const mainAlive = pidExists(existing.mainPid);
220
220
 
@@ -35,7 +35,6 @@ export default router;
35
35
 
36
36
  const invalidDirRegex = /[<>:"/\\|?*]/;
37
37
 
38
- // biome-ignore lint/suspicious/noControlCharactersInRegex: checking for invalid control characters in directory names
39
38
  const invalidControlChars = /[\u0000-\u001F]/;
40
39
  const reservedWindowsNames = /^(con|prn|aux|nul|com[1-9]|lpt[1-9])$/i;
41
40
  const invalidTrailing = /[. ]$/;
@@ -275,7 +275,7 @@ export async function downloadTemplate(options: DownloadOptions): Promise<void>
275
275
  },
276
276
  // ignore callback: called AFTER map, receives the MAPPED name
277
277
  // Return true to skip the entry, false to extract it
278
- ignore: (name: string, header?: Headers) => {
278
+ ignore: (_name: string, header?: Headers) => {
279
279
  if (!header) {
280
280
  ignoredCount++;
281
281
  return true;
package/src/domain.ts CHANGED
@@ -54,7 +54,7 @@ export function isPending(x: DNSResult): x is DNSPending {
54
54
  }
55
55
 
56
56
  export function isSuccess(x: DNSResult): x is DNSSuccess {
57
- return x.success == true && !('pending' in x) && !('error' in x) && !('misconfigured' in x);
57
+ return x.success === true && !('pending' in x) && !('error' in x) && !('misconfigured' in x);
58
58
  }
59
59
 
60
60
  const timeoutMs = 5000;
@@ -195,8 +195,8 @@ export async function checkCustomDomainForDNS(
195
195
  if (timeoutId) clearTimeout(timeoutId);
196
196
  });
197
197
 
198
- if (result) {
199
- if (result === proxy) {
198
+ if (result) {
199
+ if (result === proxy) {
200
200
  // DNS is correct — verify TLS certificate (also triggers Let's Encrypt provisioning)
201
201
  const tlsValid = await checkTLSCertificate(domain);
202
202
  if (tlsValid) {
@@ -290,7 +290,7 @@ function extractSubcommandSchema(def: SubcommandDefinition): SchemaCommand {
290
290
  * Generate JSON schema for the entire CLI
291
291
  */
292
292
  export function generateCLISchema(
293
- program: Command,
293
+ _program: Command,
294
294
  commands: CommandDefinition[],
295
295
  version: string
296
296
  ): CLISchema {
@@ -421,7 +421,7 @@ export async function buildValidationInputAsync(
421
421
  if (schemas.options && !options?.usesStdin) {
422
422
  // Use getShape() instead of parseOptionsSchema() to avoid re-evaluating function defaults
423
423
  const shape = getShape(schemas.options);
424
- const hasConfirmOption = Object.prototype.hasOwnProperty.call(shape, 'confirm');
424
+ const hasConfirmOption = Object.hasOwn(shape, 'confirm');
425
425
  const confirmValue = result.options.confirm;
426
426
 
427
427
  if (hasConfirmOption && confirmValue === undefined) {
package/src/terminal.ts CHANGED
@@ -31,9 +31,8 @@ export async function detectColorScheme(): Promise<ColorScheme> {
31
31
  `[DEBUG] OSC 11 response: rgb(${bgColor.r},${bgColor.g},${bgColor.b}), luminance: ${luminance.toFixed(2)}, scheme: ${scheme}`
32
32
  );
33
33
  return scheme;
34
- } else {
35
- if (debug) console.log('[DEBUG] OSC 11 query timed out or no response');
36
34
  }
35
+ if (debug) console.log('[DEBUG] OSC 11 query timed out or no response');
37
36
  } catch (error) {
38
37
  if (debug) console.log('[DEBUG] OSC 11 query failed:', error);
39
38
  }
@@ -44,8 +43,8 @@ export async function detectColorScheme(): Promise<ColorScheme> {
44
43
  // COLORFGBG format is "foreground;background"
45
44
  // This is unreliable but better than nothing
46
45
  const parts = process.env.COLORFGBG.split(';');
47
- const fg = parseInt(parts[0] || '7', 10);
48
- const bg = parseInt(parts[1] || '0', 10);
46
+ const fg = Number.parseInt(parts[0] || '7', 10);
47
+ const bg = Number.parseInt(parts[1] || '0', 10);
49
48
 
50
49
  // Heuristic: if background is 0 (black) and foreground is light (>=7), it's likely dark mode
51
50
  // if background is light (>=7) and foreground is dark (<7), it's likely light mode
@@ -88,7 +87,6 @@ async function queryTerminalBackground(): Promise<RGBColor | null> {
88
87
  // Pattern 1: ESC ] 11 ; rgb:RRRR/GGGG/BBBB ESC \ (xterm with ESC \ terminator)
89
88
  // Pattern 2: ESC ] 11 ; rgb:RRRR/GGGG/BBBB BEL (xterm with BEL terminator)
90
89
  // The color values can be 8-bit (RR), 12-bit (RRR), or 16-bit (RRRR)
91
- // biome-ignore lint/suspicious/noControlCharactersInRegex: Control characters needed for ANSI escape sequences
92
90
  const match = response.match(
93
91
  // eslint-disable-next-line no-control-regex
94
92
  /\x1b\]11;rgb:([0-9a-f]+)\/([0-9a-f]+)\/([0-9a-f]+)(?:\x1b\\|\x07)/i
@@ -103,14 +101,14 @@ async function queryTerminalBackground(): Promise<RGBColor | null> {
103
101
  if (!hex) return 0;
104
102
  if (hex.length === 4) {
105
103
  // 16-bit: RRRR -> take first 2 chars
106
- return parseInt(hex.slice(0, 2), 16);
107
- } else if (hex.length === 3) {
104
+ return Number.parseInt(hex.slice(0, 2), 16);
105
+ }
106
+ if (hex.length === 3) {
108
107
  // 12-bit: RRR -> take first 2 chars
109
- return parseInt(hex.slice(0, 2), 16);
110
- } else {
111
- // 8-bit: RR
112
- return parseInt(hex, 16);
108
+ return Number.parseInt(hex.slice(0, 2), 16);
113
109
  }
110
+ // 8-bit: RR
111
+ return Number.parseInt(hex, 16);
114
112
  };
115
113
 
116
114
  const r = parseColorValue(match[1]);
@@ -145,9 +143,9 @@ function calculateLuminance(color: RGBColor): number {
145
143
  const gsRGB = color.g / 255;
146
144
  const bsRGB = color.b / 255;
147
145
 
148
- const r = rsRGB <= 0.03928 ? rsRGB / 12.92 : Math.pow((rsRGB + 0.055) / 1.055, 2.4);
149
- const g = gsRGB <= 0.03928 ? gsRGB / 12.92 : Math.pow((gsRGB + 0.055) / 1.055, 2.4);
150
- const b = bsRGB <= 0.03928 ? bsRGB / 12.92 : Math.pow((bsRGB + 0.055) / 1.055, 2.4);
146
+ const r = rsRGB <= 0.03928 ? rsRGB / 12.92 : ((rsRGB + 0.055) / 1.055) ** 2.4;
147
+ const g = gsRGB <= 0.03928 ? gsRGB / 12.92 : ((gsRGB + 0.055) / 1.055) ** 2.4;
148
+ const b = bsRGB <= 0.03928 ? bsRGB / 12.92 : ((bsRGB + 0.055) / 1.055) ** 2.4;
151
149
 
152
150
  return 0.2126 * r + 0.7152 * g + 0.0722 * b;
153
151
  }
package/src/tui.ts CHANGED
@@ -130,7 +130,7 @@ export function getTerminalWidth(defaultWidth = 80): number {
130
130
  }
131
131
  if (process.env.COLUMNS) {
132
132
  const cols = parseInt(process.env.COLUMNS, 10);
133
- if (!isNaN(cols) && cols > 0) {
133
+ if (!Number.isNaN(cols) && cols > 0) {
134
134
  return cols;
135
135
  }
136
136
  }
package/src/utils/date.ts CHANGED
@@ -19,7 +19,7 @@ export function parseExpiresAt(input: string): string {
19
19
  if (input.includes('T') || input.includes('-')) {
20
20
  // Validate it's a valid date
21
21
  const date = new Date(input);
22
- if (isNaN(date.getTime())) {
22
+ if (Number.isNaN(date.getTime())) {
23
23
  throw new InvalidDateFormatError({ input, message: `Invalid date format: ${input}` });
24
24
  }
25
25
  return date.toISOString();