@agentuity/cli 0.0.53 → 0.0.54
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/cli.d.ts.map +1 -1
- package/dist/cli.js +66 -8
- package/dist/cli.js.map +1 -1
- package/dist/cmd/auth/ssh/add.d.ts.map +1 -1
- package/dist/cmd/auth/ssh/add.js +28 -13
- package/dist/cmd/auth/ssh/add.js.map +1 -1
- package/dist/cmd/auth/ssh/delete.d.ts.map +1 -1
- package/dist/cmd/auth/ssh/delete.js +28 -18
- package/dist/cmd/auth/ssh/delete.js.map +1 -1
- package/dist/cmd/auth/ssh/list.d.ts.map +1 -1
- package/dist/cmd/auth/ssh/list.js +5 -6
- package/dist/cmd/auth/ssh/list.js.map +1 -1
- package/dist/cmd/build/ast.d.ts +34 -0
- package/dist/cmd/build/ast.d.ts.map +1 -1
- package/dist/cmd/build/ast.js +159 -0
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/bundler.d.ts +2 -1
- package/dist/cmd/build/bundler.d.ts.map +1 -1
- package/dist/cmd/build/bundler.js +77 -16
- package/dist/cmd/build/bundler.js.map +1 -1
- package/dist/cmd/build/plugin.d.ts.map +1 -1
- package/dist/cmd/build/plugin.js +74 -4
- package/dist/cmd/build/plugin.js.map +1 -1
- package/dist/cmd/cloud/deployment/list.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/list.js +28 -23
- package/dist/cmd/cloud/deployment/list.js.map +1 -1
- package/dist/cmd/cloud/deployment/show.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/show.js +50 -47
- package/dist/cmd/cloud/deployment/show.js.map +1 -1
- package/dist/cmd/cloud/env/get.d.ts.map +1 -1
- package/dist/cmd/cloud/env/get.js +16 -14
- package/dist/cmd/cloud/env/get.js.map +1 -1
- package/dist/cmd/cloud/env/list.d.ts.map +1 -1
- package/dist/cmd/cloud/env/list.js +24 -20
- package/dist/cmd/cloud/env/list.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/get.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/get.js +18 -16
- package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/keys.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/keys.js +11 -11
- package/dist/cmd/cloud/keyvalue/keys.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/list-namespaces.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/list-namespaces.js +11 -7
- package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.js +16 -17
- package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/stats.js +38 -23
- package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
- package/dist/cmd/cloud/objectstore/get.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/get.js +17 -15
- package/dist/cmd/cloud/objectstore/get.js.map +1 -1
- package/dist/cmd/cloud/objectstore/list-buckets.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/list-buckets.js +12 -8
- package/dist/cmd/cloud/objectstore/list-buckets.js.map +1 -1
- package/dist/cmd/cloud/objectstore/list-keys.d.ts.map +1 -1
- package/dist/cmd/cloud/objectstore/list-keys.js +13 -10
- package/dist/cmd/cloud/objectstore/list-keys.js.map +1 -1
- package/dist/cmd/cloud/resource/list.d.ts.map +1 -1
- package/dist/cmd/cloud/resource/list.js +38 -27
- package/dist/cmd/cloud/resource/list.js.map +1 -1
- package/dist/cmd/cloud/secret/get.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/get.js +17 -15
- package/dist/cmd/cloud/secret/get.js.map +1 -1
- package/dist/cmd/cloud/secret/list.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/list.js +24 -20
- package/dist/cmd/cloud/secret/list.js.map +1 -1
- package/dist/cmd/cloud/session/logs.d.ts.map +1 -1
- package/dist/cmd/cloud/session/logs.js +18 -15
- package/dist/cmd/cloud/session/logs.js.map +1 -1
- package/dist/cmd/dev/agents.d.ts.map +1 -1
- package/dist/cmd/dev/agents.js +55 -41
- package/dist/cmd/dev/agents.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +2 -0
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/profile/create.js +1 -1
- package/dist/cmd/profile/create.js.map +1 -1
- package/dist/cmd/profile/delete.d.ts.map +1 -1
- package/dist/cmd/profile/delete.js +1 -1
- package/dist/cmd/profile/delete.js.map +1 -1
- package/dist/cmd/profile/list.d.ts.map +1 -1
- package/dist/cmd/profile/list.js +29 -11
- package/dist/cmd/profile/list.js.map +1 -1
- package/dist/cmd/profile/show.d.ts.map +1 -1
- package/dist/cmd/profile/show.js +7 -10
- package/dist/cmd/profile/show.js.map +1 -1
- package/dist/cmd/project/delete.js +1 -1
- package/dist/cmd/project/delete.js.map +1 -1
- package/dist/cmd/version/index.d.ts.map +1 -1
- package/dist/cmd/version/index.js +1 -1
- package/dist/cmd/version/index.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +3 -1
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +32 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
- package/src/cli.ts +109 -8
- package/src/cmd/auth/ssh/add.ts +37 -17
- package/src/cmd/auth/ssh/delete.ts +36 -23
- package/src/cmd/auth/ssh/list.ts +8 -6
- package/src/cmd/build/ast.ts +203 -0
- package/src/cmd/build/bundler.ts +81 -15
- package/src/cmd/build/plugin.ts +92 -4
- package/src/cmd/cloud/deployment/list.ts +30 -26
- package/src/cmd/cloud/deployment/show.ts +47 -42
- package/src/cmd/cloud/env/get.ts +14 -12
- package/src/cmd/cloud/env/list.ts +24 -22
- package/src/cmd/cloud/keyvalue/get.ts +19 -14
- package/src/cmd/cloud/keyvalue/keys.ts +10 -12
- package/src/cmd/cloud/keyvalue/list-namespaces.ts +10 -8
- package/src/cmd/cloud/keyvalue/search.ts +14 -17
- package/src/cmd/cloud/keyvalue/stats.ts +52 -28
- package/src/cmd/cloud/objectstore/get.ts +18 -13
- package/src/cmd/cloud/objectstore/list-buckets.ts +11 -9
- package/src/cmd/cloud/objectstore/list-keys.ts +12 -11
- package/src/cmd/cloud/resource/list.ts +33 -23
- package/src/cmd/cloud/secret/get.ts +15 -13
- package/src/cmd/cloud/secret/list.ts +24 -22
- package/src/cmd/cloud/session/logs.ts +18 -17
- package/src/cmd/dev/agents.ts +70 -50
- package/src/cmd/dev/index.ts +2 -0
- package/src/cmd/profile/create.ts +3 -3
- package/src/cmd/profile/delete.ts +5 -2
- package/src/cmd/profile/list.ts +31 -11
- package/src/cmd/profile/show.ts +15 -12
- package/src/cmd/project/delete.ts +1 -1
- package/src/cmd/version/index.ts +5 -1
- package/src/tui.ts +3 -1
- package/src/types.ts +32 -10
|
@@ -59,7 +59,7 @@ export const createCommand = createSubcommand({
|
|
|
59
59
|
return logger.fatal(
|
|
60
60
|
`Profile "${name}" already exists at ${existing.filename}`,
|
|
61
61
|
ErrorCode.RESOURCE_ALREADY_EXISTS
|
|
62
|
-
);
|
|
62
|
+
) as never;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
await ensureConfigDir();
|
|
@@ -103,10 +103,10 @@ export const createCommand = createSubcommand({
|
|
|
103
103
|
} catch (error) {
|
|
104
104
|
const message = error instanceof Error ? error.message : String(error);
|
|
105
105
|
const stack = error instanceof Error ? error.stack : undefined;
|
|
106
|
-
logger.fatal(
|
|
106
|
+
return logger.fatal(
|
|
107
107
|
`Failed to create profile: ${message}${stack ? `\n${stack}` : ''}`,
|
|
108
108
|
ErrorCode.INTERNAL_ERROR
|
|
109
|
-
);
|
|
109
|
+
) as never;
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
112
|
});
|
|
@@ -43,7 +43,7 @@ export const deleteCommand = createSubcommand({
|
|
|
43
43
|
const profile = profiles.find((p) => p.name === name);
|
|
44
44
|
|
|
45
45
|
if (!profile) {
|
|
46
|
-
return logger.fatal(`Profile "${name}" not found`, ErrorCode.RESOURCE_NOT_FOUND);
|
|
46
|
+
return logger.fatal(`Profile "${name}" not found`, ErrorCode.RESOURCE_NOT_FOUND) as never;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
// Ask for confirmation unless --confirm flag is passed
|
|
@@ -66,7 +66,10 @@ export const deleteCommand = createSubcommand({
|
|
|
66
66
|
|
|
67
67
|
return { success: true, name };
|
|
68
68
|
} catch (error) {
|
|
69
|
-
logger.fatal(
|
|
69
|
+
return logger.fatal(
|
|
70
|
+
`Failed to delete profile: ${error}`,
|
|
71
|
+
ErrorCode.FILE_WRITE_ERROR
|
|
72
|
+
) as never;
|
|
70
73
|
}
|
|
71
74
|
},
|
|
72
75
|
});
|
package/src/cmd/profile/list.ts
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { createSubcommand } from '../../types';
|
|
2
3
|
import { fetchProfiles } from '../../config';
|
|
3
4
|
import { basename, dirname } from 'node:path';
|
|
4
5
|
import * as tui from '../../tui';
|
|
5
6
|
import { getCommand } from '../../command-prefix';
|
|
6
7
|
|
|
8
|
+
const ProfileListResponseSchema = z.array(
|
|
9
|
+
z.object({
|
|
10
|
+
name: z.string().describe('Profile name'),
|
|
11
|
+
filename: z.string().describe('Profile file path'),
|
|
12
|
+
selected: z.boolean().describe('Whether this profile is currently selected'),
|
|
13
|
+
})
|
|
14
|
+
);
|
|
15
|
+
|
|
7
16
|
export const listCommand = createSubcommand({
|
|
8
17
|
name: 'list',
|
|
9
18
|
description: 'List all available profiles',
|
|
@@ -11,21 +20,32 @@ export const listCommand = createSubcommand({
|
|
|
11
20
|
idempotent: true,
|
|
12
21
|
aliases: ['ls'],
|
|
13
22
|
examples: [getCommand('profile list'), getCommand('profile ls')],
|
|
23
|
+
schema: {
|
|
24
|
+
response: ProfileListResponseSchema,
|
|
25
|
+
},
|
|
14
26
|
|
|
15
|
-
async handler() {
|
|
27
|
+
async handler(ctx) {
|
|
28
|
+
const { options } = ctx;
|
|
16
29
|
const profiles = await fetchProfiles();
|
|
17
30
|
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
31
|
+
if (!options.json) {
|
|
32
|
+
if (profiles.length === 0) {
|
|
33
|
+
tui.info('No profiles found');
|
|
34
|
+
} else {
|
|
35
|
+
console.log('Available profiles:');
|
|
36
|
+
for (const profile of profiles) {
|
|
37
|
+
const marker = profile.selected ? '•' : ' ';
|
|
38
|
+
const name = tui.padRight(profile.name, 15, ' ');
|
|
39
|
+
const path = `${basename(dirname(profile.filename))}/${basename(profile.filename)}`;
|
|
40
|
+
console.log(`${marker} ${name} ${tui.muted(path)}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
21
43
|
}
|
|
22
44
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
console.log(`${marker} ${name} ${tui.muted(path)}`);
|
|
29
|
-
}
|
|
45
|
+
return profiles.map((p) => ({
|
|
46
|
+
name: p.name,
|
|
47
|
+
filename: p.filename,
|
|
48
|
+
selected: p.selected,
|
|
49
|
+
}));
|
|
30
50
|
},
|
|
31
51
|
});
|
package/src/cmd/profile/show.ts
CHANGED
|
@@ -19,9 +19,6 @@ export const showCommand = createSubcommand({
|
|
|
19
19
|
getCommand('profile show staging --json'),
|
|
20
20
|
],
|
|
21
21
|
schema: {
|
|
22
|
-
options: z.object({
|
|
23
|
-
json: z.boolean().optional().describe('Show the JSON config'),
|
|
24
|
-
}),
|
|
25
22
|
args: z
|
|
26
23
|
.object({
|
|
27
24
|
name: z.string().optional().describe('Profile name to show (optional)'),
|
|
@@ -32,7 +29,7 @@ export const showCommand = createSubcommand({
|
|
|
32
29
|
idempotent: true,
|
|
33
30
|
|
|
34
31
|
async handler(ctx) {
|
|
35
|
-
const { logger, args,
|
|
32
|
+
const { logger, args, options } = ctx;
|
|
36
33
|
|
|
37
34
|
try {
|
|
38
35
|
let current = false;
|
|
@@ -47,19 +44,25 @@ export const showCommand = createSubcommand({
|
|
|
47
44
|
const profile = profiles.find((p) => p.name === name);
|
|
48
45
|
|
|
49
46
|
if (!profile) {
|
|
50
|
-
return logger.fatal(
|
|
47
|
+
return logger.fatal(
|
|
48
|
+
`Profile "${name}" not found`,
|
|
49
|
+
ErrorCode.RESOURCE_NOT_FOUND
|
|
50
|
+
) as never;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
const profilePath = profile.filename;
|
|
54
54
|
current = profile.selected;
|
|
55
55
|
|
|
56
|
-
tui.info(`Profile: ${profilePath}`);
|
|
57
|
-
|
|
58
56
|
const content = await loadConfig(current ? undefined : profilePath);
|
|
57
|
+
if (!content) {
|
|
58
|
+
return logger.fatal(
|
|
59
|
+
`Failed to load profile configuration`,
|
|
60
|
+
ErrorCode.INTERNAL_ERROR
|
|
61
|
+
) as never;
|
|
62
|
+
}
|
|
59
63
|
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
} else {
|
|
64
|
+
if (!options.json) {
|
|
65
|
+
tui.info(`Profile: ${profilePath}`);
|
|
63
66
|
tui.newline();
|
|
64
67
|
const textContent = await readFile(profilePath, 'utf-8');
|
|
65
68
|
console.log(textContent);
|
|
@@ -68,9 +71,9 @@ export const showCommand = createSubcommand({
|
|
|
68
71
|
return content;
|
|
69
72
|
} catch (error) {
|
|
70
73
|
if (error instanceof Error) {
|
|
71
|
-
logger.fatal(`Failed to show profile: ${error.message}`);
|
|
74
|
+
return logger.fatal(`Failed to show profile: ${error.message}`) as never;
|
|
72
75
|
} else {
|
|
73
|
-
logger.fatal('Failed to show profile');
|
|
76
|
+
return logger.fatal('Failed to show profile') as never;
|
|
74
77
|
}
|
|
75
78
|
}
|
|
76
79
|
},
|
package/src/cmd/version/index.ts
CHANGED
|
@@ -24,7 +24,11 @@ export const command = createCommand({
|
|
|
24
24
|
return version;
|
|
25
25
|
} catch (error) {
|
|
26
26
|
const logger = createLogger();
|
|
27
|
-
logger.fatal(
|
|
27
|
+
return logger.fatal(
|
|
28
|
+
'Failed to retrieve version: %s',
|
|
29
|
+
error,
|
|
30
|
+
ErrorCode.INTERNAL_ERROR
|
|
31
|
+
) as never;
|
|
28
32
|
}
|
|
29
33
|
},
|
|
30
34
|
});
|
package/src/tui.ts
CHANGED
|
@@ -831,7 +831,9 @@ export async function spinner<T>(
|
|
|
831
831
|
: await options.callback;
|
|
832
832
|
|
|
833
833
|
// If clearOnSuccess is true, don't show success message
|
|
834
|
-
|
|
834
|
+
// Also skip success message in JSON mode
|
|
835
|
+
const isJsonMode = outputOptions?.json === true;
|
|
836
|
+
if (!options.clearOnSuccess && !isJsonMode) {
|
|
835
837
|
const successColor = getColor('success');
|
|
836
838
|
console.error(`${successColor}${ICONS.success} ${message}${reset}`);
|
|
837
839
|
}
|
package/src/types.ts
CHANGED
|
@@ -252,6 +252,7 @@ export function createSubcommand<
|
|
|
252
252
|
O extends Optional | undefined = undefined,
|
|
253
253
|
A extends z.ZodType | undefined = undefined,
|
|
254
254
|
Op extends z.ZodType | undefined = undefined,
|
|
255
|
+
Res extends z.ZodType | undefined = undefined,
|
|
255
256
|
>(definition: {
|
|
256
257
|
name: string;
|
|
257
258
|
description: string;
|
|
@@ -267,12 +268,22 @@ export function createSubcommand<
|
|
|
267
268
|
tags?: string[];
|
|
268
269
|
schema?: A extends z.ZodType
|
|
269
270
|
? Op extends z.ZodType
|
|
270
|
-
?
|
|
271
|
-
|
|
271
|
+
? Res extends z.ZodType
|
|
272
|
+
? { args: A; options: Op; response: Res }
|
|
273
|
+
: { args: A; options: Op; response?: z.ZodType }
|
|
274
|
+
: Res extends z.ZodType
|
|
275
|
+
? { args: A; response: Res }
|
|
276
|
+
: { args: A; response?: z.ZodType }
|
|
272
277
|
: Op extends z.ZodType
|
|
273
|
-
?
|
|
274
|
-
|
|
275
|
-
|
|
278
|
+
? Res extends z.ZodType
|
|
279
|
+
? { options: Op; response: Res }
|
|
280
|
+
: { options: Op; response?: z.ZodType }
|
|
281
|
+
: Res extends z.ZodType
|
|
282
|
+
? { response: Res }
|
|
283
|
+
: { response?: z.ZodType };
|
|
284
|
+
handler(
|
|
285
|
+
ctx: CommandContext<R, O, A, Op>
|
|
286
|
+
): Res extends z.ZodType ? z.infer<Res> | Promise<z.infer<Res>> : unknown | Promise<unknown>;
|
|
276
287
|
}): SubcommandDefinition {
|
|
277
288
|
return definition as unknown as SubcommandDefinition;
|
|
278
289
|
}
|
|
@@ -282,6 +293,7 @@ export function createCommand<
|
|
|
282
293
|
O extends Optional | undefined = undefined,
|
|
283
294
|
A extends z.ZodType | undefined = undefined,
|
|
284
295
|
Op extends z.ZodType | undefined = undefined,
|
|
296
|
+
Res extends z.ZodType | undefined = undefined,
|
|
285
297
|
>(definition: {
|
|
286
298
|
name: string;
|
|
287
299
|
description: string;
|
|
@@ -297,12 +309,22 @@ export function createCommand<
|
|
|
297
309
|
tags?: string[];
|
|
298
310
|
schema?: A extends z.ZodType
|
|
299
311
|
? Op extends z.ZodType
|
|
300
|
-
?
|
|
301
|
-
|
|
312
|
+
? Res extends z.ZodType
|
|
313
|
+
? { args: A; options: Op; response: Res }
|
|
314
|
+
: { args: A; options: Op; response?: z.ZodType }
|
|
315
|
+
: Res extends z.ZodType
|
|
316
|
+
? { args: A; response: Res }
|
|
317
|
+
: { args: A; response?: z.ZodType }
|
|
302
318
|
: Op extends z.ZodType
|
|
303
|
-
?
|
|
304
|
-
|
|
305
|
-
|
|
319
|
+
? Res extends z.ZodType
|
|
320
|
+
? { options: Op; response: Res }
|
|
321
|
+
: { options: Op; response?: z.ZodType }
|
|
322
|
+
: Res extends z.ZodType
|
|
323
|
+
? { response: Res }
|
|
324
|
+
: { response?: z.ZodType };
|
|
325
|
+
handler?(
|
|
326
|
+
ctx: CommandContext<R, O, A, Op>
|
|
327
|
+
): Res extends z.ZodType ? z.infer<Res> | Promise<z.infer<Res>> : unknown | Promise<unknown>;
|
|
306
328
|
subcommands?: SubcommandDefinition[];
|
|
307
329
|
}): CommandDefinition {
|
|
308
330
|
return definition as unknown as CommandDefinition;
|