@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
@@ -8,7 +8,7 @@ export default class TestingVariableCreate extends AgentiaCommand {
8
8
  key: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
9
  robot: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
10
  sensitive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- type: import("@oclif/core/interfaces").OptionFlag<"clp" | "dataset" | "secret" | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ type: import("@oclif/core/interfaces").OptionFlag<"config" | "clp" | "dataset" | "secret" | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
12
  'user-specific': import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
13
  value: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
14
  project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
@@ -0,0 +1,21 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ export default class TestingVariableUpdate extends AgentiaCommand {
3
+ static args: {
4
+ id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
5
+ };
6
+ static description: string;
7
+ static examples: string[];
8
+ static flags: {
9
+ description: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ key: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ 'not-sensitive': import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ sensitive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ type: import("@oclif/core/interfaces").OptionFlag<"config" | "clp" | "dataset" | "secret" | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ value: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ project: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
16
+ domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ org: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ pat: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ };
20
+ run(): Promise<unknown>;
21
+ }
@@ -0,0 +1,63 @@
1
+ import { Args, Flags } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { testingConnectionFlags, testingConnectionOptions, testingProjectFlag, } from '../../../lib/testing-flags.js';
4
+ import { updateTestingVariable } from '../../../lib/testing-operations.js';
5
+ import { formatTestingRecord, TESTING_VARIABLE_TYPES } from '../../../lib/testing-types.js';
6
+ export default class TestingVariableUpdate extends AgentiaCommand {
7
+ static args = {
8
+ id: Args.string({
9
+ description: 'CRT variable/secret ID.',
10
+ required: true,
11
+ }),
12
+ };
13
+ static description = 'Update a Copado Robotic Testing variable/secret';
14
+ static examples = [
15
+ '<%= config.bin %> <%= command.id %> <variable-id> --project <project-id> --value https://example.com',
16
+ '<%= config.bin %> <%= command.id %> <variable-id> --project <project-id> --not-sensitive --json',
17
+ ];
18
+ static flags = {
19
+ ...testingConnectionFlags,
20
+ ...testingProjectFlag,
21
+ description: Flags.string({
22
+ description: 'Variable description.',
23
+ }),
24
+ key: Flags.string({
25
+ description: 'Variable key.',
26
+ }),
27
+ 'not-sensitive': Flags.boolean({
28
+ description: 'Mark the variable as not sensitive.',
29
+ }),
30
+ sensitive: Flags.boolean({
31
+ description: 'Mark the variable as sensitive.',
32
+ }),
33
+ type: Flags.option({
34
+ description: 'CRT variable type.',
35
+ options: [...TESTING_VARIABLE_TYPES],
36
+ })(),
37
+ value: Flags.string({
38
+ description: 'Variable value. Avoid this flag for secrets if shell history is a concern.',
39
+ }),
40
+ };
41
+ async run() {
42
+ const { args, flags } = await this.parse(TestingVariableUpdate);
43
+ if (flags.sensitive === true && flags['not-sensitive'] === true) {
44
+ this.error('Use either --sensitive or --not-sensitive, not both.', { exit: 2 });
45
+ }
46
+ const result = await this.withSpinner('Updating testing variable', () => updateTestingVariable({
47
+ ...testingConnectionOptions(flags),
48
+ description: flags.description,
49
+ key: flags.key,
50
+ projectId: flags.project,
51
+ sensitive: flags.sensitive === true ? true : flags['not-sensitive'] === true ? false : undefined,
52
+ type: flags.type,
53
+ value: flags.value,
54
+ variableId: args.id,
55
+ }));
56
+ this.display(() => {
57
+ this.log('Testing variable updated');
58
+ this.log(formatTestingRecord(result));
59
+ });
60
+ return result;
61
+ }
62
+ }
63
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/testing/variable/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,aAAa,CAAA;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAC,mBAAmB,EAAE,sBAAsB,EAA2B,MAAM,+BAA+B,CAAA;AAEnH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,cAAc;IAC/D,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,iDAAiD,CAAA;IAC/E,MAAM,CAAU,QAAQ,GAAG;QACzB,sGAAsG;QACtG,iGAAiG;KAClG,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,sBAAsB;QACzB,GAAG,kBAAkB;QACrB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,uBAAuB;SACrC,CAAC;QACF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,eAAe;SAC7B,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7B,WAAW,EAAE,qCAAqC;SACnD,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE,iCAAiC;SAC/C,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,CAAC,GAAG,sBAAsB,CAAC;SACrC,CAAC,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,4EAA4E;SAC1F,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAC7D,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,sDAAsD,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QAC/E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAAE,GAAG,EAAE,CACtE,qBAAqB,CAAC;YACpB,GAAG,wBAAwB,CAAC,KAAK,CAAC;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAChG,IAAI,EAAE,KAAK,CAAC,IAAuC;YACnD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,IAAI,CAAC,EAAE;SACpB,CAAC,CACH,CAAA;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YACpC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAiC,CAAC,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { type CredentialType } from './credential-store.js';
2
+ export declare const COPADO_ACCOUNT_SUMMARY_LOGIN_URL = "https://login.salesforce.com/?startURL=%2Flightning%2Fn%2Fcopado__Account_Summary";
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
+ };
14
+ export type AuthUnsetCredentialResult = {
15
+ label: string;
16
+ removed: boolean;
17
+ type: CredentialType;
18
+ };
19
+ export type AuthUnsetResult = {
20
+ removed: AuthUnsetCredentialResult[];
21
+ };
22
+ export type ApplyAuthSetInput = {
23
+ cicd?: string;
24
+ crt?: string;
25
+ crtDomain?: string;
26
+ crtOrg?: number;
27
+ customUrl?: string;
28
+ region?: string;
29
+ };
30
+ export type CicdAuthStatus = {
31
+ baseUrl?: null | string;
32
+ local?: boolean;
33
+ masked?: string;
34
+ set: boolean;
35
+ };
36
+ export type CrtAuthStatus = {
37
+ domain?: null | string;
38
+ masked?: string;
39
+ orgId?: null | string;
40
+ set: boolean;
41
+ };
42
+ export declare class AuthSetError extends Error {
43
+ readonly exitCode: number;
44
+ constructor(message: string, exitCode?: number);
45
+ }
46
+ export declare function formatTerminalHyperlink(label: string, url: string): string;
47
+ export declare function formatCicdApiKeyHelp(): string;
48
+ export declare function getCicdAuthStatus(): CicdAuthStatus;
49
+ export declare function getCrtAuthStatus(): CrtAuthStatus;
50
+ export declare function isCicdConfigured(): boolean;
51
+ export declare function resolveAuthUnsetTypes(options: {
52
+ cicd?: boolean;
53
+ crt?: boolean;
54
+ }): CredentialType[];
55
+ export declare function formatAuthUnsetConfirmation(types: CredentialType[]): string;
56
+ export type AuthUnsetConfirmFn = (message: string) => Promise<boolean>;
57
+ export declare function setAuthUnsetConfirmForTests(fn: AuthUnsetConfirmFn | undefined): void;
58
+ export declare function resetAuthUnsetConfirmForTests(): void;
59
+ export declare function hasAuthUnsetTestConfirm(): boolean;
60
+ export declare function confirmAuthUnset(types: CredentialType[]): Promise<boolean>;
61
+ export declare function applyAuthUnset(types: CredentialType[]): Promise<AuthUnsetResult>;
62
+ export declare function applyAuthSet(input: ApplyAuthSetInput): Promise<AuthSetResult>;
@@ -0,0 +1,246 @@
1
+ import { confirm } from '@inquirer/prompts';
2
+ import { CicdGateway, normalizeCicdBaseUrl } from './cicd-gateway.js';
3
+ import { isCicdRegion } from './cicd-region.js';
4
+ import { ALL_CREDENTIAL_TYPES, credentialLabel, deleteCicdBaseUrl, deleteCredential, deleteCrtDomain, deleteCrtOrgId, getCicdBaseUrl, getCredential, getCrtDomain, getCrtOrgId, maskSecret, setCicdBaseUrl, setCredential, setCrtDomain, setCrtOrgId, } from './credential-store.js';
5
+ import { clearUserContext } from './defaults-store.js';
6
+ import { normalizeLocalGatewayBaseUrl, readLocalGatewayConfig } from './local-gateway-config.js';
7
+ import { normalizeCrtDomain, normalizeCrtOrgId } from './testing-config.js';
8
+ import { TestingGateway } from './testing-gateway.js';
9
+ import { getUserContext } from './user-context.js';
10
+ export const COPADO_ACCOUNT_SUMMARY_LOGIN_URL = 'https://login.salesforce.com/?startURL=%2Flightning%2Fn%2Fcopado__Account_Summary';
11
+ export class AuthSetError extends Error {
12
+ exitCode;
13
+ constructor(message, exitCode = 2) {
14
+ super(message);
15
+ this.name = 'AuthSetError';
16
+ this.exitCode = exitCode;
17
+ }
18
+ }
19
+ export function formatTerminalHyperlink(label, url) {
20
+ if (!process.stdout.isTTY) {
21
+ return `${label} (${url})`;
22
+ }
23
+ return `\u001B]8;;${url}\u0007${label}\u001B]8;;\u0007 (${url})`;
24
+ }
25
+ export function formatCicdApiKeyHelp() {
26
+ const accountSummary = formatTerminalHyperlink('Account Summary', COPADO_ACCOUNT_SUMMARY_LOGIN_URL);
27
+ return `Create a Copado API key on the API Key tab of the ${accountSummary} page.`;
28
+ }
29
+ export function getCicdAuthStatus() {
30
+ const localConfig = readLocalGatewayConfig();
31
+ if (localConfig.enabled) {
32
+ const apiKey = localConfig.apiKey || getCredential('cicd');
33
+ if (apiKey === null || apiKey.trim().length === 0) {
34
+ return {
35
+ baseUrl: normalizeLocalGatewayBaseUrl(localConfig.url),
36
+ local: true,
37
+ set: false,
38
+ };
39
+ }
40
+ return {
41
+ baseUrl: normalizeLocalGatewayBaseUrl(localConfig.url),
42
+ local: true,
43
+ masked: maskSecret(apiKey),
44
+ set: true,
45
+ };
46
+ }
47
+ const credential = getCredential('cicd');
48
+ if (credential === null) {
49
+ return { set: false };
50
+ }
51
+ return {
52
+ baseUrl: getCicdBaseUrl(),
53
+ masked: maskSecret(credential),
54
+ set: true,
55
+ };
56
+ }
57
+ export function getCrtAuthStatus() {
58
+ const credential = getCredential('crt');
59
+ if (credential === null) {
60
+ return {
61
+ domain: getCrtDomain(),
62
+ orgId: getCrtOrgId(),
63
+ set: false,
64
+ };
65
+ }
66
+ return {
67
+ domain: getCrtDomain(),
68
+ masked: maskSecret(credential),
69
+ orgId: getCrtOrgId(),
70
+ set: true,
71
+ };
72
+ }
73
+ export function isCicdConfigured() {
74
+ return getCicdAuthStatus().set;
75
+ }
76
+ export function resolveAuthUnsetTypes(options) {
77
+ const types = [];
78
+ if (options.cicd) {
79
+ types.push('cicd');
80
+ }
81
+ if (options.crt) {
82
+ types.push('crt');
83
+ }
84
+ return types.length > 0 ? types : [...ALL_CREDENTIAL_TYPES];
85
+ }
86
+ export function formatAuthUnsetConfirmation(types) {
87
+ if (types.length === ALL_CREDENTIAL_TYPES.length) {
88
+ return 'Remove stored CICD and CRT authentication credentials?';
89
+ }
90
+ if (types.length === 1 && types[0] === 'cicd') {
91
+ return 'Remove stored CICD authentication credentials?';
92
+ }
93
+ return 'Remove stored CRT authentication credentials?';
94
+ }
95
+ let testConfirmFn;
96
+ export function setAuthUnsetConfirmForTests(fn) {
97
+ testConfirmFn = fn;
98
+ }
99
+ export function resetAuthUnsetConfirmForTests() {
100
+ testConfirmFn = undefined;
101
+ }
102
+ export function hasAuthUnsetTestConfirm() {
103
+ return testConfirmFn !== undefined;
104
+ }
105
+ export async function confirmAuthUnset(types) {
106
+ const message = formatAuthUnsetConfirmation(types);
107
+ if (testConfirmFn !== undefined) {
108
+ return testConfirmFn(message);
109
+ }
110
+ return confirm({
111
+ default: false,
112
+ message,
113
+ });
114
+ }
115
+ function hasStoredCicdConfig() {
116
+ return getCredential('cicd') !== null || getCicdBaseUrl() !== null;
117
+ }
118
+ function hasStoredCrtConfig() {
119
+ return getCredential('crt') !== null || getCrtDomain() !== null || getCrtOrgId() !== null;
120
+ }
121
+ async function unsetCicdAuth() {
122
+ const hadConfig = hasStoredCicdConfig();
123
+ deleteCredential('cicd');
124
+ deleteCicdBaseUrl();
125
+ if (hadConfig) {
126
+ await clearUserContext();
127
+ }
128
+ return hadConfig;
129
+ }
130
+ function unsetCrtAuth() {
131
+ const hadConfig = hasStoredCrtConfig();
132
+ deleteCredential('crt');
133
+ deleteCrtDomain();
134
+ deleteCrtOrgId();
135
+ return hadConfig;
136
+ }
137
+ export async function applyAuthUnset(types) {
138
+ const removed = await Promise.all(types.map(async (type) => ({
139
+ label: credentialLabel(type),
140
+ removed: type === 'cicd' ? await unsetCicdAuth() : unsetCrtAuth(),
141
+ type,
142
+ })));
143
+ return { removed };
144
+ }
145
+ // Flag parsing, endpoint validation, and keychain writes are intentionally colocated.
146
+ // eslint-disable-next-line complexity
147
+ export async function applyAuthSet(input) {
148
+ const credentials = [];
149
+ if (input.cicd !== undefined) {
150
+ credentials.push({ type: 'cicd', value: input.cicd });
151
+ }
152
+ if (input.crt !== undefined) {
153
+ credentials.push({ type: 'crt', value: input.crt });
154
+ }
155
+ if ((input.region !== undefined || input.customUrl !== undefined) && input.cicd === undefined) {
156
+ throw new AuthSetError('--region and --custom-url can only be used together with --cicd');
157
+ }
158
+ if (credentials.length === 0 && input.crtDomain === undefined && input.crtOrg === undefined) {
159
+ throw new AuthSetError('Must provide at least one of --cicd, --crt, --crt-domain, or --crt-org');
160
+ }
161
+ if (input.region !== undefined && !isCicdRegion(input.region)) {
162
+ throw new AuthSetError(`Invalid region "${input.region}"`);
163
+ }
164
+ if (input.customUrl !== undefined) {
165
+ try {
166
+ normalizeCicdBaseUrl(input.customUrl);
167
+ }
168
+ catch (error) {
169
+ throw new AuthSetError(error.message);
170
+ }
171
+ }
172
+ for (const { type, value } of credentials) {
173
+ if (value.trim().length === 0) {
174
+ throw new AuthSetError(`--${type} value cannot be empty`);
175
+ }
176
+ }
177
+ let resolvedBaseUrl;
178
+ let crtDomain;
179
+ let crtOrgId;
180
+ if (input.cicd !== undefined) {
181
+ resolvedBaseUrl = await resolveCicdEndpoint(input.cicd, input.region, input.customUrl);
182
+ }
183
+ if (input.crtDomain !== undefined) {
184
+ try {
185
+ crtDomain = normalizeCrtDomain(input.crtDomain);
186
+ }
187
+ catch (error) {
188
+ throw new AuthSetError(error.message);
189
+ }
190
+ }
191
+ if (input.crtOrg !== undefined) {
192
+ try {
193
+ crtOrgId = normalizeCrtOrgId(input.crtOrg);
194
+ }
195
+ catch (error) {
196
+ throw new AuthSetError(error.message);
197
+ }
198
+ }
199
+ const crtPat = input.crt?.trim();
200
+ if (crtPat !== undefined && crtPat.length > 0 && crtOrgId !== undefined) {
201
+ try {
202
+ crtDomain = await TestingGateway.resolveAndValidateDomain(crtPat, crtOrgId, crtDomain);
203
+ }
204
+ catch {
205
+ throw new AuthSetError('CRT credentials could not be validated for the selected domain.', 1);
206
+ }
207
+ }
208
+ const stored = credentials.map(({ type }) => ({
209
+ label: credentialLabel(type),
210
+ type,
211
+ }));
212
+ if (resolvedBaseUrl !== undefined) {
213
+ setCicdBaseUrl(resolvedBaseUrl);
214
+ }
215
+ if (crtDomain !== undefined) {
216
+ setCrtDomain(crtDomain);
217
+ }
218
+ if (crtOrgId !== undefined) {
219
+ setCrtOrgId(crtOrgId.toString());
220
+ }
221
+ for (const { type, value } of credentials) {
222
+ setCredential(type, value);
223
+ }
224
+ if (input.cicd !== undefined) {
225
+ await getUserContext({
226
+ forceRefresh: true,
227
+ });
228
+ }
229
+ return {
230
+ baseUrl: resolvedBaseUrl,
231
+ crt: crtDomain !== undefined || crtOrgId !== undefined ? { domain: crtDomain, orgId: crtOrgId } : undefined,
232
+ stored,
233
+ };
234
+ }
235
+ async function resolveCicdEndpoint(apiKey, region, customUrl) {
236
+ try {
237
+ return await CicdGateway.resolveAndValidateEndpoint(apiKey, {
238
+ customUrl,
239
+ region,
240
+ });
241
+ }
242
+ catch {
243
+ throw new AuthSetError('CICD API key could not be validated for the selected endpoint.', 1);
244
+ }
245
+ }
246
+ //# sourceMappingURL=auth-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-config.js","sourceRoot":"","sources":["../../src/lib/auth-config.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@ export type EntryFactory = (service: string, account: string) => KeyringEntry;
10
10
  export declare function setCredential(type: CredentialType, secret: string): void;
11
11
  export declare function getCredential(type: CredentialType): null | string;
12
12
  export declare function deleteCredential(type: CredentialType): boolean;
13
+ export declare function deleteCicdBaseUrl(): boolean;
14
+ export declare function deleteCrtDomain(): boolean;
15
+ export declare function deleteCrtOrgId(): boolean;
13
16
  export declare function setCicdBaseUrl(baseUrl: string): void;
14
17
  export declare function getCicdBaseUrl(): null | string;
15
18
  export declare function setCrtDomain(domain: string): void;
@@ -19,6 +19,15 @@ export function getCredential(type) {
19
19
  export function deleteCredential(type) {
20
20
  return entryFactory(KEYRING_SERVICE, CREDENTIAL_ACCOUNTS[type]).deletePassword();
21
21
  }
22
+ export function deleteCicdBaseUrl() {
23
+ return entryFactory(KEYRING_SERVICE, CICD_BASE_URL_ACCOUNT).deletePassword();
24
+ }
25
+ export function deleteCrtDomain() {
26
+ return entryFactory(KEYRING_SERVICE, CRT_DOMAIN_ACCOUNT).deletePassword();
27
+ }
28
+ export function deleteCrtOrgId() {
29
+ return entryFactory(KEYRING_SERVICE, CRT_ORG_ID_ACCOUNT).deletePassword();
30
+ }
22
31
  export function setCicdBaseUrl(baseUrl) {
23
32
  entryFactory(KEYRING_SERVICE, CICD_BASE_URL_ACCOUNT).setPassword(baseUrl);
24
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/lib/credential-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAA;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAA;AAI5C,MAAM,CAAC,MAAM,oBAAoB,GAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAErE,MAAM,mBAAmB,GAAmC;IAC1D,IAAI,EAAE,qBAAqB;IAC3B,GAAG,EAAE,sBAAsB;CAC5B,CAAA;AAED,MAAM,qBAAqB,GAAG,sBAAsB,CAAA;AACpD,MAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAC9C,MAAM,kBAAkB,GAAG,mBAAmB,CAAA;AAU9C,MAAM,mBAAmB,GAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAE3F,IAAI,YAAY,GAAiB,mBAAmB,CAAA;AAEpD,MAAM,UAAU,aAAa,CAAC,IAAoB,EAAE,MAAc;IAChE,YAAY,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AAC9E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAoB;IAChD,OAAO,YAAY,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,OAAO,YAAY,CAAC,eAAe,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAA;AAClF,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,YAAY,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAoB;IAClD,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,iBAAiB,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAA;AACnC,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,uBAAuB,CAAC,OAAqB;IAC3D,YAAY,GAAG,OAAO,CAAA;AACxB,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,yBAAyB;IACvC,YAAY,GAAG,mBAAmB,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/lib/credential-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ export declare const AGENTIA_MCP_SERVER_NAME = "agentia";
2
+ export declare const AGENTIA_MCP_ENTRY: {
3
+ readonly args: readonly ["mcp", "start"];
4
+ readonly command: "agentia";
5
+ readonly type: "stdio";
6
+ };
7
+ export type CursorMcpServerEntry = {
8
+ [key: string]: unknown;
9
+ args?: unknown;
10
+ command?: unknown;
11
+ type?: unknown;
12
+ };
13
+ export type CursorMcpDocument = {
14
+ [key: string]: unknown;
15
+ mcpServers?: Record<string, CursorMcpServerEntry>;
16
+ };
17
+ export type CursorMcpScope = 'global' | 'local';
18
+ export type CursorMcpStatus = {
19
+ configured: boolean;
20
+ conflicting: boolean;
21
+ exists: boolean;
22
+ path: string;
23
+ serverName?: string;
24
+ };
25
+ export type CursorInstallStatus = {
26
+ configPresent: boolean;
27
+ detected: boolean;
28
+ onPath: boolean;
29
+ };
30
+ export type CursorMcpDeps = {
31
+ existsSync?: (filePath: string) => boolean;
32
+ homedir?: () => string;
33
+ pathEnv?: string;
34
+ platform?: NodeJS.Platform;
35
+ readFile?: (filePath: string, encoding: 'utf8') => Promise<string>;
36
+ writeFile?: (filePath: string, contents: string, encoding: 'utf8') => Promise<void>;
37
+ };
38
+ export declare function setCursorMcpDepsForTests(deps: CursorMcpDeps | undefined): void;
39
+ export declare function resetCursorMcpDepsForTests(): void;
40
+ export declare function globalCursorMcpPath(home?: string): string;
41
+ export declare function localCursorMcpPath(projectRoot: string): string;
42
+ export declare function isAgentiaMcpEntry(value: unknown): boolean;
43
+ export declare function hasConflictingAgentiaEntry(value: unknown): boolean;
44
+ export declare function findAgentiaMcpServer(document: CursorMcpDocument | undefined): undefined | {
45
+ entry: CursorMcpServerEntry;
46
+ name: string;
47
+ };
48
+ export declare function detectCursorInstall(deps?: CursorMcpDeps): CursorInstallStatus;
49
+ export declare function readCursorMcpDocument(filePath: string, deps?: CursorMcpDeps): Promise<{
50
+ document?: CursorMcpDocument;
51
+ error?: string;
52
+ exists: boolean;
53
+ }>;
54
+ export declare function inspectCursorMcpStatus(document: CursorMcpDocument | undefined, filePath: string, exists: boolean): CursorMcpStatus;
55
+ export declare function getCursorMcpStatus(projectRoot: string, deps?: CursorMcpDeps): Promise<{
56
+ global: CursorMcpStatus;
57
+ local: CursorMcpStatus;
58
+ }>;
59
+ export declare function upsertAgentiaCursorMcp(filePath: string, deps?: CursorMcpDeps): Promise<{
60
+ path: string;
61
+ status: 'created' | 'updated';
62
+ }>;