@copado/agentia-cli 0.38.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.
- package/README.md +244 -128
- package/dist/commands/auth/set.d.ts +2 -13
- package/dist/commands/auth/set.js +41 -108
- package/dist/commands/auth/set.js.map +1 -1
- package/dist/commands/auth/unset.d.ts +15 -0
- package/dist/commands/auth/unset.js +64 -0
- package/dist/commands/auth/unset.js.map +1 -0
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.js +16 -7
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/testing/job/create.d.ts +7 -0
- package/dist/commands/testing/job/create.js +11 -2
- package/dist/commands/testing/job/create.js.map +1 -1
- package/dist/commands/testing/job/update.d.ts +7 -0
- package/dist/commands/testing/job/update.js +14 -2
- package/dist/commands/testing/job/update.js.map +1 -1
- package/dist/lib/auth-config.d.ts +62 -0
- package/dist/lib/auth-config.js +246 -0
- package/dist/lib/auth-config.js.map +1 -0
- package/dist/lib/credential-store.d.ts +3 -0
- package/dist/lib/credential-store.js +9 -0
- package/dist/lib/credential-store.js.map +1 -1
- package/dist/lib/cursor-mcp-config.d.ts +62 -0
- package/dist/lib/cursor-mcp-config.js +173 -0
- package/dist/lib/cursor-mcp-config.js.map +1 -0
- package/dist/lib/mcp/testing-tools.d.ts +14 -0
- package/dist/lib/mcp/testing-tools.js +32 -4
- package/dist/lib/mcp/testing-tools.js.map +1 -1
- package/dist/lib/mcp/tools.d.ts +21 -0
- package/dist/lib/mcp/tools.js +10 -34
- package/dist/lib/mcp/tools.js.map +1 -1
- package/dist/lib/project-setup.d.ts +16 -14
- package/dist/lib/project-setup.js +101 -145
- package/dist/lib/project-setup.js.map +1 -1
- package/dist/lib/setup-prompts.d.ts +30 -0
- package/dist/lib/setup-prompts.js +13 -0
- package/dist/lib/setup-prompts.js.map +1 -0
- package/dist/lib/setup-wizard.d.ts +42 -0
- package/dist/lib/setup-wizard.js +422 -0
- package/dist/lib/setup-wizard.js.map +1 -0
- package/dist/lib/testing-config.d.ts +4 -2
- package/dist/lib/testing-config.js +23 -3
- package/dist/lib/testing-config.js.map +1 -1
- package/dist/lib/testing-flags.d.ts +9 -0
- package/dist/lib/testing-flags.js +24 -0
- package/dist/lib/testing-flags.js.map +1 -1
- package/dist/lib/testing-gateway.d.ts +13 -0
- package/dist/lib/testing-gateway.js +42 -1
- package/dist/lib/testing-gateway.js.map +1 -1
- package/dist/lib/testing-operations.d.ts +17 -1
- package/dist/lib/testing-operations.js +76 -5
- package/dist/lib/testing-operations.js.map +1 -1
- package/dist/lib/testing-types.d.ts +24 -4
- package/dist/lib/testing-types.js.map +1 -1
- package/oclif.manifest.json +557 -402
- package/package.json +2 -1
|
@@ -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
|
+
}>;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
export const AGENTIA_MCP_SERVER_NAME = 'agentia';
|
|
6
|
+
export const AGENTIA_MCP_ENTRY = {
|
|
7
|
+
args: ['mcp', 'start'],
|
|
8
|
+
command: 'agentia',
|
|
9
|
+
type: 'stdio',
|
|
10
|
+
};
|
|
11
|
+
let testDeps;
|
|
12
|
+
export function setCursorMcpDepsForTests(deps) {
|
|
13
|
+
testDeps = deps;
|
|
14
|
+
}
|
|
15
|
+
export function resetCursorMcpDepsForTests() {
|
|
16
|
+
testDeps = undefined;
|
|
17
|
+
}
|
|
18
|
+
function resolveDeps(overrides = {}) {
|
|
19
|
+
const merged = { ...testDeps, ...overrides };
|
|
20
|
+
return {
|
|
21
|
+
existsSync: merged.existsSync ?? existsSync,
|
|
22
|
+
homedir: merged.homedir ?? homedir,
|
|
23
|
+
pathEnv: merged.pathEnv ?? process.env.PATH ?? '',
|
|
24
|
+
platform: merged.platform ?? process.platform,
|
|
25
|
+
readFile: merged.readFile ?? ((filePath, encoding) => readFile(filePath, encoding)),
|
|
26
|
+
writeFile: merged.writeFile ?? ((filePath, contents, encoding) => writeFile(filePath, contents, encoding)),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function isRecord(value) {
|
|
30
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
31
|
+
}
|
|
32
|
+
export function globalCursorMcpPath(home = homedir()) {
|
|
33
|
+
return path.join(home, '.cursor', 'mcp.json');
|
|
34
|
+
}
|
|
35
|
+
export function localCursorMcpPath(projectRoot) {
|
|
36
|
+
return path.join(projectRoot, '.cursor', 'mcp.json');
|
|
37
|
+
}
|
|
38
|
+
export function isAgentiaMcpEntry(value) {
|
|
39
|
+
if (!isRecord(value)) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (value.command !== 'agentia') {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
if (!Array.isArray(value.args) || value.args.length !== 2) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return value.args[0] === 'mcp' && value.args[1] === 'start';
|
|
49
|
+
}
|
|
50
|
+
export function hasConflictingAgentiaEntry(value) {
|
|
51
|
+
return isRecord(value) && Object.keys(value).length > 0 && !isAgentiaMcpEntry(value);
|
|
52
|
+
}
|
|
53
|
+
export function findAgentiaMcpServer(document) {
|
|
54
|
+
const servers = document?.mcpServers;
|
|
55
|
+
if (!isRecord(servers)) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
for (const [name, entry] of Object.entries(servers)) {
|
|
59
|
+
if (isAgentiaMcpEntry(entry)) {
|
|
60
|
+
return { entry, name };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
function commandOnPath(command, pathEnv, platform, exists) {
|
|
66
|
+
const extensions = platform === 'win32' ? ['.cmd', '.exe', '.bat', ''] : [''];
|
|
67
|
+
for (const dir of pathEnv.split(path.delimiter)) {
|
|
68
|
+
if (dir.trim().length === 0) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
for (const extension of extensions) {
|
|
72
|
+
if (exists(path.join(dir, `${command}${extension}`))) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
function standardCursorAppLocations(home, platform) {
|
|
80
|
+
if (platform === 'darwin') {
|
|
81
|
+
return ['/Applications/Cursor.app'];
|
|
82
|
+
}
|
|
83
|
+
if (platform === 'win32') {
|
|
84
|
+
return [
|
|
85
|
+
path.join(home, 'AppData', 'Local', 'Programs', 'cursor', 'Cursor.exe'),
|
|
86
|
+
path.join(home, 'AppData', 'Local', 'Programs', 'Cursor', 'Cursor.exe'),
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
return ['/usr/share/cursor', '/opt/Cursor', path.join(home, '.local', 'share', 'cursor')];
|
|
90
|
+
}
|
|
91
|
+
export function detectCursorInstall(deps = {}) {
|
|
92
|
+
const resolved = resolveDeps(deps);
|
|
93
|
+
const globalPath = globalCursorMcpPath(resolved.homedir());
|
|
94
|
+
const configPresent = resolved.existsSync(globalPath);
|
|
95
|
+
const onPath = commandOnPath('cursor', resolved.pathEnv, resolved.platform, resolved.existsSync) ||
|
|
96
|
+
commandOnPath('agent', resolved.pathEnv, resolved.platform, resolved.existsSync);
|
|
97
|
+
const appPresent = standardCursorAppLocations(resolved.homedir(), resolved.platform).some((filePath) => resolved.existsSync(filePath));
|
|
98
|
+
return {
|
|
99
|
+
configPresent,
|
|
100
|
+
detected: configPresent || onPath || appPresent,
|
|
101
|
+
onPath,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export async function readCursorMcpDocument(filePath, deps = {}) {
|
|
105
|
+
const resolved = resolveDeps(deps);
|
|
106
|
+
if (!resolved.existsSync(filePath)) {
|
|
107
|
+
return { exists: false };
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
const contents = await resolved.readFile(filePath, 'utf8');
|
|
111
|
+
const parsed = JSON.parse(contents);
|
|
112
|
+
if (!isRecord(parsed)) {
|
|
113
|
+
return { error: `Cursor MCP config at ${filePath} must contain a JSON object.`, exists: true };
|
|
114
|
+
}
|
|
115
|
+
return { document: parsed, exists: true };
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error instanceof SyntaxError) {
|
|
119
|
+
return { error: `Cursor MCP config at ${filePath} contains invalid JSON.`, exists: true };
|
|
120
|
+
}
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export function inspectCursorMcpStatus(document, filePath, exists) {
|
|
125
|
+
const matched = findAgentiaMcpServer(document);
|
|
126
|
+
const namedEntry = document?.mcpServers?.[AGENTIA_MCP_SERVER_NAME];
|
|
127
|
+
return {
|
|
128
|
+
configured: matched !== undefined,
|
|
129
|
+
conflicting: matched === undefined && hasConflictingAgentiaEntry(namedEntry),
|
|
130
|
+
exists,
|
|
131
|
+
path: filePath,
|
|
132
|
+
serverName: matched?.name,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export async function getCursorMcpStatus(projectRoot, deps = {}) {
|
|
136
|
+
const resolved = resolveDeps(deps);
|
|
137
|
+
const localPath = localCursorMcpPath(projectRoot);
|
|
138
|
+
const globalPath = globalCursorMcpPath(resolved.homedir());
|
|
139
|
+
const [localFile, globalFile] = await Promise.all([
|
|
140
|
+
readCursorMcpDocument(localPath, deps),
|
|
141
|
+
readCursorMcpDocument(globalPath, deps),
|
|
142
|
+
]);
|
|
143
|
+
return {
|
|
144
|
+
global: inspectCursorMcpStatus(globalFile.document, globalPath, globalFile.exists),
|
|
145
|
+
local: inspectCursorMcpStatus(localFile.document, localPath, localFile.exists),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
export async function upsertAgentiaCursorMcp(filePath, deps = {}) {
|
|
149
|
+
const resolved = resolveDeps(deps);
|
|
150
|
+
const current = await readCursorMcpDocument(filePath, deps);
|
|
151
|
+
if (current.error !== undefined) {
|
|
152
|
+
throw new Error(current.error);
|
|
153
|
+
}
|
|
154
|
+
const document = current.document ?? {};
|
|
155
|
+
const servers = isRecord(document.mcpServers) ? { ...document.mcpServers } : {};
|
|
156
|
+
const existing = findAgentiaMcpServer(document);
|
|
157
|
+
const targetName = existing?.name ?? AGENTIA_MCP_SERVER_NAME;
|
|
158
|
+
const existed = current.exists && servers[targetName] !== undefined;
|
|
159
|
+
servers[targetName] = { ...AGENTIA_MCP_ENTRY };
|
|
160
|
+
document.mcpServers = servers;
|
|
161
|
+
try {
|
|
162
|
+
await mkdir(path.dirname(filePath), { recursive: true });
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Best-effort directory creation; writeFile still runs for injectable test deps.
|
|
166
|
+
}
|
|
167
|
+
await resolved.writeFile(filePath, `${JSON.stringify(document, null, 2)}\n`, 'utf8');
|
|
168
|
+
return {
|
|
169
|
+
path: filePath,
|
|
170
|
+
status: existed || current.exists ? 'updated' : 'created',
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=cursor-mcp-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-mcp-config.js","sourceRoot":"","sources":["../../src/lib/cursor-mcp-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,13 @@ declare function testingJobGet(args: ProjectArgs & {
|
|
|
82
82
|
declare function testingJobUpdate(args: ProjectArgs & {
|
|
83
83
|
caseDurationChangeDetection?: boolean;
|
|
84
84
|
description?: string;
|
|
85
|
+
gitBranch?: string;
|
|
86
|
+
gitDomainCredential?: string;
|
|
87
|
+
gitPassword?: string;
|
|
88
|
+
gitTag?: string;
|
|
89
|
+
gitUrl?: string;
|
|
90
|
+
gitUseCallerCredentials?: boolean;
|
|
91
|
+
gitUsername?: string;
|
|
85
92
|
hideVideoParams?: boolean;
|
|
86
93
|
id: number;
|
|
87
94
|
name?: string;
|
|
@@ -109,6 +116,13 @@ declare function testingJobCreate(args: ProjectArgs & {
|
|
|
109
116
|
description?: string;
|
|
110
117
|
dir?: string[];
|
|
111
118
|
file?: string[];
|
|
119
|
+
gitBranch?: string;
|
|
120
|
+
gitDomainCredential?: string;
|
|
121
|
+
gitPassword?: string;
|
|
122
|
+
gitTag?: string;
|
|
123
|
+
gitUrl?: string;
|
|
124
|
+
gitUseCallerCredentials?: boolean;
|
|
125
|
+
gitUsername?: string;
|
|
112
126
|
name: string;
|
|
113
127
|
robot: string;
|
|
114
128
|
}): Promise<{
|