@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.
- package/dist/agent-detection.js +1 -1
- package/dist/agent-detection.js.map +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/cache/agent-intro.d.ts.map +1 -1
- package/dist/cache/agent-intro.js.map +1 -1
- package/dist/cache/resource-region.d.ts.map +1 -1
- package/dist/cache/resource-region.js.map +1 -1
- package/dist/cache/user-cache.d.ts.map +1 -1
- package/dist/cache/user-cache.js.map +1 -1
- package/dist/cmd/ai/opencode/install.js +1 -1
- package/dist/cmd/ai/opencode/install.js.map +1 -1
- package/dist/cmd/build/ast.js +2 -2
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/patch/_util.d.ts +1 -1
- package/dist/cmd/build/patch/_util.d.ts.map +1 -1
- package/dist/cmd/build/patch/_util.js +2 -2
- package/dist/cmd/build/patch/_util.js.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.js +9 -1
- package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
- package/dist/cmd/build/vite/config-loader.js +9 -1
- package/dist/cmd/build/vite/config-loader.js.map +1 -1
- package/dist/cmd/build/vite/registry-generator.js.map +1 -1
- package/dist/cmd/build/vite/server-bundler.js +9 -1
- package/dist/cmd/build/vite/server-bundler.js.map +1 -1
- package/dist/cmd/build/vite/static-renderer.js +11 -3
- package/dist/cmd/build/vite/static-renderer.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +9 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +9 -1
- package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +10 -2
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/build/vite/workbench-generator.d.ts +1 -1
- package/dist/cmd/build/vite/workbench-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/workbench-generator.js +1 -1
- package/dist/cmd/build/vite/workbench-generator.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/repl.js +4 -2
- package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.js +2 -2
- package/dist/cmd/cloud/sandbox/cp.js.map +1 -1
- package/dist/cmd/cloud/storage/config.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/config.js +1 -2
- package/dist/cmd/cloud/storage/config.js.map +1 -1
- package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/list.js.map +1 -1
- package/dist/cmd/cloud/task/create.d.ts.map +1 -1
- package/dist/cmd/cloud/task/create.js +15 -6
- package/dist/cmd/cloud/task/create.js.map +1 -1
- package/dist/cmd/cloud/task/delete.d.ts +8 -0
- package/dist/cmd/cloud/task/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/task/delete.js +286 -0
- package/dist/cmd/cloud/task/delete.js.map +1 -0
- package/dist/cmd/cloud/task/get.d.ts.map +1 -1
- package/dist/cmd/cloud/task/get.js +10 -3
- package/dist/cmd/cloud/task/get.js.map +1 -1
- package/dist/cmd/cloud/task/index.d.ts.map +1 -1
- package/dist/cmd/cloud/task/index.js +10 -0
- package/dist/cmd/cloud/task/index.js.map +1 -1
- package/dist/cmd/cloud/task/list.d.ts.map +1 -1
- package/dist/cmd/cloud/task/list.js +2 -0
- package/dist/cmd/cloud/task/list.js.map +1 -1
- package/dist/cmd/dev/dev-lock.js +2 -2
- package/dist/cmd/dev/dev-lock.js.map +1 -1
- package/dist/cmd/dev/templates.d.ts.map +1 -1
- package/dist/cmd/dev/templates.js +0 -1
- package/dist/cmd/dev/templates.js.map +1 -1
- package/dist/cmd/project/download.js +1 -1
- package/dist/cmd/project/download.js.map +1 -1
- package/dist/domain.js +1 -1
- package/dist/domain.js.map +1 -1
- package/dist/schema-generator.d.ts +1 -1
- package/dist/schema-generator.d.ts.map +1 -1
- package/dist/schema-generator.js +1 -1
- package/dist/schema-generator.js.map +1 -1
- package/dist/schema-parser.js +1 -1
- package/dist/schema-parser.js.map +1 -1
- package/dist/terminal.d.ts.map +1 -1
- package/dist/terminal.js +12 -17
- package/dist/terminal.js.map +1 -1
- package/dist/tui.js +1 -1
- package/dist/tui.js.map +1 -1
- package/dist/utils/date.js +1 -1
- package/dist/utils/date.js.map +1 -1
- package/package.json +6 -6
- package/src/agent-detection.ts +1 -1
- package/src/api.ts +1 -1
- package/src/cache/agent-intro.ts +3 -4
- package/src/cache/resource-region.ts +3 -1
- package/src/cache/user-cache.ts +3 -4
- package/src/cmd/ai/opencode/install.ts +1 -1
- package/src/cmd/build/ast.ts +2 -2
- package/src/cmd/build/patch/_util.ts +2 -2
- package/src/cmd/build/vite/registry-generator.ts +4 -4
- package/src/cmd/build/vite/workbench-generator.ts +1 -1
- package/src/cmd/cloud/keyvalue/repl.ts +6 -2
- package/src/cmd/cloud/keyvalue/search.ts +2 -1
- package/src/cmd/cloud/sandbox/cp.ts +2 -2
- package/src/cmd/cloud/storage/config.ts +3 -8
- package/src/cmd/cloud/storage/list.ts +8 -3
- package/src/cmd/cloud/task/create.ts +17 -8
- package/src/cmd/cloud/task/delete.ts +342 -0
- package/src/cmd/cloud/task/get.ts +11 -3
- package/src/cmd/cloud/task/index.ts +10 -0
- package/src/cmd/cloud/task/list.ts +2 -0
- package/src/cmd/dev/dev-lock.ts +2 -2
- package/src/cmd/dev/templates.ts +0 -1
- package/src/cmd/project/download.ts +1 -1
- package/src/domain.ts +3 -3
- package/src/schema-generator.ts +1 -1
- package/src/schema-parser.ts +1 -1
- package/src/terminal.ts +12 -14
- package/src/tui.ts +1 -1
- 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:
|
|
25
|
-
assignee:
|
|
26
|
-
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
|
package/src/cmd/dev/dev-lock.ts
CHANGED
|
@@ -205,7 +205,7 @@ async function cleanupStaleLock(
|
|
|
205
205
|
*/
|
|
206
206
|
async function ensureNoActiveDevForProject(
|
|
207
207
|
rootDir: string,
|
|
208
|
-
|
|
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
|
|
package/src/cmd/dev/templates.ts
CHANGED
|
@@ -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: (
|
|
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
|
|
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
|
-
|
|
199
|
-
|
|
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) {
|
package/src/schema-generator.ts
CHANGED
|
@@ -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
|
-
|
|
293
|
+
_program: Command,
|
|
294
294
|
commands: CommandDefinition[],
|
|
295
295
|
version: string
|
|
296
296
|
): CLISchema {
|
package/src/schema-parser.ts
CHANGED
|
@@ -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.
|
|
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
|
-
}
|
|
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 :
|
|
149
|
-
const g = gsRGB <= 0.03928 ? gsRGB / 12.92 :
|
|
150
|
-
const b = bsRGB <= 0.03928 ? bsRGB / 12.92 :
|
|
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();
|