@copado/agentia-cli 0.10.0-alpha.0 → 0.13.0-alpha.0

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 (42) hide show
  1. package/README.md +194 -51
  2. package/dist/commands/environment/list.d.ts +6 -0
  3. package/dist/commands/environment/list.js +7 -2
  4. package/dist/commands/environment/list.js.map +1 -1
  5. package/dist/commands/project/list.d.ts +10 -0
  6. package/dist/commands/project/list.js +31 -0
  7. package/dist/commands/project/list.js.map +1 -0
  8. package/dist/commands/promotion/get.d.ts +10 -0
  9. package/dist/commands/promotion/get.js +31 -0
  10. package/dist/commands/promotion/get.js.map +1 -0
  11. package/dist/commands/promotion/list.d.ts +30 -0
  12. package/dist/commands/promotion/list.js +48 -0
  13. package/dist/commands/promotion/list.js.map +1 -0
  14. package/dist/commands/user/get.d.ts +10 -0
  15. package/dist/commands/user/get.js +32 -0
  16. package/dist/commands/user/get.js.map +1 -0
  17. package/dist/lib/environment-flags.d.ts +11 -1
  18. package/dist/lib/environment-flags.js +29 -0
  19. package/dist/lib/environment-flags.js.map +1 -1
  20. package/dist/lib/environment-types.d.ts +8 -0
  21. package/dist/lib/environment-types.js +18 -0
  22. package/dist/lib/environment-types.js.map +1 -1
  23. package/dist/lib/mcp/tools.d.ts +30 -0
  24. package/dist/lib/mcp/tools.js +110 -7
  25. package/dist/lib/mcp/tools.js.map +1 -1
  26. package/dist/lib/project-flags.d.ts +8 -0
  27. package/dist/lib/project-flags.js +10 -0
  28. package/dist/lib/project-flags.js.map +1 -0
  29. package/dist/lib/project-types.d.ts +19 -0
  30. package/dist/lib/project-types.js +27 -0
  31. package/dist/lib/project-types.js.map +1 -0
  32. package/dist/lib/promotion-flags.d.ts +21 -0
  33. package/dist/lib/promotion-flags.js +77 -0
  34. package/dist/lib/promotion-flags.js.map +1 -0
  35. package/dist/lib/promotion-types.d.ts +188 -0
  36. package/dist/lib/promotion-types.js +145 -0
  37. package/dist/lib/promotion-types.js.map +1 -0
  38. package/dist/lib/user-types.d.ts +9 -0
  39. package/dist/lib/user-types.js +21 -0
  40. package/dist/lib/user-types.js.map +1 -0
  41. package/oclif.manifest.json +314 -26
  42. package/package.json +4 -1
@@ -0,0 +1,145 @@
1
+ import { cellValue, table } from './format.js';
2
+ import { normalizeSalesforceId } from './salesforce-id.js';
3
+ export const PROMOTION_LIST_FILTER_KEYS = [
4
+ 'name',
5
+ 'status',
6
+ 'projectId',
7
+ 'projectName',
8
+ 'pipelineId',
9
+ 'pipelineName',
10
+ 'sourceEnvironmentId',
11
+ 'sourceEnvironmentName',
12
+ 'destinationEnvironmentId',
13
+ 'destinationEnvironmentName',
14
+ 'isBackPromotion',
15
+ 'createdById',
16
+ 'createdByName',
17
+ 'limit',
18
+ ];
19
+ const PROMOTION_LIST_FILTER_QUERY_PARAM = {
20
+ createdById: 'createdById',
21
+ createdByName: 'createdByName',
22
+ destinationEnvironmentId: 'destinationEnvironmentId',
23
+ destinationEnvironmentName: 'destinationEnvironmentName',
24
+ isBackPromotion: 'isBackPromotion',
25
+ limit: 'limit',
26
+ name: 'name',
27
+ pipelineId: 'pipelineId',
28
+ pipelineName: 'pipelineName',
29
+ projectId: 'projectId',
30
+ projectName: 'projectName',
31
+ sourceEnvironmentId: 'sourceEnvironmentId',
32
+ sourceEnvironmentName: 'sourceEnvironmentName',
33
+ status: 'status',
34
+ };
35
+ export const PROMOTION_LIST_LIMIT_MAX = 200;
36
+ export const PROMOTION_LIST_LIMIT_MIN = 1;
37
+ export function promotionListEndpoint(filters = {}) {
38
+ const params = new URLSearchParams();
39
+ for (const key of PROMOTION_LIST_FILTER_KEYS) {
40
+ const value = filters[key];
41
+ if (value === undefined) {
42
+ continue;
43
+ }
44
+ if (key === 'isBackPromotion') {
45
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], String(value));
46
+ continue;
47
+ }
48
+ if (key === 'limit') {
49
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], String(value));
50
+ continue;
51
+ }
52
+ if (key === 'sourceEnvironmentId' ||
53
+ key === 'destinationEnvironmentId' ||
54
+ key === 'pipelineId' ||
55
+ key === 'projectId' ||
56
+ key === 'createdById') {
57
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], normalizeSalesforceId(value));
58
+ continue;
59
+ }
60
+ params.set(PROMOTION_LIST_FILTER_QUERY_PARAM[key], value);
61
+ }
62
+ const query = params.toString();
63
+ return query.length > 0 ? `/release/promotion?${query}` : '/release/promotion';
64
+ }
65
+ export function promotionEndpoint(id) {
66
+ return `/release/promotion/${normalizeSalesforceId(id)}`;
67
+ }
68
+ export function normalizePromotions(response) {
69
+ if (Array.isArray(response)) {
70
+ return response;
71
+ }
72
+ if (Array.isArray(response.data)) {
73
+ return response.data;
74
+ }
75
+ return [];
76
+ }
77
+ export function normalizePromotionDetail(response) {
78
+ if ('data' in response && response.data !== undefined && typeof response.data === 'object') {
79
+ return response.data;
80
+ }
81
+ return response;
82
+ }
83
+ export function formatPromotionTable(promotions) {
84
+ return table([
85
+ { alias: 'ID', value: 'id' },
86
+ { alias: 'NAME', value: 'name' },
87
+ { alias: 'STATUS', value: 'status' },
88
+ { alias: 'PROJECT', value: 'projectName' },
89
+ { alias: 'PIPELINE', value: 'pipelineName' },
90
+ { alias: 'SOURCE', value: 'sourceEnvironmentName' },
91
+ { alias: 'DESTINATION', value: 'destinationEnvironmentName' },
92
+ { alias: 'BACK', value: 'isBackPromotion' },
93
+ ], promotions.map((promotion) => ({
94
+ destinationEnvironmentName: cellValue(promotion.destinationEnvironmentName),
95
+ id: cellValue(promotion.id),
96
+ isBackPromotion: cellValue(promotion.isBackPromotion),
97
+ name: cellValue(promotion.name),
98
+ pipelineName: cellValue(promotion.pipelineName),
99
+ projectName: cellValue(promotion.projectName),
100
+ sourceEnvironmentName: cellValue(promotion.sourceEnvironmentName),
101
+ status: cellValue(promotion.status),
102
+ })));
103
+ }
104
+ function appendOptionalDetailLine(lines, label, value) {
105
+ if (typeof value === 'string' && value.trim().length > 0) {
106
+ lines.push(`${label}: ${value}`);
107
+ }
108
+ }
109
+ function promotionDetailIdentityLines(promotion) {
110
+ const { identification, mainSettings } = promotion;
111
+ const promotionName = identification?.promotionName ?? promotion.id;
112
+ return [
113
+ `ID: ${cellValue(promotion.id)}`,
114
+ `Name: ${cellValue(promotionName)}`,
115
+ `Status: ${cellValue(promotion.status)}`,
116
+ `Salesforce Status: ${cellValue(promotion.salesforceStatus)}`,
117
+ `Project: ${cellValue(identification?.projectName ?? identification?.projectId)}`,
118
+ `Release: ${cellValue(identification?.releaseName ?? identification?.releaseId)}`,
119
+ `Pipeline: ${cellValue(identification?.pipelineName ?? identification?.pipelineId)}`,
120
+ `Source Environment: ${cellValue(promotion.sourceEnvironmentName ?? promotion.sourceEnvironmentId)}`,
121
+ `Destination Environment: ${cellValue(promotion.destinationEnvironmentName ?? promotion.destinationEnvironmentId)}`,
122
+ `Platform: ${cellValue(mainSettings?.platform)}`,
123
+ `Back Promotion: ${cellValue(mainSettings?.isBackPromotion)}`,
124
+ `Promotion Method: ${cellValue(mainSettings?.promotionMethod)}`,
125
+ ];
126
+ }
127
+ function promotionDetailExecutionLines(promotion) {
128
+ return [
129
+ `User Stories: ${cellValue(promotion.userStoryCount ?? promotion.userStories?.length)}`,
130
+ `Included Metadata: ${cellValue(promotion.includedMetadataCount ?? promotion.includedMetadata?.length)}`,
131
+ `Last Promotion Execution: ${cellValue(promotion.lastPromotionExecutionId)} (${cellValue(promotion.lastPromotionExecutionStatus)})`,
132
+ `Last Deployment Execution: ${cellValue(promotion.lastDeploymentExecutionId)} (${cellValue(promotion.lastDeploymentExecutionStatus)})`,
133
+ `Created By: ${cellValue(promotion.createdBy)}`,
134
+ `Created Date: ${cellValue(promotion.createdDate)}`,
135
+ `Last Modified By: ${cellValue(promotion.lastModifiedBy)}`,
136
+ `Last Modified Date: ${cellValue(promotion.lastModifiedDate)}`,
137
+ ];
138
+ }
139
+ export function formatPromotionDetail(promotion) {
140
+ const lines = [...promotionDetailIdentityLines(promotion), ...promotionDetailExecutionLines(promotion)];
141
+ appendOptionalDetailLine(lines, 'Execution Error', promotion.executionErrorMessage);
142
+ appendOptionalDetailLine(lines, 'View In Git', promotion.viewInGitLink);
143
+ return lines.join('\n');
144
+ }
145
+ //# sourceMappingURL=promotion-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion-types.js","sourceRoot":"","sources":["../../src/lib/promotion-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type User = {
2
+ fullName?: null | string;
3
+ id: null | string;
4
+ username?: null | string;
5
+ };
6
+ export declare const DEFAULT_USER_ID = "me";
7
+ export declare function resolveUserId(userId?: null | string): string;
8
+ export declare function userEndpoint(userId?: string): string;
9
+ export declare function formatUserDetail(user: User): string;
@@ -0,0 +1,21 @@
1
+ import { cellValue } from './format.js';
2
+ import { normalizeSalesforceId } from './salesforce-id.js';
3
+ export const DEFAULT_USER_ID = 'me';
4
+ export function resolveUserId(userId) {
5
+ const trimmed = userId?.trim();
6
+ if (trimmed === undefined || trimmed.length === 0) {
7
+ return DEFAULT_USER_ID;
8
+ }
9
+ return trimmed.toLowerCase() === DEFAULT_USER_ID ? DEFAULT_USER_ID : normalizeSalesforceId(trimmed);
10
+ }
11
+ export function userEndpoint(userId = DEFAULT_USER_ID) {
12
+ return `/corpus/users/${resolveUserId(userId)}`;
13
+ }
14
+ export function formatUserDetail(user) {
15
+ return [
16
+ `ID: ${cellValue(user.id)}`,
17
+ `Full Name: ${cellValue(user.fullName)}`,
18
+ `Username: ${cellValue(user.username)}`,
19
+ ].join('\n');
20
+ }
21
+ //# sourceMappingURL=user-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-types.js","sourceRoot":"","sources":["../../src/lib/user-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAA;AACrC,OAAO,EAAC,qBAAqB,EAAC,MAAM,oBAAoB,CAAA;AAQxD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA;AAEnC,MAAM,UAAU,aAAa,CAAC,MAAsB;IAClD,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,EAAE,CAAA;IAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AACrG,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAiB,eAAe;IAC3D,OAAO,iBAAiB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAU;IACzC,OAAO;QACL,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAC3B,cAAc,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACxC,aAAa,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;KACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
@@ -281,6 +281,7 @@
281
281
  "description": "List Copado environments",
282
282
  "examples": [
283
283
  "<%= config.bin %> <%= command.id %>",
284
+ "<%= config.bin %> <%= command.id %> --name Dev --org-id 00D000000000000 --platform SFDX --type Sandbox",
284
285
  "<%= config.bin %> <%= command.id %> --json"
285
286
  ],
286
287
  "flags": {
@@ -290,6 +291,40 @@
290
291
  "name": "json",
291
292
  "allowNo": false,
292
293
  "type": "boolean"
294
+ },
295
+ "name": {
296
+ "description": "Filter by name",
297
+ "name": "name",
298
+ "hasDynamicHelp": false,
299
+ "multiple": false,
300
+ "type": "option"
301
+ },
302
+ "org-id": {
303
+ "description": "Filter by Salesforce org ID",
304
+ "name": "org-id",
305
+ "hasDynamicHelp": false,
306
+ "multiple": false,
307
+ "type": "option"
308
+ },
309
+ "platform": {
310
+ "description": "Filter by platform",
311
+ "name": "platform",
312
+ "hasDynamicHelp": false,
313
+ "multiple": false,
314
+ "type": "option"
315
+ },
316
+ "type": {
317
+ "description": "Environment type",
318
+ "name": "type",
319
+ "hasDynamicHelp": false,
320
+ "multiple": false,
321
+ "options": [
322
+ "Production/Developer",
323
+ "Sandbox",
324
+ "Scratch Org",
325
+ "Custom Domain"
326
+ ],
327
+ "type": "option"
293
328
  }
294
329
  },
295
330
  "hasDynamicHelp": false,
@@ -429,31 +464,6 @@
429
464
  "update.js"
430
465
  ]
431
466
  },
432
- "mcp:start": {
433
- "aliases": [],
434
- "args": {},
435
- "description": "Start the local Agentia MCP server over stdio",
436
- "examples": [
437
- "<%= config.bin %> <%= command.id %>",
438
- "<%= config.bin %> <%= command.id %> # long-running stdio MCP server for Cursor and other clients"
439
- ],
440
- "flags": {},
441
- "hasDynamicHelp": false,
442
- "hiddenAliases": [],
443
- "id": "mcp:start",
444
- "pluginAlias": "@copado/agentia-cli",
445
- "pluginName": "@copado/agentia-cli",
446
- "pluginType": "core",
447
- "strict": true,
448
- "enableJsonFlag": false,
449
- "isESM": true,
450
- "relativePath": [
451
- "dist",
452
- "commands",
453
- "mcp",
454
- "start.js"
455
- ]
456
- },
457
467
  "job:get": {
458
468
  "aliases": [],
459
469
  "args": {
@@ -823,6 +833,31 @@
823
833
  "run.js"
824
834
  ]
825
835
  },
836
+ "mcp:start": {
837
+ "aliases": [],
838
+ "args": {},
839
+ "description": "Start the local Agentia MCP server over stdio",
840
+ "examples": [
841
+ "<%= config.bin %> <%= command.id %>",
842
+ "<%= config.bin %> <%= command.id %> # long-running stdio MCP server for Cursor and other clients"
843
+ ],
844
+ "flags": {},
845
+ "hasDynamicHelp": false,
846
+ "hiddenAliases": [],
847
+ "id": "mcp:start",
848
+ "pluginAlias": "@copado/agentia-cli",
849
+ "pluginName": "@copado/agentia-cli",
850
+ "pluginType": "core",
851
+ "strict": true,
852
+ "enableJsonFlag": false,
853
+ "isESM": true,
854
+ "relativePath": [
855
+ "dist",
856
+ "commands",
857
+ "mcp",
858
+ "start.js"
859
+ ]
860
+ },
826
861
  "metadata:list": {
827
862
  "aliases": [],
828
863
  "args": {},
@@ -1076,6 +1111,259 @@
1076
1111
  "list.js"
1077
1112
  ]
1078
1113
  },
1114
+ "project:list": {
1115
+ "aliases": [],
1116
+ "args": {},
1117
+ "description": "List Copado projects",
1118
+ "examples": [
1119
+ "<%= config.bin %> <%= command.id %>",
1120
+ "<%= config.bin %> <%= command.id %> --mine",
1121
+ "<%= config.bin %> <%= command.id %> --mine --json"
1122
+ ],
1123
+ "flags": {
1124
+ "json": {
1125
+ "description": "Format output as json.",
1126
+ "helpGroup": "GLOBAL",
1127
+ "name": "json",
1128
+ "allowNo": false,
1129
+ "type": "boolean"
1130
+ },
1131
+ "mine": {
1132
+ "description": "List only projects owned by or related to the current user",
1133
+ "name": "mine",
1134
+ "allowNo": false,
1135
+ "type": "boolean"
1136
+ }
1137
+ },
1138
+ "hasDynamicHelp": false,
1139
+ "hiddenAliases": [],
1140
+ "id": "project:list",
1141
+ "pluginAlias": "@copado/agentia-cli",
1142
+ "pluginName": "@copado/agentia-cli",
1143
+ "pluginType": "core",
1144
+ "strict": true,
1145
+ "enableJsonFlag": true,
1146
+ "isESM": true,
1147
+ "relativePath": [
1148
+ "dist",
1149
+ "commands",
1150
+ "project",
1151
+ "list.js"
1152
+ ]
1153
+ },
1154
+ "promotion:get": {
1155
+ "aliases": [],
1156
+ "args": {
1157
+ "id": {
1158
+ "description": "Copado promotion ID",
1159
+ "name": "id",
1160
+ "required": true
1161
+ }
1162
+ },
1163
+ "description": "Get a Copado promotion by ID",
1164
+ "examples": [
1165
+ "<%= config.bin %> <%= command.id %> <promotion-id>",
1166
+ "<%= config.bin %> <%= command.id %> <promotion-id> --json"
1167
+ ],
1168
+ "flags": {
1169
+ "json": {
1170
+ "description": "Format output as json.",
1171
+ "helpGroup": "GLOBAL",
1172
+ "name": "json",
1173
+ "allowNo": false,
1174
+ "type": "boolean"
1175
+ }
1176
+ },
1177
+ "hasDynamicHelp": false,
1178
+ "hiddenAliases": [],
1179
+ "id": "promotion:get",
1180
+ "pluginAlias": "@copado/agentia-cli",
1181
+ "pluginName": "@copado/agentia-cli",
1182
+ "pluginType": "core",
1183
+ "strict": true,
1184
+ "enableJsonFlag": true,
1185
+ "isESM": true,
1186
+ "relativePath": [
1187
+ "dist",
1188
+ "commands",
1189
+ "promotion",
1190
+ "get.js"
1191
+ ]
1192
+ },
1193
+ "promotion:list": {
1194
+ "aliases": [],
1195
+ "args": {},
1196
+ "description": "List Copado promotions",
1197
+ "examples": [
1198
+ "<%= config.bin %> <%= command.id %>",
1199
+ "<%= config.bin %> <%= command.id %> --status Completed --project-name \"My Project\" --limit 50",
1200
+ "<%= config.bin %> <%= command.id %> --json"
1201
+ ],
1202
+ "flags": {
1203
+ "json": {
1204
+ "description": "Format output as json.",
1205
+ "helpGroup": "GLOBAL",
1206
+ "name": "json",
1207
+ "allowNo": false,
1208
+ "type": "boolean"
1209
+ },
1210
+ "created-by-id": {
1211
+ "description": "Filter by creator ID",
1212
+ "name": "created-by-id",
1213
+ "hasDynamicHelp": false,
1214
+ "multiple": false,
1215
+ "type": "option"
1216
+ },
1217
+ "created-by-name": {
1218
+ "description": "Filter by creator name",
1219
+ "name": "created-by-name",
1220
+ "hasDynamicHelp": false,
1221
+ "multiple": false,
1222
+ "type": "option"
1223
+ },
1224
+ "destination-environment-id": {
1225
+ "description": "Filter by destination environment ID",
1226
+ "name": "destination-environment-id",
1227
+ "hasDynamicHelp": false,
1228
+ "multiple": false,
1229
+ "type": "option"
1230
+ },
1231
+ "destination-environment-name": {
1232
+ "description": "Filter by destination environment name",
1233
+ "name": "destination-environment-name",
1234
+ "hasDynamicHelp": false,
1235
+ "multiple": false,
1236
+ "type": "option"
1237
+ },
1238
+ "is-back-promotion": {
1239
+ "description": "Filter by back promotion",
1240
+ "name": "is-back-promotion",
1241
+ "allowNo": true,
1242
+ "type": "boolean"
1243
+ },
1244
+ "limit": {
1245
+ "description": "Maximum number of promotions to return (1-200)",
1246
+ "name": "limit",
1247
+ "hasDynamicHelp": false,
1248
+ "multiple": false,
1249
+ "type": "option"
1250
+ },
1251
+ "name": {
1252
+ "description": "Filter by name",
1253
+ "name": "name",
1254
+ "hasDynamicHelp": false,
1255
+ "multiple": false,
1256
+ "type": "option"
1257
+ },
1258
+ "pipeline-id": {
1259
+ "description": "Filter by pipeline ID",
1260
+ "name": "pipeline-id",
1261
+ "hasDynamicHelp": false,
1262
+ "multiple": false,
1263
+ "type": "option"
1264
+ },
1265
+ "pipeline-name": {
1266
+ "description": "Filter by pipeline name",
1267
+ "name": "pipeline-name",
1268
+ "hasDynamicHelp": false,
1269
+ "multiple": false,
1270
+ "type": "option"
1271
+ },
1272
+ "project-id": {
1273
+ "description": "Filter by project ID",
1274
+ "name": "project-id",
1275
+ "hasDynamicHelp": false,
1276
+ "multiple": false,
1277
+ "type": "option"
1278
+ },
1279
+ "project-name": {
1280
+ "description": "Filter by project name",
1281
+ "name": "project-name",
1282
+ "hasDynamicHelp": false,
1283
+ "multiple": false,
1284
+ "type": "option"
1285
+ },
1286
+ "source-environment-id": {
1287
+ "description": "Filter by source environment ID",
1288
+ "name": "source-environment-id",
1289
+ "hasDynamicHelp": false,
1290
+ "multiple": false,
1291
+ "type": "option"
1292
+ },
1293
+ "source-environment-name": {
1294
+ "description": "Filter by source environment name",
1295
+ "name": "source-environment-name",
1296
+ "hasDynamicHelp": false,
1297
+ "multiple": false,
1298
+ "type": "option"
1299
+ },
1300
+ "status": {
1301
+ "description": "Filter by status",
1302
+ "name": "status",
1303
+ "hasDynamicHelp": false,
1304
+ "multiple": false,
1305
+ "type": "option"
1306
+ }
1307
+ },
1308
+ "hasDynamicHelp": false,
1309
+ "hiddenAliases": [],
1310
+ "id": "promotion:list",
1311
+ "pluginAlias": "@copado/agentia-cli",
1312
+ "pluginName": "@copado/agentia-cli",
1313
+ "pluginType": "core",
1314
+ "strict": true,
1315
+ "enableJsonFlag": true,
1316
+ "isESM": true,
1317
+ "relativePath": [
1318
+ "dist",
1319
+ "commands",
1320
+ "promotion",
1321
+ "list.js"
1322
+ ]
1323
+ },
1324
+ "user:get": {
1325
+ "aliases": [],
1326
+ "args": {},
1327
+ "description": "Get a Copado user by ID (defaults to the authenticated user)",
1328
+ "examples": [
1329
+ "<%= config.bin %> <%= command.id %>",
1330
+ "<%= config.bin %> <%= command.id %> --id me",
1331
+ "<%= config.bin %> <%= command.id %> --id 005000000000000",
1332
+ "<%= config.bin %> <%= command.id %> --json"
1333
+ ],
1334
+ "flags": {
1335
+ "json": {
1336
+ "description": "Format output as json.",
1337
+ "helpGroup": "GLOBAL",
1338
+ "name": "json",
1339
+ "allowNo": false,
1340
+ "type": "boolean"
1341
+ },
1342
+ "id": {
1343
+ "description": "User ID, or \"me\" for the authenticated user",
1344
+ "name": "id",
1345
+ "default": "me",
1346
+ "hasDynamicHelp": false,
1347
+ "multiple": false,
1348
+ "type": "option"
1349
+ }
1350
+ },
1351
+ "hasDynamicHelp": false,
1352
+ "hiddenAliases": [],
1353
+ "id": "user:get",
1354
+ "pluginAlias": "@copado/agentia-cli",
1355
+ "pluginName": "@copado/agentia-cli",
1356
+ "pluginType": "core",
1357
+ "strict": true,
1358
+ "enableJsonFlag": true,
1359
+ "isESM": true,
1360
+ "relativePath": [
1361
+ "dist",
1362
+ "commands",
1363
+ "user",
1364
+ "get.js"
1365
+ ]
1366
+ },
1079
1367
  "work:create": {
1080
1368
  "aliases": [],
1081
1369
  "args": {},
@@ -3154,5 +3442,5 @@
3154
3442
  ]
3155
3443
  }
3156
3444
  },
3157
- "version": "0.10.0-alpha.0"
3445
+ "version": "0.13.0-alpha.0"
3158
3446
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@copado/agentia-cli",
3
3
  "description": "Command-line interface for Agentia",
4
- "version": "0.10.0-alpha.0",
4
+ "version": "0.13.0-alpha.0",
5
5
  "author": "Copado Solutions",
6
6
  "bin": {
7
7
  "agentia": "./bin/run.js"
@@ -80,6 +80,9 @@
80
80
  "project": {
81
81
  "description": "Manage Copado projects"
82
82
  },
83
+ "user": {
84
+ "description": "Manage Copado users"
85
+ },
83
86
  "work": {
84
87
  "description": "Manage Copado user stories"
85
88
  },