@agentuity/cli 0.0.57 → 0.0.59
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/cmd/build/bundler.d.ts +1 -1
- package/dist/cmd/build/bundler.js +8 -9
- package/dist/cmd/build/bundler.js.map +1 -1
- package/dist/cmd/cloud/agent/get.d.ts +2 -0
- package/dist/cmd/cloud/agent/get.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/get.js +97 -0
- package/dist/cmd/cloud/agent/get.js.map +1 -0
- package/dist/cmd/cloud/agent/index.d.ts +2 -0
- package/dist/cmd/cloud/agent/index.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/index.js +11 -0
- package/dist/cmd/cloud/agent/index.js.map +1 -0
- package/dist/cmd/cloud/agent/list.d.ts +2 -0
- package/dist/cmd/cloud/agent/list.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/list.js +101 -0
- package/dist/cmd/cloud/agent/list.js.map +1 -0
- package/dist/cmd/cloud/agent/schema.d.ts +4 -0
- package/dist/cmd/cloud/agent/schema.d.ts.map +1 -0
- package/dist/cmd/cloud/agent/schema.js +22 -0
- package/dist/cmd/cloud/agent/schema.js.map +1 -0
- package/dist/cmd/cloud/apikey/create.d.ts +2 -0
- package/dist/cmd/cloud/apikey/create.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/create.js +100 -0
- package/dist/cmd/cloud/apikey/create.js.map +1 -0
- package/dist/cmd/cloud/apikey/delete.d.ts +2 -0
- package/dist/cmd/cloud/apikey/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/delete.js +55 -0
- package/dist/cmd/cloud/apikey/delete.js.map +1 -0
- package/dist/cmd/cloud/apikey/get.d.ts +2 -0
- package/dist/cmd/cloud/apikey/get.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/get.js +57 -0
- package/dist/cmd/cloud/apikey/get.js.map +1 -0
- package/dist/cmd/cloud/apikey/index.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/index.js +13 -0
- package/dist/cmd/cloud/apikey/index.js.map +1 -0
- package/dist/cmd/cloud/apikey/list.d.ts +2 -0
- package/dist/cmd/cloud/apikey/list.d.ts.map +1 -0
- package/dist/cmd/cloud/apikey/list.js +53 -0
- package/dist/cmd/cloud/apikey/list.js.map +1 -0
- package/dist/cmd/cloud/deployment/index.d.ts.map +1 -1
- package/dist/cmd/cloud/deployment/index.js +2 -0
- package/dist/cmd/cloud/deployment/index.js.map +1 -1
- package/dist/cmd/cloud/deployment/logs.d.ts +2 -0
- package/dist/cmd/cloud/deployment/logs.d.ts.map +1 -0
- package/dist/cmd/cloud/deployment/logs.js +70 -0
- package/dist/cmd/cloud/deployment/logs.js.map +1 -0
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +8 -2
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/cloud/session/get.js.map +1 -1
- package/dist/cmd/cloud/session/logs.d.ts.map +1 -1
- package/dist/cmd/cloud/session/logs.js +12 -9
- package/dist/cmd/cloud/session/logs.js.map +1 -1
- package/dist/cmd/cloud/stream/delete.d.ts +3 -0
- package/dist/cmd/cloud/stream/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/delete.js +42 -0
- package/dist/cmd/cloud/stream/delete.js.map +1 -0
- package/dist/cmd/cloud/stream/get.d.ts +3 -0
- package/dist/cmd/cloud/stream/get.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/get.js +110 -0
- package/dist/cmd/cloud/stream/get.js.map +1 -0
- package/dist/cmd/cloud/stream/index.d.ts +3 -0
- package/dist/cmd/cloud/stream/index.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/index.js +13 -0
- package/dist/cmd/cloud/stream/index.js.map +1 -0
- package/dist/cmd/cloud/stream/list.d.ts +3 -0
- package/dist/cmd/cloud/stream/list.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/list.js +131 -0
- package/dist/cmd/cloud/stream/list.js.map +1 -0
- package/dist/cmd/cloud/stream/util.d.ts +8 -0
- package/dist/cmd/cloud/stream/util.d.ts.map +1 -0
- package/dist/cmd/cloud/stream/util.js +19 -0
- package/dist/cmd/cloud/stream/util.js.map +1 -0
- package/dist/cmd/cloud/vector/delete.d.ts +3 -0
- package/dist/cmd/cloud/vector/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/delete.js +90 -0
- package/dist/cmd/cloud/vector/delete.js.map +1 -0
- package/dist/cmd/cloud/vector/get.d.ts +3 -0
- package/dist/cmd/cloud/vector/get.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/get.js +80 -0
- package/dist/cmd/cloud/vector/get.js.map +1 -0
- package/dist/cmd/cloud/vector/index.d.ts +3 -0
- package/dist/cmd/cloud/vector/index.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/index.js +14 -0
- package/dist/cmd/cloud/vector/index.js.map +1 -0
- package/dist/cmd/cloud/vector/search.d.ts +3 -0
- package/dist/cmd/cloud/vector/search.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/search.js +136 -0
- package/dist/cmd/cloud/vector/search.js.map +1 -0
- package/dist/cmd/cloud/vector/util.d.ts +8 -0
- package/dist/cmd/cloud/vector/util.d.ts.map +1 -0
- package/dist/cmd/cloud/vector/util.js +18 -0
- package/dist/cmd/cloud/vector/util.js.map +1 -0
- package/dist/cmd/dev/agents.d.ts.map +1 -1
- package/dist/cmd/dev/agents.js +3 -2
- 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 +103 -55
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/index.d.ts.map +1 -1
- package/dist/cmd/index.js +38 -42
- package/dist/cmd/index.js.map +1 -1
- package/dist/schema-parser.d.ts.map +1 -1
- package/dist/schema-parser.js +3 -1
- package/dist/schema-parser.js.map +1 -1
- package/dist/tui.d.ts +10 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +67 -41
- package/dist/tui.js.map +1 -1
- package/dist/utils/date.d.ts +14 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +51 -0
- package/dist/utils/date.js.map +1 -0
- package/package.json +6 -6
- package/src/cmd/build/bundler.ts +8 -8
- package/src/cmd/cloud/agent/get.ts +105 -0
- package/src/cmd/cloud/agent/index.ts +11 -0
- package/src/cmd/cloud/agent/list.ts +107 -0
- package/src/cmd/cloud/agent/schema.ts +25 -0
- package/src/cmd/cloud/apikey/create.ts +114 -0
- package/src/cmd/cloud/apikey/delete.ts +66 -0
- package/src/cmd/cloud/apikey/get.ts +62 -0
- package/src/cmd/cloud/apikey/index.ts +13 -0
- package/src/cmd/cloud/apikey/list.ts +58 -0
- package/src/cmd/cloud/deployment/index.ts +2 -0
- package/src/cmd/cloud/deployment/logs.ts +75 -0
- package/src/cmd/cloud/index.ts +8 -2
- package/src/cmd/cloud/session/get.ts +5 -5
- package/src/cmd/cloud/session/logs.ts +12 -11
- package/src/cmd/cloud/stream/delete.ts +49 -0
- package/src/cmd/cloud/stream/get.ts +118 -0
- package/src/cmd/cloud/stream/index.ts +14 -0
- package/src/cmd/cloud/stream/list.ts +146 -0
- package/src/cmd/cloud/stream/util.ts +32 -0
- package/src/cmd/cloud/vector/delete.ts +105 -0
- package/src/cmd/cloud/vector/get.ts +94 -0
- package/src/cmd/cloud/vector/index.ts +15 -0
- package/src/cmd/cloud/vector/search.ts +156 -0
- package/src/cmd/cloud/vector/util.ts +28 -0
- package/src/cmd/dev/agents.ts +4 -3
- package/src/cmd/dev/index.ts +114 -59
- package/src/cmd/index.ts +38 -42
- package/src/schema-parser.ts +3 -1
- package/src/tui.ts +80 -48
- package/src/utils/date.ts +57 -0
- package/dist/cmd/cloud/agents/index.d.ts.map +0 -1
- package/dist/cmd/cloud/agents/index.js +0 -133
- package/dist/cmd/cloud/agents/index.js.map +0 -1
- package/src/cmd/cloud/agents/index.ts +0 -148
- /package/dist/cmd/cloud/{agents → apikey}/index.d.ts +0 -0
package/src/tui.ts
CHANGED
|
@@ -135,6 +135,24 @@ export function colorMuted(text: string): string {
|
|
|
135
135
|
return `${color}${text}${reset}`;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
/**
|
|
139
|
+
* Get the appropriate color function for a log severity level
|
|
140
|
+
*/
|
|
141
|
+
export function getSeverityColor(severity: string): (text: string) => string {
|
|
142
|
+
switch (severity.toUpperCase()) {
|
|
143
|
+
case 'ERROR':
|
|
144
|
+
return colorError;
|
|
145
|
+
case 'WARN':
|
|
146
|
+
return colorWarning;
|
|
147
|
+
case 'INFO':
|
|
148
|
+
return colorInfo;
|
|
149
|
+
case 'DEBUG':
|
|
150
|
+
return colorMuted;
|
|
151
|
+
default:
|
|
152
|
+
return (text: string) => text;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
138
156
|
/**
|
|
139
157
|
* Print a success message with a green checkmark
|
|
140
158
|
*/
|
|
@@ -214,6 +232,25 @@ export function bold(text: string): string {
|
|
|
214
232
|
return `${color}${text}${reset}`;
|
|
215
233
|
}
|
|
216
234
|
|
|
235
|
+
/**
|
|
236
|
+
* Format text with white bold (or inverse for light mode)
|
|
237
|
+
* Used for table headings
|
|
238
|
+
*/
|
|
239
|
+
export function heading(text: string): string {
|
|
240
|
+
const USE_COLORS = shouldUseColors();
|
|
241
|
+
if (!USE_COLORS) {
|
|
242
|
+
return text;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// For light mode: use inverse (black bg, white text)
|
|
246
|
+
// For dark mode: use white bold
|
|
247
|
+
const style = isDarkMode()
|
|
248
|
+
? '\x1b[1;37m' // bold white
|
|
249
|
+
: '\x1b[7m'; // inverse
|
|
250
|
+
const reset = getColor('reset');
|
|
251
|
+
return `${style}${text}${reset}`;
|
|
252
|
+
}
|
|
253
|
+
|
|
217
254
|
/**
|
|
218
255
|
* Format text as a link (blue and underlined)
|
|
219
256
|
*/
|
|
@@ -859,8 +896,8 @@ export async function spinner<T>(
|
|
|
859
896
|
let frameIndex = 0;
|
|
860
897
|
let currentProgress: number | undefined;
|
|
861
898
|
|
|
862
|
-
//
|
|
863
|
-
process.stderr.write('\x1B[?25l');
|
|
899
|
+
// Save cursor position and hide cursor
|
|
900
|
+
process.stderr.write('\x1B[s\x1B[?25l');
|
|
864
901
|
|
|
865
902
|
// Start animation
|
|
866
903
|
const interval = setInterval(() => {
|
|
@@ -893,9 +930,12 @@ export async function spinner<T>(
|
|
|
893
930
|
? await options.callback()
|
|
894
931
|
: await options.callback;
|
|
895
932
|
|
|
896
|
-
//
|
|
933
|
+
// Stop animation first
|
|
897
934
|
clearInterval(interval);
|
|
898
|
-
|
|
935
|
+
|
|
936
|
+
// Restore cursor position, clear to end of screen, show cursor
|
|
937
|
+
// This removes spinner and any partial output that happened during animation
|
|
938
|
+
process.stderr.write('\x1B[u\x1B[J\x1B[?25h');
|
|
899
939
|
|
|
900
940
|
// If clearOnSuccess is false, show success message
|
|
901
941
|
if (!options.clearOnSuccess) {
|
|
@@ -904,22 +944,18 @@ export async function spinner<T>(
|
|
|
904
944
|
console.error(`${successColor}${ICONS.success} ${message}${reset}`);
|
|
905
945
|
}
|
|
906
946
|
|
|
907
|
-
// Show cursor
|
|
908
|
-
process.stderr.write('\x1B[?25h');
|
|
909
|
-
|
|
910
947
|
return result;
|
|
911
948
|
} catch (err) {
|
|
912
|
-
//
|
|
949
|
+
// Stop animation first
|
|
913
950
|
clearInterval(interval);
|
|
914
|
-
|
|
951
|
+
|
|
952
|
+
// Restore cursor position, clear to end of screen, show cursor
|
|
953
|
+
process.stderr.write('\x1B[u\x1B[J\x1B[?25h');
|
|
915
954
|
|
|
916
955
|
// Show error
|
|
917
956
|
const errorColor = getColor('error');
|
|
918
957
|
console.error(`${errorColor}${ICONS.error} ${message}${reset}`);
|
|
919
958
|
|
|
920
|
-
// Show cursor
|
|
921
|
-
process.stderr.write('\x1B[?25h');
|
|
922
|
-
|
|
923
959
|
throw err;
|
|
924
960
|
}
|
|
925
961
|
}
|
|
@@ -1378,7 +1414,7 @@ export interface TableColumn {
|
|
|
1378
1414
|
}
|
|
1379
1415
|
|
|
1380
1416
|
/**
|
|
1381
|
-
* Display data in a formatted table using
|
|
1417
|
+
* Display data in a formatted table using cli-table3
|
|
1382
1418
|
*
|
|
1383
1419
|
* Supports two modes:
|
|
1384
1420
|
* 1. Simple mode: Pass data array and optional column names
|
|
@@ -1394,14 +1430,14 @@ export function table<T extends Record<string, unknown>>(
|
|
|
1394
1430
|
columns?: (keyof T)[] | TableColumn[],
|
|
1395
1431
|
options?: { render?: boolean }
|
|
1396
1432
|
): string | void {
|
|
1397
|
-
// Dynamic import to avoid type errors (console-table-printer has poor typings)
|
|
1398
1433
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
1399
|
-
const
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1434
|
+
const Table = require('cli-table3') as new (options?: {
|
|
1435
|
+
head?: string[];
|
|
1436
|
+
colAligns?: Array<'left' | 'right' | 'center'>;
|
|
1437
|
+
wordWrap?: boolean;
|
|
1438
|
+
}) => {
|
|
1439
|
+
push(row: unknown[]): void;
|
|
1440
|
+
toString(): string;
|
|
1405
1441
|
};
|
|
1406
1442
|
|
|
1407
1443
|
if (!data || data.length === 0) {
|
|
@@ -1411,52 +1447,48 @@ export function table<T extends Record<string, unknown>>(
|
|
|
1411
1447
|
// Determine if we're using advanced column config or simple column names
|
|
1412
1448
|
const isAdvancedMode = columns && columns.length > 0 && typeof columns[0] === 'object';
|
|
1413
1449
|
|
|
1414
|
-
let
|
|
1450
|
+
let columnNames: string[];
|
|
1451
|
+
let colAligns: Array<'left' | 'right' | 'center'>;
|
|
1415
1452
|
|
|
1416
1453
|
if (isAdvancedMode) {
|
|
1417
1454
|
// Advanced mode: use provided column configurations
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
alignment: col.alignment || 'left',
|
|
1422
|
-
})),
|
|
1423
|
-
};
|
|
1455
|
+
const columnConfigs = columns as TableColumn[];
|
|
1456
|
+
columnNames = columnConfigs.map((col) => col.name);
|
|
1457
|
+
colAligns = columnConfigs.map((col) => col.alignment || 'left');
|
|
1424
1458
|
} else {
|
|
1425
1459
|
// Simple mode: determine column names from data or columns parameter
|
|
1426
|
-
|
|
1460
|
+
columnNames = columns
|
|
1427
1461
|
? (columns as (keyof T)[]).map((c) => String(c))
|
|
1428
1462
|
: data.length > 0
|
|
1429
1463
|
? Object.keys(data[0])
|
|
1430
1464
|
: [];
|
|
1431
|
-
|
|
1432
|
-
tableConfig = {
|
|
1433
|
-
columns: columnNames.map((name) => ({
|
|
1434
|
-
name,
|
|
1435
|
-
alignment: 'left',
|
|
1436
|
-
})),
|
|
1437
|
-
};
|
|
1465
|
+
colAligns = columnNames.map(() => 'left' as const);
|
|
1438
1466
|
}
|
|
1439
1467
|
|
|
1440
|
-
|
|
1468
|
+
// Apply heading style to column names
|
|
1469
|
+
const headings = columnNames.map((name) => heading(name));
|
|
1470
|
+
|
|
1471
|
+
const t = new Table({
|
|
1472
|
+
head: headings,
|
|
1473
|
+
colAligns,
|
|
1474
|
+
wordWrap: true,
|
|
1475
|
+
});
|
|
1441
1476
|
|
|
1442
1477
|
// Add rows to table
|
|
1443
1478
|
for (const row of data) {
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
const
|
|
1447
|
-
|
|
1448
|
-
filtered[String(col)] = row[col];
|
|
1449
|
-
}
|
|
1450
|
-
t.addRow(filtered);
|
|
1451
|
-
} else {
|
|
1452
|
-
// Advanced mode or no column filtering
|
|
1453
|
-
t.addRow(row);
|
|
1479
|
+
const rowData: unknown[] = [];
|
|
1480
|
+
for (const colName of columnNames) {
|
|
1481
|
+
const value = row[colName];
|
|
1482
|
+
rowData.push(value !== undefined && value !== null ? String(value) : '');
|
|
1454
1483
|
}
|
|
1484
|
+
t.push(rowData);
|
|
1455
1485
|
}
|
|
1456
1486
|
|
|
1487
|
+
const output = t.toString();
|
|
1488
|
+
|
|
1457
1489
|
if (options?.render) {
|
|
1458
|
-
return
|
|
1490
|
+
return output;
|
|
1459
1491
|
} else {
|
|
1460
|
-
|
|
1492
|
+
console.log(output);
|
|
1461
1493
|
}
|
|
1462
1494
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse duration string (e.g., "1h", "2d", "1y") or ISO date to ISO date string
|
|
3
|
+
*
|
|
4
|
+
* @param input - Duration string (1m, 1h, 2d, 1w, 1y) or ISO date (2025-12-31T23:59:59Z)
|
|
5
|
+
* @returns ISO date string
|
|
6
|
+
* @throws Error if input format is invalid
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* parseExpiresAt('1h') // Returns ISO date 1 hour from now
|
|
10
|
+
* parseExpiresAt('30d') // Returns ISO date 30 days from now
|
|
11
|
+
* parseExpiresAt('2025-12-31T23:59:59Z') // Returns same ISO date
|
|
12
|
+
*/
|
|
13
|
+
export function parseExpiresAt(input: string): string {
|
|
14
|
+
// Check if it's already an ISO date format
|
|
15
|
+
if (input.includes('T') || input.includes('-')) {
|
|
16
|
+
// Validate it's a valid date
|
|
17
|
+
const date = new Date(input);
|
|
18
|
+
if (isNaN(date.getTime())) {
|
|
19
|
+
throw new Error(`Invalid date format: ${input}`);
|
|
20
|
+
}
|
|
21
|
+
return date.toISOString();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Parse duration format (e.g., "1h", "2d", "30d", "1y")
|
|
25
|
+
const durationRegex = /^(\d+)(m|h|d|w|y)$/;
|
|
26
|
+
const match = input.match(durationRegex);
|
|
27
|
+
|
|
28
|
+
if (!match) {
|
|
29
|
+
throw new Error(
|
|
30
|
+
`Invalid expires-at format: ${input}. Use ISO date (2025-12-31T23:59:59Z) or duration (1h, 2d, 1y)`
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const [, amount, unit] = match;
|
|
35
|
+
const num = parseInt(amount, 10);
|
|
36
|
+
const now = new Date();
|
|
37
|
+
|
|
38
|
+
switch (unit) {
|
|
39
|
+
case 'm': // minutes
|
|
40
|
+
now.setMinutes(now.getMinutes() + num);
|
|
41
|
+
break;
|
|
42
|
+
case 'h': // hours
|
|
43
|
+
now.setHours(now.getHours() + num);
|
|
44
|
+
break;
|
|
45
|
+
case 'd': // days
|
|
46
|
+
now.setDate(now.getDate() + num);
|
|
47
|
+
break;
|
|
48
|
+
case 'w': // weeks
|
|
49
|
+
now.setDate(now.getDate() + num * 7);
|
|
50
|
+
break;
|
|
51
|
+
case 'y': // years
|
|
52
|
+
now.setFullYear(now.getFullYear() + num);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return now.toISOString();
|
|
57
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/agents/index.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,OAAO,sCA+GlB,CAAC;AACH,eAAe,OAAO,CAAC"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { createCommand } from '../../../types';
|
|
3
|
-
import * as tui from '../../../tui';
|
|
4
|
-
import { APIResponseSchema } from '@agentuity/server';
|
|
5
|
-
import { Table } from 'console-table-printer';
|
|
6
|
-
import { abbreviate, abbreviateDescription } from '../../../utils/format';
|
|
7
|
-
const AgentSchema = z.object({
|
|
8
|
-
id: z.string(),
|
|
9
|
-
name: z.string(),
|
|
10
|
-
description: z.string().nullable(),
|
|
11
|
-
identifier: z.string(),
|
|
12
|
-
version: z.string().nullable(),
|
|
13
|
-
deploymentId: z.string().nullable(),
|
|
14
|
-
devmode: z.boolean(),
|
|
15
|
-
metadata: z.record(z.string(), z.unknown()).nullable(),
|
|
16
|
-
createdAt: z.string(),
|
|
17
|
-
updatedAt: z.string(),
|
|
18
|
-
evals: z.array(z.object({
|
|
19
|
-
id: z.string(),
|
|
20
|
-
name: z.string(),
|
|
21
|
-
description: z.string().nullable(),
|
|
22
|
-
identifier: z.string().nullable(),
|
|
23
|
-
deploymentId: z.string().nullable(),
|
|
24
|
-
version: z.string().nullable(),
|
|
25
|
-
devmode: z.boolean(),
|
|
26
|
-
createdAt: z.string(),
|
|
27
|
-
updatedAt: z.string(),
|
|
28
|
-
})),
|
|
29
|
-
});
|
|
30
|
-
const AgentsResponseSchema = APIResponseSchema(z.array(AgentSchema));
|
|
31
|
-
export const command = createCommand({
|
|
32
|
-
name: 'agents',
|
|
33
|
-
description: 'Show devmode agent results',
|
|
34
|
-
requires: { auth: true, apiClient: true, project: true },
|
|
35
|
-
schema: {
|
|
36
|
-
options: z.object({
|
|
37
|
-
deploymentId: z.string().optional().describe('Filter by deployment ID'),
|
|
38
|
-
format: z
|
|
39
|
-
.enum(['json', 'table'])
|
|
40
|
-
.optional()
|
|
41
|
-
.default('table')
|
|
42
|
-
.describe('Output format: json or table'),
|
|
43
|
-
verbose: z.boolean().optional().default(false).describe('Show full IDs and descriptions'),
|
|
44
|
-
}),
|
|
45
|
-
},
|
|
46
|
-
async handler(ctx) {
|
|
47
|
-
const { opts, apiClient, project } = ctx;
|
|
48
|
-
const projectId = project.projectId;
|
|
49
|
-
const format = opts?.format ?? 'table';
|
|
50
|
-
const verbose = opts?.verbose ?? false;
|
|
51
|
-
const deploymentId = opts?.deploymentId;
|
|
52
|
-
const queryParams = deploymentId ? `?deploymentId=${deploymentId}` : '';
|
|
53
|
-
const response = await tui.spinner('Fetching agents', async () => {
|
|
54
|
-
return apiClient.request('GET', `/cli/agent/${projectId}${queryParams}`, AgentsResponseSchema);
|
|
55
|
-
});
|
|
56
|
-
if (!response.success) {
|
|
57
|
-
tui.fatal(`Failed to fetch agents: ${response.message ?? 'Unknown error'}`);
|
|
58
|
-
}
|
|
59
|
-
const agents = response.data;
|
|
60
|
-
if (format === 'json') {
|
|
61
|
-
console.log(JSON.stringify(agents, null, 2));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
tui.info(`Agents (${agents.length})`);
|
|
65
|
-
if (agents.length === 0) {
|
|
66
|
-
tui.muted('No agents found');
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
const table = new Table({
|
|
70
|
-
columns: [
|
|
71
|
-
{ name: 'Name', alignment: 'left' },
|
|
72
|
-
{ name: 'ID', alignment: 'left' },
|
|
73
|
-
{ name: 'Identifier', alignment: 'left' },
|
|
74
|
-
{ name: 'Deployment', alignment: 'left' },
|
|
75
|
-
{ name: 'Version', alignment: 'left' },
|
|
76
|
-
{ name: 'Evals', alignment: 'center' },
|
|
77
|
-
{ name: 'Created', alignment: 'left' },
|
|
78
|
-
],
|
|
79
|
-
});
|
|
80
|
-
for (const agent of agents) {
|
|
81
|
-
table.addRow({
|
|
82
|
-
Name: agent.name,
|
|
83
|
-
ID: verbose ? agent.id : abbreviate(agent.id, 20),
|
|
84
|
-
Identifier: verbose ? agent.identifier : abbreviate(agent.identifier, 20),
|
|
85
|
-
Deployment: abbreviate(agent.deploymentId, 20),
|
|
86
|
-
Version: verbose
|
|
87
|
-
? (agent.version ?? 'N/A')
|
|
88
|
-
: (abbreviate(agent.version, 20) ?? 'N/A'),
|
|
89
|
-
Evals: agent.evals.length,
|
|
90
|
-
Created: new Date(agent.createdAt).toLocaleString(),
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
table.printTable();
|
|
94
|
-
// Show evals for each agent
|
|
95
|
-
for (const agent of agents) {
|
|
96
|
-
if (agent.evals.length > 0) {
|
|
97
|
-
console.log(`\n Evals for ${agent.name}:`);
|
|
98
|
-
const evalTable = new Table({
|
|
99
|
-
columns: [
|
|
100
|
-
{ name: 'Name', alignment: 'left' },
|
|
101
|
-
{ name: 'ID', alignment: 'left' },
|
|
102
|
-
{ name: 'Identifier', alignment: 'left' },
|
|
103
|
-
{ name: 'Deployment', alignment: 'left' },
|
|
104
|
-
{ name: 'Version', alignment: 'left' },
|
|
105
|
-
{ name: 'Description', alignment: 'left' },
|
|
106
|
-
{ name: 'Created', alignment: 'left' },
|
|
107
|
-
],
|
|
108
|
-
});
|
|
109
|
-
for (const evalItem of agent.evals) {
|
|
110
|
-
evalTable.addRow({
|
|
111
|
-
Name: evalItem.name,
|
|
112
|
-
ID: verbose ? evalItem.id : abbreviate(evalItem.id, 20),
|
|
113
|
-
Identifier: verbose
|
|
114
|
-
? (evalItem.identifier ?? 'N/A')
|
|
115
|
-
: (abbreviate(evalItem.identifier, 20) ?? 'N/A'),
|
|
116
|
-
Deployment: abbreviate(evalItem.deploymentId, 20),
|
|
117
|
-
Version: verbose
|
|
118
|
-
? (evalItem.version ?? 'N/A')
|
|
119
|
-
: (abbreviate(evalItem.version, 20) ?? 'N/A'),
|
|
120
|
-
Description: verbose
|
|
121
|
-
? (evalItem.description ?? 'N/A')
|
|
122
|
-
: abbreviateDescription(evalItem.description),
|
|
123
|
-
Created: new Date(evalItem.createdAt).toLocaleString(),
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
evalTable.printTable();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
});
|
|
132
|
-
export default command;
|
|
133
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/agents/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { createCommand } from '../../../types';
|
|
3
|
-
import * as tui from '../../../tui';
|
|
4
|
-
import { APIResponseSchema } from '@agentuity/server';
|
|
5
|
-
import { Table } from 'console-table-printer';
|
|
6
|
-
import { abbreviate, abbreviateDescription } from '../../../utils/format';
|
|
7
|
-
|
|
8
|
-
const AgentSchema = z.object({
|
|
9
|
-
id: z.string(),
|
|
10
|
-
name: z.string(),
|
|
11
|
-
description: z.string().nullable(),
|
|
12
|
-
identifier: z.string(),
|
|
13
|
-
version: z.string().nullable(),
|
|
14
|
-
deploymentId: z.string().nullable(),
|
|
15
|
-
devmode: z.boolean(),
|
|
16
|
-
metadata: z.record(z.string(), z.unknown()).nullable(),
|
|
17
|
-
createdAt: z.string(),
|
|
18
|
-
updatedAt: z.string(),
|
|
19
|
-
evals: z.array(
|
|
20
|
-
z.object({
|
|
21
|
-
id: z.string(),
|
|
22
|
-
name: z.string(),
|
|
23
|
-
description: z.string().nullable(),
|
|
24
|
-
identifier: z.string().nullable(),
|
|
25
|
-
deploymentId: z.string().nullable(),
|
|
26
|
-
version: z.string().nullable(),
|
|
27
|
-
devmode: z.boolean(),
|
|
28
|
-
createdAt: z.string(),
|
|
29
|
-
updatedAt: z.string(),
|
|
30
|
-
})
|
|
31
|
-
),
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const AgentsResponseSchema = APIResponseSchema(z.array(AgentSchema));
|
|
35
|
-
|
|
36
|
-
export const command = createCommand({
|
|
37
|
-
name: 'agents',
|
|
38
|
-
description: 'Show devmode agent results',
|
|
39
|
-
requires: { auth: true, apiClient: true, project: true },
|
|
40
|
-
schema: {
|
|
41
|
-
options: z.object({
|
|
42
|
-
deploymentId: z.string().optional().describe('Filter by deployment ID'),
|
|
43
|
-
format: z
|
|
44
|
-
.enum(['json', 'table'])
|
|
45
|
-
.optional()
|
|
46
|
-
.default('table')
|
|
47
|
-
.describe('Output format: json or table'),
|
|
48
|
-
verbose: z.boolean().optional().default(false).describe('Show full IDs and descriptions'),
|
|
49
|
-
}),
|
|
50
|
-
},
|
|
51
|
-
async handler(ctx) {
|
|
52
|
-
const { opts, apiClient, project } = ctx;
|
|
53
|
-
const projectId = project.projectId;
|
|
54
|
-
const format = opts?.format ?? 'table';
|
|
55
|
-
const verbose = opts?.verbose ?? false;
|
|
56
|
-
|
|
57
|
-
const deploymentId = opts?.deploymentId;
|
|
58
|
-
const queryParams = deploymentId ? `?deploymentId=${deploymentId}` : '';
|
|
59
|
-
const response = await tui.spinner('Fetching agents', async () => {
|
|
60
|
-
return apiClient.request(
|
|
61
|
-
'GET',
|
|
62
|
-
`/cli/agent/${projectId}${queryParams}`,
|
|
63
|
-
AgentsResponseSchema
|
|
64
|
-
);
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
if (!response.success) {
|
|
68
|
-
tui.fatal(`Failed to fetch agents: ${response.message ?? 'Unknown error'}`);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
const agents = response.data;
|
|
72
|
-
|
|
73
|
-
if (format === 'json') {
|
|
74
|
-
console.log(JSON.stringify(agents, null, 2));
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
tui.info(`Agents (${agents.length})`);
|
|
79
|
-
if (agents.length === 0) {
|
|
80
|
-
tui.muted('No agents found');
|
|
81
|
-
} else {
|
|
82
|
-
const table = new Table({
|
|
83
|
-
columns: [
|
|
84
|
-
{ name: 'Name', alignment: 'left' },
|
|
85
|
-
{ name: 'ID', alignment: 'left' },
|
|
86
|
-
{ name: 'Identifier', alignment: 'left' },
|
|
87
|
-
{ name: 'Deployment', alignment: 'left' },
|
|
88
|
-
{ name: 'Version', alignment: 'left' },
|
|
89
|
-
{ name: 'Evals', alignment: 'center' },
|
|
90
|
-
{ name: 'Created', alignment: 'left' },
|
|
91
|
-
],
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
for (const agent of agents) {
|
|
95
|
-
table.addRow({
|
|
96
|
-
Name: agent.name,
|
|
97
|
-
ID: verbose ? agent.id : abbreviate(agent.id, 20),
|
|
98
|
-
Identifier: verbose ? agent.identifier : abbreviate(agent.identifier, 20),
|
|
99
|
-
Deployment: abbreviate(agent.deploymentId, 20),
|
|
100
|
-
Version: verbose
|
|
101
|
-
? (agent.version ?? 'N/A')
|
|
102
|
-
: (abbreviate(agent.version, 20) ?? 'N/A'),
|
|
103
|
-
Evals: agent.evals.length,
|
|
104
|
-
Created: new Date(agent.createdAt).toLocaleString(),
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
table.printTable();
|
|
108
|
-
|
|
109
|
-
// Show evals for each agent
|
|
110
|
-
for (const agent of agents) {
|
|
111
|
-
if (agent.evals.length > 0) {
|
|
112
|
-
console.log(`\n Evals for ${agent.name}:`);
|
|
113
|
-
const evalTable = new Table({
|
|
114
|
-
columns: [
|
|
115
|
-
{ name: 'Name', alignment: 'left' },
|
|
116
|
-
{ name: 'ID', alignment: 'left' },
|
|
117
|
-
{ name: 'Identifier', alignment: 'left' },
|
|
118
|
-
{ name: 'Deployment', alignment: 'left' },
|
|
119
|
-
{ name: 'Version', alignment: 'left' },
|
|
120
|
-
{ name: 'Description', alignment: 'left' },
|
|
121
|
-
{ name: 'Created', alignment: 'left' },
|
|
122
|
-
],
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
for (const evalItem of agent.evals) {
|
|
126
|
-
evalTable.addRow({
|
|
127
|
-
Name: evalItem.name,
|
|
128
|
-
ID: verbose ? evalItem.id : abbreviate(evalItem.id, 20),
|
|
129
|
-
Identifier: verbose
|
|
130
|
-
? (evalItem.identifier ?? 'N/A')
|
|
131
|
-
: (abbreviate(evalItem.identifier, 20) ?? 'N/A'),
|
|
132
|
-
Deployment: abbreviate(evalItem.deploymentId, 20),
|
|
133
|
-
Version: verbose
|
|
134
|
-
? (evalItem.version ?? 'N/A')
|
|
135
|
-
: (abbreviate(evalItem.version, 20) ?? 'N/A'),
|
|
136
|
-
Description: verbose
|
|
137
|
-
? (evalItem.description ?? 'N/A')
|
|
138
|
-
: abbreviateDescription(evalItem.description),
|
|
139
|
-
Created: new Date(evalItem.createdAt).toLocaleString(),
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
evalTable.printTable();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
});
|
|
148
|
-
export default command;
|
|
File without changes
|