@copado/agentia-cli 0.37.0-alpha.0 → 0.40.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 (91) hide show
  1. package/README.md +573 -136
  2. package/dist/commands/auth/set.d.ts +2 -13
  3. package/dist/commands/auth/set.js +42 -110
  4. package/dist/commands/auth/set.js.map +1 -1
  5. package/dist/commands/auth/unset.d.ts +15 -0
  6. package/dist/commands/auth/unset.js +64 -0
  7. package/dist/commands/auth/unset.js.map +1 -0
  8. package/dist/commands/setup.d.ts +1 -1
  9. package/dist/commands/setup.js +16 -7
  10. package/dist/commands/setup.js.map +1 -1
  11. package/dist/commands/testing/build/abort.d.ts +26 -0
  12. package/dist/commands/testing/build/abort.js +38 -0
  13. package/dist/commands/testing/build/abort.js.map +1 -0
  14. package/dist/commands/testing/build/list.js +2 -2
  15. package/dist/commands/testing/build/list.js.map +1 -1
  16. package/dist/commands/testing/build/run.d.ts +8 -0
  17. package/dist/commands/testing/build/run.js +4 -2
  18. package/dist/commands/testing/build/run.js.map +1 -1
  19. package/dist/commands/testing/job/create.d.ts +7 -0
  20. package/dist/commands/testing/job/create.js +11 -2
  21. package/dist/commands/testing/job/create.js.map +1 -1
  22. package/dist/commands/testing/job/delete.d.ts +24 -0
  23. package/dist/commands/testing/job/delete.js +30 -0
  24. package/dist/commands/testing/job/delete.js.map +1 -0
  25. package/dist/commands/testing/job/list.js +2 -2
  26. package/dist/commands/testing/job/list.js.map +1 -1
  27. package/dist/commands/testing/job/run.d.ts +1 -0
  28. package/dist/commands/testing/job/run.js +2 -0
  29. package/dist/commands/testing/job/run.js.map +1 -0
  30. package/dist/commands/testing/job/update.d.ts +42 -0
  31. package/dist/commands/testing/job/update.js +137 -0
  32. package/dist/commands/testing/job/update.js.map +1 -0
  33. package/dist/commands/testing/project/delete.d.ts +22 -0
  34. package/dist/commands/testing/project/delete.js +29 -0
  35. package/dist/commands/testing/project/delete.js.map +1 -0
  36. package/dist/commands/testing/robot/delete.d.ts +21 -0
  37. package/dist/commands/testing/robot/delete.js +30 -0
  38. package/dist/commands/testing/robot/delete.js.map +1 -0
  39. package/dist/commands/testing/run.d.ts +8 -0
  40. package/dist/commands/testing/run.js +4 -2
  41. package/dist/commands/testing/run.js.map +1 -1
  42. package/dist/commands/testing/status.js +2 -2
  43. package/dist/commands/testing/status.js.map +1 -1
  44. package/dist/commands/testing/test/run.d.ts +34 -1
  45. package/dist/commands/testing/test/run.js +58 -1
  46. package/dist/commands/testing/test/run.js.map +1 -1
  47. package/dist/commands/testing/variable/create.d.ts +1 -1
  48. package/dist/commands/testing/variable/update.d.ts +21 -0
  49. package/dist/commands/testing/variable/update.js +63 -0
  50. package/dist/commands/testing/variable/update.js.map +1 -0
  51. package/dist/lib/auth-config.d.ts +62 -0
  52. package/dist/lib/auth-config.js +246 -0
  53. package/dist/lib/auth-config.js.map +1 -0
  54. package/dist/lib/credential-store.d.ts +3 -0
  55. package/dist/lib/credential-store.js +9 -0
  56. package/dist/lib/credential-store.js.map +1 -1
  57. package/dist/lib/cursor-mcp-config.d.ts +62 -0
  58. package/dist/lib/cursor-mcp-config.js +173 -0
  59. package/dist/lib/cursor-mcp-config.js.map +1 -0
  60. package/dist/lib/mcp/testing-tools.d.ts +98 -2
  61. package/dist/lib/mcp/testing-tools.js +227 -15
  62. package/dist/lib/mcp/testing-tools.js.map +1 -1
  63. package/dist/lib/mcp/tools.d.ts +158 -0
  64. package/dist/lib/mcp/tools.js +10 -34
  65. package/dist/lib/mcp/tools.js.map +1 -1
  66. package/dist/lib/project-setup.d.ts +16 -14
  67. package/dist/lib/project-setup.js +101 -145
  68. package/dist/lib/project-setup.js.map +1 -1
  69. package/dist/lib/setup-prompts.d.ts +30 -0
  70. package/dist/lib/setup-prompts.js +13 -0
  71. package/dist/lib/setup-prompts.js.map +1 -0
  72. package/dist/lib/setup-wizard.d.ts +42 -0
  73. package/dist/lib/setup-wizard.js +422 -0
  74. package/dist/lib/setup-wizard.js.map +1 -0
  75. package/dist/lib/testing-config.d.ts +4 -2
  76. package/dist/lib/testing-config.js +23 -3
  77. package/dist/lib/testing-config.js.map +1 -1
  78. package/dist/lib/testing-flags.d.ts +35 -1
  79. package/dist/lib/testing-flags.js +85 -0
  80. package/dist/lib/testing-flags.js.map +1 -1
  81. package/dist/lib/testing-gateway.d.ts +13 -0
  82. package/dist/lib/testing-gateway.js +42 -1
  83. package/dist/lib/testing-gateway.js.map +1 -1
  84. package/dist/lib/testing-operations.d.ts +93 -5
  85. package/dist/lib/testing-operations.js +211 -19
  86. package/dist/lib/testing-operations.js.map +1 -1
  87. package/dist/lib/testing-types.d.ts +76 -5
  88. package/dist/lib/testing-types.js +65 -1
  89. package/dist/lib/testing-types.js.map +1 -1
  90. package/oclif.manifest.json +1237 -191
  91. package/package.json +2 -1
@@ -1,16 +1,5 @@
1
1
  import { AgentiaCommand } from '../../lib/agentia-command.js';
2
- import { type CredentialType } from '../../lib/credential-store.js';
3
- export type AuthSetResult = {
4
- baseUrl?: string;
5
- crt?: {
6
- domain?: string;
7
- orgId?: number;
8
- };
9
- stored: Array<{
10
- label: string;
11
- type: CredentialType;
12
- }>;
13
- };
2
+ import { type AuthSetResult } from '../../lib/auth-config.js';
14
3
  export default class AuthSet extends AgentiaCommand {
15
4
  static description: string;
16
5
  static examples: string[];
@@ -23,5 +12,5 @@ export default class AuthSet extends AgentiaCommand {
23
12
  region: import("@oclif/core/interfaces").OptionFlag<"na" | "emea" | "emea2" | "apac" | "apac2" | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
13
  };
25
14
  run(): Promise<AuthSetResult>;
26
- private resolveCicdEndpoint;
15
+ private withSpinnerForAuth;
27
16
  }
@@ -1,10 +1,7 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../lib/agentia-command.js';
3
- import { CicdGateway, normalizeCicdBaseUrl } from '../../lib/cicd-gateway.js';
4
- import { CICD_REGIONS, isCicdRegion } from '../../lib/cicd-region.js';
5
- import { credentialLabel, setCicdBaseUrl, setCredential, setCrtDomain, setCrtOrgId, } from '../../lib/credential-store.js';
6
- import { normalizeCrtDomain, normalizeCrtOrgId } from '../../lib/testing-config.js';
7
- import { getUserContext } from '../../lib/user-context.js';
3
+ import { applyAuthSet, AuthSetError } from '../../lib/auth-config.js';
4
+ import { CICD_REGIONS } from '../../lib/cicd-region.js';
8
5
  export default class AuthSet extends AgentiaCommand {
9
6
  static description = 'Store authentication credentials securely in the system keychain';
10
7
  static examples = [
@@ -12,8 +9,8 @@ export default class AuthSet extends AgentiaCommand {
12
9
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --custom-url https://dev.api.copado.com',
13
10
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key>',
14
11
  '<%= config.bin %> <%= command.id %> --crt <pat-token>',
15
- '<%= config.bin %> <%= command.id %> --crt <pat-token> --crt-domain qa.robotic.copado.com --crt-org 45234',
16
- "<%= config.bin %> <%= command.id %> --crt 'udoasudisaduosaiduoisd' --crt-domain robotic.copado.com --crt-org 42888",
12
+ '<%= config.bin %> <%= command.id %> --crt <pat-token> --crt-org <crt-org-id>',
13
+ '<%= config.bin %> <%= command.id %> --crt <pat-token> --crt-domain robotic.copado.com --crt-org <crt-org-id>',
17
14
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --region na --crt <pat-token>',
18
15
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --region na --json',
19
16
  ];
@@ -40,120 +37,55 @@ export default class AuthSet extends AgentiaCommand {
40
37
  };
41
38
  async run() {
42
39
  const { flags } = await this.parse(AuthSet);
43
- const credentials = [];
44
- if (flags.cicd !== undefined) {
45
- credentials.push({ type: 'cicd', value: flags.cicd });
46
- }
47
- if (flags.crt !== undefined) {
48
- credentials.push({ type: 'crt', value: flags.crt });
49
- }
50
- if ((flags.region !== undefined || flags['custom-url'] !== undefined) && flags.cicd === undefined) {
51
- this.error('--region and --custom-url can only be used together with --cicd', { exit: 2 });
52
- }
53
- if (credentials.length === 0 && flags['crt-domain'] === undefined && flags['crt-org'] === undefined) {
54
- this.error('Must provide at least one of --cicd, --crt, --crt-domain, or --crt-org', {
55
- exit: 2,
56
- suggestions: [
57
- `${this.config.bin} auth set --cicd <copado-api-key> --region na`,
58
- `${this.config.bin} auth set --cicd <copado-api-key> --custom-url https://dev.api.copado.com`,
59
- `${this.config.bin} auth set --crt <pat-token> --crt-domain qa.robotic.copado.com --crt-org 45234`,
60
- ],
61
- });
62
- }
63
- if (flags.region !== undefined && !isCicdRegion(flags.region)) {
64
- this.error(`Invalid region "${flags.region}"`, { exit: 2 });
65
- }
66
- if (flags['custom-url'] !== undefined) {
67
- try {
68
- normalizeCicdBaseUrl(flags['custom-url']);
69
- }
70
- catch (error) {
71
- this.error(error.message, { exit: 2 });
72
- }
73
- }
74
- for (const { type, value } of credentials) {
75
- if (value.trim().length === 0) {
76
- this.error(`--${type} value cannot be empty`, { exit: 2 });
77
- }
78
- }
79
- let resolvedBaseUrl;
80
- let crtDomain;
81
- let crtOrgId;
82
- if (flags.cicd !== undefined) {
83
- resolvedBaseUrl = await this.resolveCicdEndpoint(flags.cicd, flags.region, flags['custom-url']);
84
- }
85
- if (flags['crt-domain'] !== undefined) {
86
- try {
87
- crtDomain = normalizeCrtDomain(flags['crt-domain']);
88
- }
89
- catch (error) {
90
- this.error(error.message, { exit: 2 });
91
- }
40
+ let result;
41
+ try {
42
+ result = await this.withSpinnerForAuth(flags, () => applyAuthSet({
43
+ cicd: flags.cicd,
44
+ crt: flags.crt,
45
+ crtDomain: flags['crt-domain'],
46
+ crtOrg: flags['crt-org'],
47
+ customUrl: flags['custom-url'],
48
+ region: flags.region,
49
+ }));
92
50
  }
93
- if (flags['crt-org'] !== undefined) {
94
- try {
95
- crtOrgId = normalizeCrtOrgId(flags['crt-org']);
96
- }
97
- catch (error) {
98
- this.error(error.message, { exit: 2 });
51
+ catch (error) {
52
+ if (error instanceof AuthSetError) {
53
+ this.error(error.message, { exit: error.exitCode });
99
54
  }
55
+ this.error(error.message, { exit: 1 });
100
56
  }
101
- const stored = credentials.map(({ type }) => ({
102
- label: credentialLabel(type),
103
- type,
104
- }));
105
- if (resolvedBaseUrl !== undefined) {
106
- setCicdBaseUrl(resolvedBaseUrl);
107
- }
108
- if (crtDomain !== undefined) {
109
- setCrtDomain(crtDomain);
110
- }
111
- if (crtOrgId !== undefined) {
112
- setCrtOrgId(crtOrgId.toString());
113
- }
114
- for (const { type, value } of credentials) {
115
- setCredential(type, value);
116
- }
117
- if (flags.cicd !== undefined) {
118
- await this.withSpinner('Fetching current user', () => getUserContext({
119
- forceRefresh: true,
120
- }));
121
- }
122
- for (const { label } of stored) {
57
+ for (const { label } of result.stored) {
123
58
  this.log(`Stored ${label}.`);
124
59
  }
125
- if (resolvedBaseUrl !== undefined) {
126
- this.log(`Stored CICD endpoint: ${resolvedBaseUrl}.`);
60
+ if (result.baseUrl !== undefined) {
61
+ this.log(`Stored CICD endpoint: ${result.baseUrl}.`);
127
62
  }
128
- if (crtDomain !== undefined) {
129
- this.log(`Stored CRT domain: ${crtDomain}.`);
63
+ if (result.crt?.domain !== undefined) {
64
+ this.log(`Stored CRT domain: ${result.crt.domain}.`);
130
65
  }
131
- if (crtOrgId !== undefined) {
132
- this.log(`Stored CRT organization ID: ${crtOrgId}.`);
66
+ if (result.crt?.orgId !== undefined) {
67
+ this.log(`Stored CRT organization ID: ${result.crt.orgId}.`);
133
68
  }
134
- return {
135
- baseUrl: resolvedBaseUrl,
136
- crt: crtDomain !== undefined || crtOrgId !== undefined ? { domain: crtDomain, orgId: crtOrgId } : undefined,
137
- stored,
138
- };
69
+ return result;
139
70
  }
140
- async resolveCicdEndpoint(apiKey, region, customUrl) {
141
- let spinnerMessage = 'Discovering CICD endpoint';
142
- if (customUrl !== undefined) {
143
- spinnerMessage = 'Validating CICD API key for custom endpoint';
144
- }
145
- else if (region !== undefined) {
146
- spinnerMessage = `Validating CICD API key for region ${region}`;
147
- }
148
- try {
149
- return await this.withSpinner(spinnerMessage, () => CicdGateway.resolveAndValidateEndpoint(apiKey, {
150
- customUrl,
151
- region,
152
- }));
71
+ async withSpinnerForAuth(flags, action) {
72
+ if (flags.cicd !== undefined) {
73
+ let spinnerMessage = 'Discovering CICD endpoint';
74
+ if (flags['custom-url'] !== undefined) {
75
+ spinnerMessage = 'Validating CICD API key for custom endpoint';
76
+ }
77
+ else if (flags.region !== undefined) {
78
+ spinnerMessage = `Validating CICD API key for region ${flags.region}`;
79
+ }
80
+ return this.withSpinner(spinnerMessage, action);
153
81
  }
154
- catch {
155
- this.error('CICD API key could not be validated for the selected endpoint.', { exit: 1 });
82
+ if (flags.crt !== undefined && flags['crt-org'] !== undefined) {
83
+ const spinnerMessage = flags['crt-domain'] === undefined
84
+ ? 'Discovering CRT domain'
85
+ : 'Validating CRT credentials for custom domain';
86
+ return this.withSpinner(spinnerMessage, action);
156
87
  }
88
+ return action();
157
89
  }
158
90
  }
159
91
  //# sourceMappingURL=set.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/commands/auth/set.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/commands/auth/set.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { AgentiaCommand } from '../../lib/agentia-command.js';
2
+ import { type AuthUnsetResult } from '../../lib/auth-config.js';
3
+ export type AuthUnsetCommandResult = AuthUnsetResult & {
4
+ cancelled?: boolean;
5
+ };
6
+ export default class AuthUnset extends AgentiaCommand {
7
+ static description: string;
8
+ static examples: string[];
9
+ static flags: {
10
+ cicd: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ crt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<AuthUnsetCommandResult>;
15
+ }
@@ -0,0 +1,64 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { stdin as input } from 'node:process';
3
+ import { AgentiaCommand } from '../../lib/agentia-command.js';
4
+ import { applyAuthUnset, confirmAuthUnset, hasAuthUnsetTestConfirm, resolveAuthUnsetTypes, } from '../../lib/auth-config.js';
5
+ import { isPromptCanceled } from '../../lib/setup-prompts.js';
6
+ export default class AuthUnset extends AgentiaCommand {
7
+ static description = 'Remove stored authentication credentials from the system keychain';
8
+ static examples = [
9
+ '<%= config.bin %> <%= command.id %>',
10
+ '<%= config.bin %> <%= command.id %> --cicd',
11
+ '<%= config.bin %> <%= command.id %> --crt',
12
+ '<%= config.bin %> <%= command.id %> --cicd --crt --yes',
13
+ '<%= config.bin %> <%= command.id %> --json --yes',
14
+ ];
15
+ static flags = {
16
+ cicd: Flags.boolean({
17
+ description: 'Remove Copado API key and CICD endpoint configuration',
18
+ }),
19
+ crt: Flags.boolean({
20
+ description: 'Remove CRT PAT, domain, and organization configuration',
21
+ }),
22
+ yes: Flags.boolean({
23
+ char: 'y',
24
+ default: false,
25
+ description: 'Confirm removal without prompting (required for --json)',
26
+ }),
27
+ };
28
+ async run() {
29
+ const { flags } = await this.parse(AuthUnset);
30
+ const types = resolveAuthUnsetTypes(flags);
31
+ const requiresExplicitYes = (this.jsonEnabled() || !input.isTTY) && !hasAuthUnsetTestConfirm();
32
+ if (requiresExplicitYes && !flags.yes) {
33
+ this.error('Refusing to unset credentials without confirmation. Re-run with --yes.', { exit: 2 });
34
+ }
35
+ if (!flags.yes) {
36
+ try {
37
+ const confirmed = await confirmAuthUnset(types);
38
+ if (!confirmed) {
39
+ this.log('Auth unset cancelled. No credentials were removed.');
40
+ return {
41
+ cancelled: true,
42
+ removed: [],
43
+ };
44
+ }
45
+ }
46
+ catch (error) {
47
+ if (isPromptCanceled(error)) {
48
+ this.error('Auth unset cancelled.', { exit: 1 });
49
+ }
50
+ throw error;
51
+ }
52
+ }
53
+ const result = await applyAuthUnset(types);
54
+ for (const entry of result.removed) {
55
+ if (entry.removed) {
56
+ this.log(`Removed ${entry.label}.`);
57
+ continue;
58
+ }
59
+ this.log(`No ${entry.label} was stored.`);
60
+ }
61
+ return result;
62
+ }
63
+ }
64
+ //# sourceMappingURL=unset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unset.js","sourceRoot":"","sources":["../../../src/commands/auth/unset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,EAAC,KAAK,IAAI,KAAK,EAAC,MAAM,cAAc,CAAA;AAE3C,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAA;AAM3D,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,cAAc;IACnD,MAAM,CAAU,WAAW,GAAG,mEAAmE,CAAA;IACjG,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,4CAA4C;QAC5C,2CAA2C;QAC3C,wDAAwD;QACxD,kDAAkD;KACnD,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,uDAAuD;SACrE,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,wDAAwD;SACtE,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,yDAAyD;SACvE,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,mBAAmB,GACvB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAA;QAEpE,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,wEAAwE,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QACjG,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAA;oBAC9D,OAAO;wBACL,SAAS,EAAE,IAAI;wBACf,OAAO,EAAE,EAAE;qBACZ,CAAA;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;gBAChD,CAAC;gBAED,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;QAE1C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,KAAK,GAAG,CAAC,CAAA;gBACnC,SAAQ;YACV,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,KAAK,cAAc,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { AgentiaCommand } from '../lib/agentia-command.js';
2
- import { type SetupResult } from '../lib/project-setup.js';
2
+ import { type SetupResult } from '../lib/setup-wizard.js';
3
3
  export default class Setup extends AgentiaCommand {
4
4
  static description: string;
5
5
  static examples: string[];
@@ -1,11 +1,13 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../lib/agentia-command.js';
3
- import { runProjectSetup } from '../lib/project-setup.js';
3
+ import { AuthSetError } from '../lib/auth-config.js';
4
+ import { isPromptCanceled } from '../lib/setup-prompts.js';
5
+ import { runSetupWizard } from '../lib/setup-wizard.js';
4
6
  export default class Setup extends AgentiaCommand {
5
7
  static description = [
6
- 'Prepare the current git project for Agentia.',
7
- 'Shows repository context, ensures .agentia/ is gitignored,',
8
- 'optionally creates local quality gates and AGENTS.md, then prints next steps.',
8
+ 'Prepare this machine and the current project for Agentia.',
9
+ 'Guides CICD and CRT authentication, Cursor MCP, local quality gates, and AGENTS.md.',
10
+ 'Git is optional: .gitignore is updated only inside a repository, and generated files are not committed.',
9
11
  ].join(' ');
10
12
  static examples = [
11
13
  '<%= config.bin %> <%= command.id %>',
@@ -16,11 +18,11 @@ export default class Setup extends AgentiaCommand {
16
18
  static flags = {
17
19
  'create-agents-md': Flags.boolean({
18
20
  default: false,
19
- description: 'Create or update AGENTS.md and commit it (skips the prompt)',
21
+ description: 'Create or update AGENTS.md (skips the prompt)',
20
22
  }),
21
23
  'create-local-quality-gates': Flags.boolean({
22
24
  default: false,
23
- description: 'Create sample local quality gate scripts and commit them (skips the prompt)',
25
+ description: 'Create sample local quality gate scripts (skips the prompt)',
24
26
  }),
25
27
  'no-prompt': Flags.boolean({
26
28
  char: 'n',
@@ -32,7 +34,7 @@ export default class Setup extends AgentiaCommand {
32
34
  const { flags } = await this.parse(Setup);
33
35
  const noPrompt = flags['no-prompt'] || this.jsonEnabled();
34
36
  try {
35
- return await runProjectSetup({
37
+ return await runSetupWizard({
36
38
  bin: this.config.bin,
37
39
  createAgentsMd: flags['create-agents-md'],
38
40
  createLocalQualityGates: flags['create-local-quality-gates'],
@@ -42,9 +44,16 @@ export default class Setup extends AgentiaCommand {
42
44
  });
43
45
  },
44
46
  noPrompt,
47
+ withSpinner: (message, action) => this.withSpinner(message, action),
45
48
  });
46
49
  }
47
50
  catch (error) {
51
+ if (isPromptCanceled(error)) {
52
+ this.error('Setup cancelled.', { exit: 1 });
53
+ }
54
+ if (error instanceof AuthSetError) {
55
+ this.error(error.message, { exit: error.exitCode });
56
+ }
48
57
  this.error(error.message, { exit: 1 });
49
58
  }
50
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAC,eAAe,EAAmB,MAAM,yBAAyB,CAAA;AAEzE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,cAAc;IAC/C,MAAM,CAAU,WAAW,GAAG;QAC5B,8CAA8C;QAC9C,4DAA4D;QAC5D,+EAA+E;KAChF,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,iDAAiD;QACjD,iGAAiG;QACjG,4CAA4C;KAC7C,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,6DAA6D;SAC3E,CAAC;QACF,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1C,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,6EAA6E;SAC3F,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+EAA+E;SAC7F,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;QAEzD,IAAI,CAAC;YACH,OAAO,MAAM,eAAe,CAAC;gBAC3B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC;gBACzC,uBAAuB,EAAE,KAAK,CAAC,4BAA4B,CAAC;gBAC5D,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;oBACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;wBAChB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACnB,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,QAAQ;aACT,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAC,cAAc,EAAmB,MAAM,wBAAwB,CAAA;AAEvE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,cAAc;IAC/C,MAAM,CAAU,WAAW,GAAG;QAC5B,2DAA2D;QAC3D,qFAAqF;QACrF,yGAAyG;KAC1G,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,iDAAiD;QACjD,iGAAiG;QACjG,4CAA4C;KAC7C,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1C,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,6DAA6D;SAC3E,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+EAA+E;SAC7F,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;QAEzD,IAAI,CAAC;YACH,OAAO,MAAM,cAAc,CAAC;gBAC1B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC;gBACzC,uBAAuB,EAAE,KAAK,CAAC,4BAA4B,CAAC;gBAC5D,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;oBACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;wBAChB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACnB,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,QAAQ;gBACR,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;aACpE,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAC,CAAC,CAAA;YACnD,CAAC;YAED,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { type TestingRecord } from '../../../lib/testing-types.js';
3
+ export type TestingBuildAbortResult = {
4
+ build: TestingRecord;
5
+ buildId: number;
6
+ jobId: number;
7
+ projectId: number;
8
+ };
9
+ export default class TestingBuildAbort extends AgentiaCommand {
10
+ static args: {
11
+ id: import("@oclif/core/interfaces").Arg<number, {
12
+ max?: number;
13
+ min?: number;
14
+ }>;
15
+ };
16
+ static description: string;
17
+ static examples: string[];
18
+ static flags: {
19
+ job: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
20
+ project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
21
+ domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ pat: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ };
25
+ run(): Promise<TestingBuildAbortResult>;
26
+ }
@@ -0,0 +1,38 @@
1
+ import { Args } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { testingConnectionFlags, testingConnectionOptions, testingJobFlag, testingProjectFlag, } from '../../../lib/testing-flags.js';
4
+ import { abortTestingBuild } from '../../../lib/testing-operations.js';
5
+ import { formatTestingRecord } from '../../../lib/testing-types.js';
6
+ export default class TestingBuildAbort extends AgentiaCommand {
7
+ static args = {
8
+ id: Args.integer({
9
+ description: 'CRT build/run ID.',
10
+ required: true,
11
+ }),
12
+ };
13
+ static description = 'Abort a Copado Robotic Testing build/run';
14
+ static examples = [
15
+ '<%= config.bin %> <%= command.id %> <build-id> --project <project-id> --job <job-id>',
16
+ '<%= config.bin %> <%= command.id %> <build-id> --project <project-id> --job <job-id> --json',
17
+ ];
18
+ static flags = {
19
+ ...testingConnectionFlags,
20
+ ...testingProjectFlag,
21
+ ...testingJobFlag,
22
+ };
23
+ async run() {
24
+ const { args, flags } = await this.parse(TestingBuildAbort);
25
+ const result = await this.withSpinner('Aborting testing build', () => abortTestingBuild({
26
+ ...testingConnectionOptions(flags),
27
+ buildId: args.id,
28
+ jobId: flags.job,
29
+ projectId: flags.project,
30
+ }));
31
+ this.display(() => {
32
+ this.log(`Aborted testing build ${result.buildId}.`);
33
+ this.log(formatTestingRecord(result.build));
34
+ });
35
+ return result;
36
+ }
37
+ }
38
+ //# sourceMappingURL=abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../../src/commands/testing/build/abort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,EACd,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAC,mBAAmB,EAAqB,MAAM,+BAA+B,CAAA;AASrF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,cAAc;IAC3D,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;YACf,WAAW,EAAE,mBAAmB;YAChC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,0CAA0C,CAAA;IACxE,MAAM,CAAU,QAAQ,GAAG;QACzB,sFAAsF;QACtF,6FAA6F;KAC9F,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,GAAG,cAAc;KAClB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,GAAG,EAAE,CACnE,iBAAiB,CAAC;YAChB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,KAAK,EAAE,KAAK,CAAC,GAAG;YAChB,SAAS,EAAE,KAAK,CAAC,OAAO;SACzB,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;YACpD,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
@@ -2,7 +2,7 @@ import { Flags } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
3
  import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag, } from '../../../lib/testing-flags.js';
4
4
  import { listTestingBuilds } from '../../../lib/testing-operations.js';
5
- import { formatTestingTable, TESTING_BUILD_STATUSES } from '../../../lib/testing-types.js';
5
+ import { formatTestingBuildTable, TESTING_BUILD_STATUSES, } from '../../../lib/testing-types.js';
6
6
  export default class TestingBuildList extends AgentiaCommand {
7
7
  static description = 'List Copado Robotic Testing builds/runs';
8
8
  static examples = [
@@ -39,7 +39,7 @@ export default class TestingBuildList extends AgentiaCommand {
39
39
  this.log('No testing builds found.');
40
40
  return;
41
41
  }
42
- this.log(formatTestingTable(builds));
42
+ this.log(formatTestingBuildTable(builds));
43
43
  });
44
44
  return builds;
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/testing/build/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAC,kBAAkB,EAAE,sBAAsB,EAA6C,MAAM,+BAA+B,CAAA;AAEpI,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,MAAM,CAAU,WAAW,GAAG,yCAAyC,CAAA;IACvE,MAAM,CAAU,QAAQ,GAAG;QACzB,4DAA4D;QAC5D,qGAAqG;KACtG,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,sCAAsC;SACpD,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC,EAAE;QACJ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;SACrC,CAAC,EAAE;KACL,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,GAAG,EAAE,CACpE,iBAAiB,CAAC;YAChB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,KAAK,CAAC,GAAG;YAChB,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,UAAU,EAAE,KAAK,CAAC,aAAa,CAAc;YAC7C,MAAM,EAAE,KAAK,CAAC,MAAwC;SACvD,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;gBACpC,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/testing/build/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAA;AACpE,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GAGvB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,MAAM,CAAU,WAAW,GAAG,yCAAyC,CAAA;IACvE,MAAM,CAAU,QAAQ,GAAG;QACzB,4DAA4D;QAC5D,qGAAqG;KACtG,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EAAE,sCAAsC;SACpD,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC,EAAE;QACJ,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;SACrC,CAAC,EAAE;KACL,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,GAAG,EAAE,CACpE,iBAAiB,CAAC;YAChB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,KAAK,CAAC,GAAG;YAChB,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,UAAU,EAAE,KAAK,CAAC,aAAa,CAAc;YAC7C,MAAM,EAAE,KAAK,CAAC,MAAwC;SACvD,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;gBACpC,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
@@ -10,6 +10,14 @@ export default class TestingBuildRun extends AgentiaCommand {
10
10
  static description: string;
11
11
  static examples: string[];
12
12
  static flags: {
13
+ branch: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ exclude: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ include: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ param: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ record: import("@oclif/core/interfaces").OptionFlag<"none" | "failed" | "all" | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'rerun-failed': import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ 'rerun-failed-from-latest': import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ tag: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
21
  project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
14
22
  domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
23
  org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -1,6 +1,6 @@
1
1
  import { Args } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
- import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag, } from '../../../lib/testing-flags.js';
3
+ import { testingConnectionFlags, testingProjectFlag, testingRunOptionFlags, testingRunOptions, } from '../../../lib/testing-flags.js';
4
4
  import { runTestingBuild } from '../../../lib/testing-operations.js';
5
5
  import { formatTestingRecord } from '../../../lib/testing-types.js';
6
6
  export default class TestingBuildRun extends AgentiaCommand {
@@ -13,15 +13,17 @@ export default class TestingBuildRun extends AgentiaCommand {
13
13
  static description = 'Run a Copado Robotic Testing job/test';
14
14
  static examples = [
15
15
  '<%= config.bin %> <%= command.id %> <job-id> --project <project-id>',
16
+ '<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --param BROWSER=chrome --record failed',
16
17
  '<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --json',
17
18
  ];
18
19
  static flags = {
19
20
  ...testingConnectionFlags,
20
21
  ...testingProjectFlag,
22
+ ...testingRunOptionFlags,
21
23
  };
22
24
  async run() {
23
25
  const { args, flags } = await this.parse(TestingBuildRun);
24
- const result = await this.withSpinner('Running testing job', () => runTestingBuild({ ...testingConnectionOptions(flags), jobId: args.id, projectId: flags.project }));
26
+ const result = await this.withSpinner('Running testing job', () => runTestingBuild(testingRunOptions(flags, { jobId: args.id, projectId: flags.project })));
25
27
  this.display(() => {
26
28
  this.log('Testing build started');
27
29
  this.log(formatTestingRecord(formatBuildResult(result)));
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/testing/build/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAA;AAClE,OAAO,EAAC,mBAAmB,EAA6B,MAAM,+BAA+B,CAAA;AAE7F,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,cAAc;IACzD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;YACf,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,uCAAuC,CAAA;IACrE,MAAM,CAAU,QAAQ,GAAG;QACzB,qEAAqE;QACrE,4EAA4E;KAC7E,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;KACtB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAChE,eAAe,CAAC,EAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,CAChG,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACjC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;;AAGH,SAAS,iBAAiB,CAAC,MAA6B;IACtD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/testing/build/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAA;AAClE,OAAO,EAAC,mBAAmB,EAA6B,MAAM,+BAA+B,CAAA;AAE7F,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,cAAc;IACzD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC;YACf,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,uCAAuC,CAAA;IACrE,MAAM,CAAU,QAAQ,GAAG;QACzB,qEAAqE;QACrE,4GAA4G;QAC5G,4EAA4E;KAC7E,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,GAAG,qBAAqB;KACzB,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAChE,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAC,CAAC,CAAC,CACtF,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;YACjC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;;AAGH,SAAS,iBAAiB,CAAC,MAA6B;IACtD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;AACH,CAAC"}
@@ -7,6 +7,13 @@ export default class TestingJobCreate extends AgentiaCommand {
7
7
  description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
8
  name: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
9
  robot: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ 'git-branch': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ 'git-domain-credential': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ 'git-password': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ 'git-tag': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ 'git-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ 'git-use-caller-credentials': import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ 'git-username': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
17
  dir: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
18
  file: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
19
  project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
@@ -1,18 +1,20 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
- import { testingConnectionFlags, testingConnectionOptions, testingFileInputFlags, testingProjectFlag, } from '../../../lib/testing-flags.js';
3
+ import { testingConnectionFlags, testingConnectionOptions, testingFileInputFlags, testingGitStorageFlags, testingProjectFlag, } from '../../../lib/testing-flags.js';
4
4
  import { createTestingJob } from '../../../lib/testing-operations.js';
5
5
  import { formatTestingRecord } from '../../../lib/testing-types.js';
6
6
  export default class TestingJobCreate extends AgentiaCommand {
7
- static description = 'Create a Copado Robotic Testing job/test and optionally upload Robot Framework files';
7
+ static description = 'Create a Copado Robotic Testing job/test from uploaded files or Git storage';
8
8
  static examples = [
9
9
  '<%= config.bin %> <%= command.id %> --project <project-id> --robot <robot-id> --name "Smoke" --file tests.robot',
10
10
  '<%= config.bin %> <%= command.id %> --project <project-id> --robot <robot-id> --name "Smoke" --dir tests --json',
11
+ '<%= config.bin %> <%= command.id %> --project <project-id> --robot <robot-id> --name "Smoke" --git-url https://github.com/acme/crt-tests.git --git-branch main',
11
12
  ];
12
13
  static flags = {
13
14
  ...testingConnectionFlags,
14
15
  ...testingProjectFlag,
15
16
  ...testingFileInputFlags,
17
+ ...testingGitStorageFlags,
16
18
  description: Flags.string({
17
19
  description: 'Job/test description.',
18
20
  }),
@@ -31,6 +33,13 @@ export default class TestingJobCreate extends AgentiaCommand {
31
33
  ...testingConnectionOptions(flags),
32
34
  description: flags.description,
33
35
  fileInput: { dirs: flags.dir, files: flags.file },
36
+ gitBranch: flags['git-branch'],
37
+ gitDomainCredentialId: flags['git-domain-credential'],
38
+ gitPassword: flags['git-password'],
39
+ gitTag: flags['git-tag'],
40
+ gitUrl: flags['git-url'],
41
+ gitUseCallerCredentials: flags['git-use-caller-credentials'],
42
+ gitUsername: flags['git-username'],
34
43
  name: flags.name,
35
44
  projectId: flags.project,
36
45
  robotId: flags.robot,