@copado/agentia-cli 0.11.0-alpha.0 → 0.14.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.
@@ -0,0 +1,48 @@
1
+ import { AgentiaCommand } from '../../lib/agentia-command.js';
2
+ import { CicdGateway } from '../../lib/cicd-gateway.js';
3
+ import { buildPromotionListFilters, promotionListFilterFlags } from '../../lib/promotion-flags.js';
4
+ import { formatPromotionTable, normalizePromotions, promotionListEndpoint, } from '../../lib/promotion-types.js';
5
+ export const PROMOTION_TABLE_DISPLAY_LIMIT = 100;
6
+ export function selectPromotionsForTableDisplay(promotions) {
7
+ const total = promotions.length;
8
+ const truncated = total > PROMOTION_TABLE_DISPLAY_LIMIT;
9
+ return {
10
+ displayed: truncated ? promotions.slice(0, PROMOTION_TABLE_DISPLAY_LIMIT) : promotions,
11
+ total,
12
+ truncated,
13
+ };
14
+ }
15
+ export function formatPromotionTableTruncationMessage(total) {
16
+ return `Showing first ${PROMOTION_TABLE_DISPLAY_LIMIT} of ${total} promotions.`;
17
+ }
18
+ export default class PromotionList extends AgentiaCommand {
19
+ static description = 'List Copado promotions';
20
+ static examples = [
21
+ '<%= config.bin %> <%= command.id %>',
22
+ '<%= config.bin %> <%= command.id %> --status Completed --project-name "My Project" --limit 50',
23
+ '<%= config.bin %> <%= command.id %> --json',
24
+ ];
25
+ static flags = promotionListFilterFlags;
26
+ async run() {
27
+ const { flags } = await this.parse(PromotionList);
28
+ const filters = buildPromotionListFilters(flags);
29
+ const response = await this.withSpinner('Fetching promotions', () => CicdGateway.call({
30
+ endpoint: promotionListEndpoint(filters),
31
+ method: 'GET',
32
+ }));
33
+ const promotions = normalizePromotions(response);
34
+ this.display(() => {
35
+ if (promotions.length === 0) {
36
+ this.log('No promotions found.');
37
+ return;
38
+ }
39
+ const { displayed, total, truncated } = selectPromotionsForTableDisplay(promotions);
40
+ if (truncated) {
41
+ this.log(formatPromotionTableTruncationMessage(total));
42
+ }
43
+ this.log(formatPromotionTable(displayed));
44
+ });
45
+ return promotions;
46
+ }
47
+ }
48
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/promotion/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,yBAAyB,EAAE,wBAAwB,EAAC,MAAM,8BAA8B,CAAA;AAChG,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EAEnB,qBAAqB,GAEtB,MAAM,8BAA8B,CAAA;AAErC,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAA;AAEhD,MAAM,UAAU,+BAA+B,CAAC,UAAuB;IAKrE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAA;IAC/B,MAAM,SAAS,GAAG,KAAK,GAAG,6BAA6B,CAAA;IAEvD,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,UAAU;QACtF,KAAK;QACL,SAAS;KACV,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,KAAa;IACjE,OAAO,iBAAiB,6BAA6B,OAAO,KAAK,cAAc,CAAA;AACjF,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,CAAU,WAAW,GAAG,wBAAwB,CAAA;IACtD,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,+FAA+F;QAC/F,4CAA4C;KAC7C,CAAA;IACD,MAAM,CAAU,KAAK,GAAG,wBAAwB,CAAA;IAEzC,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAClE,WAAW,CAAC,IAAI,CAAwB;YACtC,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC;YACxC,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CAAA;QAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAEhD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;gBAChC,OAAM;YACR,CAAC;YAED,MAAM,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAC,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAA;YAEjF,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,GAAG,CAAC,qCAAqC,CAAC,KAAK,CAAC,CAAC,CAAA;YACxD,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,OAAO,UAAU,CAAA;IACnB,CAAC"}
@@ -7,6 +7,9 @@ export type CicdRequest = {
7
7
  method: 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT';
8
8
  responseType?: 'json' | 'text';
9
9
  };
10
+ export type HttpRequestOptions = {
11
+ rejectUnauthorized?: boolean;
12
+ };
10
13
  export type CicdResponse<T = unknown> = {
11
14
  data?: T;
12
15
  message?: string;
@@ -62,6 +65,7 @@ export declare function discoverCicdBaseUrl(apiKey: string): Promise<string>;
62
65
  export declare function resolveAndValidateCicdEndpoint(apiKey: string, options: CicdEndpointOptions): Promise<string>;
63
66
  export declare function setHttpRequestForTests(requestFn: HttpRequestFn): void;
64
67
  export declare function resetHttpRequestForTests(): void;
68
+ export declare function getActiveHttpRequestOptionsForTests(): HttpRequestOptions;
65
69
  export declare class CicdGateway {
66
70
  static call<T = unknown>(request: CicdRequest, onDebugRequest?: (debugRequest: CicdDebugRequest) => void): Promise<T>;
67
71
  static resolveAndValidateEndpoint(apiKey: string, options: CicdEndpointOptions): Promise<string>;
@@ -1,13 +1,17 @@
1
+ import * as http from 'node:http';
1
2
  import * as https from 'node:https';
2
3
  import { createRequire } from 'node:module';
3
4
  import { URL } from 'node:url';
4
5
  import { v7 as uuidv7 } from 'uuid';
5
6
  import { CICD_REGIONS, cicdBaseUrl } from './cicd-region.js';
6
7
  import { getCicdBaseUrl, getCredential } from './credential-store.js';
8
+ import { normalizeLocalGatewayBaseUrl, readLocalGatewayConfig } from './local-gateway-config.js';
9
+ import { getSfOrgContext } from './sf-org-context.js';
7
10
  const require = createRequire(import.meta.url);
8
11
  const packageJson = require('../../package.json');
9
12
  const CICD_API_PATH = '/json/v1/webhook/cicd-api';
10
13
  const CICD_VALIDATION_ENDPOINT = '/health';
14
+ let activeHttpRequestOptions = {};
11
15
  export class CicdGatewayError extends Error {
12
16
  categories;
13
17
  code;
@@ -122,19 +126,31 @@ export function maskedCicdApiUrl(serverUrl) {
122
126
  return endpoint.toString();
123
127
  }
124
128
  function defaultHttpsJsonRequest(url, method, headers, body) {
125
- const payload = body === undefined ? '' : JSON.stringify(body);
129
+ const hasBody = body !== undefined;
130
+ const payload = hasBody ? JSON.stringify(body) : '';
131
+ const requestHeaders = {
132
+ Accept: 'application/json',
133
+ ...headers,
134
+ };
135
+ const { rejectUnauthorized } = activeHttpRequestOptions;
136
+ const transport = url.protocol === 'http:' ? http : https;
137
+ if (hasBody) {
138
+ requestHeaders['Content-Type'] = requestHeaders['Content-Type'] ?? 'application/json';
139
+ requestHeaders['Content-Length'] = Buffer.byteLength(payload).toString();
140
+ }
126
141
  return new Promise((resolve, reject) => {
127
- const req = https.request({
128
- headers: {
129
- Accept: 'application/json',
130
- 'Content-Length': Buffer.byteLength(payload).toString(),
131
- 'Content-Type': 'application/json',
132
- ...headers,
133
- },
142
+ const requestOptions = {
143
+ headers: requestHeaders,
134
144
  hostname: url.hostname,
135
145
  method,
136
146
  path: `${url.pathname}${url.search}`,
137
- }, (res) => {
147
+ port: url.port.length > 0 ? Number(url.port) : undefined,
148
+ };
149
+ if (url.protocol === 'https:' && rejectUnauthorized !== undefined) {
150
+ ;
151
+ requestOptions.rejectUnauthorized = rejectUnauthorized;
152
+ }
153
+ const req = transport.request(requestOptions, (res) => {
138
154
  const chunks = [];
139
155
  res.on('data', (chunk) => chunks.push(chunk));
140
156
  res.on('end', () => {
@@ -148,12 +164,25 @@ function defaultHttpsJsonRequest(url, method, headers, body) {
148
164
  });
149
165
  });
150
166
  req.on('error', (error) => reject(error));
151
- req.write(payload);
167
+ if (hasBody) {
168
+ req.write(payload);
169
+ }
152
170
  req.end();
153
171
  });
154
172
  }
155
173
  let httpRequestFn = defaultHttpsJsonRequest;
156
- function resolveCicdCredentials() {
174
+ function resolveCicdCredentials(options = {}) {
175
+ const localConfig = readLocalGatewayConfig();
176
+ if (!options.forceRemote && localConfig.enabled) {
177
+ const apiKey = localConfig.apiKey || getCredential('cicd');
178
+ if (apiKey === null || apiKey.trim().length === 0) {
179
+ throw new Error('CICD API key is not configured for local gateway mode. Set AGENTIA_LOCAL_API_KEY in .env or run `agentia auth set --cicd <key>`.');
180
+ }
181
+ return {
182
+ apiKey,
183
+ baseUrl: normalizeLocalGatewayBaseUrl(localConfig.url),
184
+ };
185
+ }
157
186
  const apiKey = getCredential('cicd');
158
187
  if (apiKey === null || apiKey.trim().length === 0) {
159
188
  throw new Error('CICD API key is not configured. Run `agentia auth set --cicd <key> [--region <region> | --custom-url <url>]`.');
@@ -164,6 +193,34 @@ function resolveCicdCredentials() {
164
193
  }
165
194
  return { apiKey, baseUrl };
166
195
  }
196
+ function maskSecret(value) {
197
+ if (value.length <= 8) {
198
+ return '<masked>';
199
+ }
200
+ return `${value.slice(0, 4)}...${value.slice(-4)}`;
201
+ }
202
+ function buildLocalGatewayHeaders(apiKey, sfContext, requestHeaders, transactionId) {
203
+ return {
204
+ 'User-Agent': gatewayUserAgent(),
205
+ 'x-api-key': apiKey,
206
+ 'x-canvas-api-session': sfContext.accessToken,
207
+ 'x-copado-api-url': sfContext.instanceUrl,
208
+ 'x-organization-id': sfContext.orgId,
209
+ 'x-transaction-id': transactionId,
210
+ 'x-user-id': sfContext.userId,
211
+ ...requestHeaders,
212
+ };
213
+ }
214
+ function maskLocalGatewayHeaders(headers) {
215
+ const masked = { ...headers };
216
+ if (masked['x-api-key'] !== undefined) {
217
+ masked['x-api-key'] = maskSecret(masked['x-api-key']);
218
+ }
219
+ if (masked['x-canvas-api-session'] !== undefined) {
220
+ masked['x-canvas-api-session'] = '<masked>';
221
+ }
222
+ return masked;
223
+ }
167
224
  function unwrapResponse(parsed) {
168
225
  const data = (parsed && typeof parsed === 'object' && 'data' in parsed ? parsed.data : undefined) ?? parsed.result;
169
226
  if (data === undefined) {
@@ -171,8 +228,8 @@ function unwrapResponse(parsed) {
171
228
  }
172
229
  return data;
173
230
  }
174
- async function executeRequest(credentials, request, onDebugRequest) {
175
- const raw = await sendRequest(credentials, request, onDebugRequest);
231
+ async function executeRequest(credentials, request, onDebugRequest, options = {}) {
232
+ const raw = await sendRequest(credentials, request, onDebugRequest, options);
176
233
  if (raw.trim().length === 0) {
177
234
  return undefined;
178
235
  }
@@ -202,7 +259,7 @@ async function executeRequest(credentials, request, onDebugRequest) {
202
259
  }
203
260
  return unwrapResponse(parsed);
204
261
  }
205
- async function sendRequest(credentials, request, onDebugRequest) {
262
+ async function sendRemoteRequest(credentials, request, onDebugRequest) {
206
263
  const endpoint = cicdApiUrl(credentials.baseUrl, credentials.apiKey);
207
264
  const transactionId = createTransactionId();
208
265
  const outerHeaders = buildOuterHeaders(transactionId);
@@ -222,6 +279,41 @@ async function sendRequest(credentials, request, onDebugRequest) {
222
279
  }
223
280
  return httpRequestFn(endpoint, 'POST', outerHeaders, gatewayRequest);
224
281
  }
282
+ async function sendLocalRequest(credentials, request, onDebugRequest) {
283
+ const localConfig = readLocalGatewayConfig();
284
+ const sfContext = await getSfOrgContext(localConfig.orgAlias);
285
+ const transactionId = createTransactionId();
286
+ const headers = buildLocalGatewayHeaders(credentials.apiKey, sfContext, request.headers, transactionId);
287
+ const url = new URL(request.endpoint, `${credentials.baseUrl}/`);
288
+ const { body } = request;
289
+ if (onDebugRequest) {
290
+ onDebugRequest({
291
+ body: body ?? null,
292
+ headers: {
293
+ Accept: 'application/json',
294
+ ...maskLocalGatewayHeaders(headers),
295
+ },
296
+ method: request.method,
297
+ url: url.toString(),
298
+ });
299
+ }
300
+ const previousOptions = activeHttpRequestOptions;
301
+ activeHttpRequestOptions = {
302
+ rejectUnauthorized: localConfig.tlsInsecure ? false : undefined,
303
+ };
304
+ try {
305
+ return await httpRequestFn(url, request.method, headers, body);
306
+ }
307
+ finally {
308
+ activeHttpRequestOptions = previousOptions;
309
+ }
310
+ }
311
+ async function sendRequest(credentials, request, onDebugRequest, options = {}) {
312
+ if (!options.forceRemote && readLocalGatewayConfig().enabled) {
313
+ return sendLocalRequest(credentials, request, onDebugRequest);
314
+ }
315
+ return sendRemoteRequest(credentials, request, onDebugRequest);
316
+ }
225
317
  export async function discoverCicdBaseUrl(apiKey) {
226
318
  for (const region of CICD_REGIONS) {
227
319
  const baseUrl = cicdBaseUrl(region);
@@ -257,7 +349,7 @@ async function validateCredentialsAtBaseUrl(apiKey, baseUrl) {
257
349
  }, {
258
350
  endpoint: CICD_VALIDATION_ENDPOINT,
259
351
  method: 'GET',
260
- });
352
+ }, undefined, { forceRemote: true });
261
353
  }
262
354
  // Test-only hook
263
355
  export function setHttpRequestForTests(requestFn) {
@@ -266,6 +358,11 @@ export function setHttpRequestForTests(requestFn) {
266
358
  // Test-only hook
267
359
  export function resetHttpRequestForTests() {
268
360
  httpRequestFn = defaultHttpsJsonRequest;
361
+ activeHttpRequestOptions = {};
362
+ }
363
+ // Test-only hook
364
+ export function getActiveHttpRequestOptionsForTests() {
365
+ return activeHttpRequestOptions;
269
366
  }
270
367
  export class CicdGateway {
271
368
  static async call(request, onDebugRequest) {
@@ -1 +1 @@
1
- {"version":3,"file":"cicd-gateway.js","sourceRoot":"","sources":["../../src/lib/cicd-gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cicd-gateway.js","sourceRoot":"","sources":["../../src/lib/cicd-gateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function parseEnvFileContents(contents: string): Record<string, string>;
2
+ export declare function loadEnvFile(filePath?: string, options?: {
3
+ override?: boolean;
4
+ }): void;
5
+ export declare function resetEnvFileForTests(): void;
@@ -0,0 +1,41 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ let loadedPath = null;
4
+ export function parseEnvFileContents(contents) {
5
+ const values = {};
6
+ for (const rawLine of contents.split(/\r?\n/)) {
7
+ const line = rawLine.trim();
8
+ if (line.length === 0 || line.startsWith('#')) {
9
+ continue;
10
+ }
11
+ const separator = line.indexOf('=');
12
+ if (separator === -1) {
13
+ continue;
14
+ }
15
+ const key = line.slice(0, separator).trim();
16
+ const value = line.slice(separator + 1).trim().replaceAll(/^['"]|['"]$/g, '');
17
+ if (key.length > 0) {
18
+ values[key] = value;
19
+ }
20
+ }
21
+ return values;
22
+ }
23
+ export function loadEnvFile(filePath = resolve(process.cwd(), '.env'), options = {}) {
24
+ if (loadedPath === filePath) {
25
+ return;
26
+ }
27
+ loadedPath = filePath;
28
+ if (!existsSync(filePath)) {
29
+ return;
30
+ }
31
+ const values = parseEnvFileContents(readFileSync(filePath, 'utf8'));
32
+ for (const [key, value] of Object.entries(values)) {
33
+ if (options.override || process.env[key] === undefined) {
34
+ process.env[key] = value;
35
+ }
36
+ }
37
+ }
38
+ export function resetEnvFileForTests() {
39
+ loadedPath = null;
40
+ }
41
+ //# sourceMappingURL=env-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-file.js","sourceRoot":"","sources":["../../src/lib/env-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAA;AAChD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,IAAI,UAAU,GAAkB,IAAI,CAAA;AAEpC,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,MAAM,GAA2B,EAAE,CAAA;IAEzC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAE3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,SAAQ;QACV,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEnC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;QAE7E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,UAAgC,EAAE;IAC/G,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAM;IACR,CAAC;IAED,UAAU,GAAG,QAAQ,CAAA;IAErB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAEnE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,UAAU,GAAG,IAAI,CAAA;AACnB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare const DEFAULT_LOCAL_GATEWAY_URL = "http://localhost:8000";
2
+ export declare function normalizeLocalGatewayBaseUrl(value: string): string;
3
+ export declare const DEFAULT_LOCAL_SF_ORG_ALIAS = "test14";
4
+ export declare const LOCAL_GATEWAY_ENV: {
5
+ readonly apiKey: "AGENTIA_LOCAL_API_KEY";
6
+ readonly orgAlias: "AGENTIA_LOCAL_SF_ORG_ALIAS";
7
+ readonly tlsInsecure: "AGENTIA_LOCAL_GATEWAY_TLS_INSECURE";
8
+ readonly url: "AGENTIA_LOCAL_GATEWAY_URL";
9
+ readonly useLocal: "AGENTIA_USE_LOCAL_GATEWAY";
10
+ };
11
+ export type LocalGatewayConfig = {
12
+ apiKey?: string;
13
+ enabled: boolean;
14
+ orgAlias: string;
15
+ tlsInsecure: boolean;
16
+ url: string;
17
+ };
18
+ export declare function readLocalGatewayConfig(env?: NodeJS.ProcessEnv, options?: {
19
+ loadFile?: boolean;
20
+ }): LocalGatewayConfig;
21
+ export declare function isLocalGatewayEnabled(env?: NodeJS.ProcessEnv): boolean;
@@ -0,0 +1,53 @@
1
+ import { loadEnvFile } from './env-file.js';
2
+ export const DEFAULT_LOCAL_GATEWAY_URL = 'http://localhost:8000';
3
+ export function normalizeLocalGatewayBaseUrl(value) {
4
+ let url;
5
+ try {
6
+ url = new URL(value);
7
+ }
8
+ catch {
9
+ throw new Error('Local gateway URL must be a valid absolute HTTP or HTTPS URL.');
10
+ }
11
+ if (url.protocol !== 'http:' && url.protocol !== 'https:') {
12
+ throw new Error('Local gateway URL must use HTTP or HTTPS.');
13
+ }
14
+ return url.origin;
15
+ }
16
+ export const DEFAULT_LOCAL_SF_ORG_ALIAS = 'test14';
17
+ export const LOCAL_GATEWAY_ENV = {
18
+ apiKey: 'AGENTIA_LOCAL_API_KEY',
19
+ orgAlias: 'AGENTIA_LOCAL_SF_ORG_ALIAS',
20
+ tlsInsecure: 'AGENTIA_LOCAL_GATEWAY_TLS_INSECURE',
21
+ url: 'AGENTIA_LOCAL_GATEWAY_URL',
22
+ useLocal: 'AGENTIA_USE_LOCAL_GATEWAY',
23
+ };
24
+ function isTruthyEnv(value) {
25
+ if (value === undefined) {
26
+ return false;
27
+ }
28
+ const normalized = value.trim().toLowerCase();
29
+ return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'on';
30
+ }
31
+ export function readLocalGatewayConfig(env = process.env, options = {}) {
32
+ if (options.loadFile !== false && env === process.env) {
33
+ loadEnvFile();
34
+ }
35
+ const enabled = isTruthyEnv(env[LOCAL_GATEWAY_ENV.useLocal]);
36
+ const url = env[LOCAL_GATEWAY_ENV.url]?.trim() || DEFAULT_LOCAL_GATEWAY_URL;
37
+ const orgAlias = env[LOCAL_GATEWAY_ENV.orgAlias]?.trim() || DEFAULT_LOCAL_SF_ORG_ALIAS;
38
+ const apiKey = env[LOCAL_GATEWAY_ENV.apiKey]?.trim() || undefined;
39
+ const tlsInsecure = env[LOCAL_GATEWAY_ENV.tlsInsecure] === undefined
40
+ ? true
41
+ : isTruthyEnv(env[LOCAL_GATEWAY_ENV.tlsInsecure]);
42
+ return {
43
+ apiKey,
44
+ enabled,
45
+ orgAlias,
46
+ tlsInsecure,
47
+ url,
48
+ };
49
+ }
50
+ export function isLocalGatewayEnabled(env = process.env) {
51
+ return readLocalGatewayConfig(env).enabled;
52
+ }
53
+ //# sourceMappingURL=local-gateway-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-gateway-config.js","sourceRoot":"","sources":["../../src/lib/local-gateway-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAA;AAEzC,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAA;AAEhE,MAAM,UAAU,4BAA4B,CAAC,KAAa;IACxD,IAAI,GAAQ,CAAA;IAEZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IAClF,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,QAAQ,CAAA;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,4BAA4B;IACtC,WAAW,EAAE,oCAAoC;IACjD,GAAG,EAAE,2BAA2B;IAChC,QAAQ,EAAE,2BAA2B;CAC7B,CAAA;AAEV,SAAS,WAAW,CAAC,KAAyB;IAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,IAAI,CAAA;AACnG,CAAC;AAUD,MAAM,UAAU,sBAAsB,CACpC,MAAyB,OAAO,CAAC,GAAG,EACpC,UAAgC,EAAE;IAElC,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC;QACtD,WAAW,EAAE,CAAA;IACf,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAA;IAC3E,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,0BAA0B,CAAA;IACtF,MAAM,MAAM,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAA;IACjE,MAAM,WAAW,GACf,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,SAAS;QAC9C,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAA;IAErD,OAAO;QACL,MAAM;QACN,OAAO;QACP,QAAQ;QACR,WAAW;QACX,GAAG;KACJ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACxE,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA;AAC5C,CAAC"}
@@ -5,6 +5,7 @@ import { type ComparisonMode, type ContentSource, type DependencyResult, type In
5
5
  import { type PipelineConnection, type PipelineDescribe } from '../pipeline-types.js';
6
6
  import { type ProjectDefaultScope } from '../project-defaults.js';
7
7
  import { type Project } from '../project-types.js';
8
+ import { type PromotionDetail, type PromotionListFilters } from '../promotion-types.js';
8
9
  import { type User } from '../user-types.js';
9
10
  import { type UserStory, type UserStoryMutationPayload, type WorkListFilters } from '../work-types.js';
10
11
  type EnvironmentCreateArgs = {
@@ -157,6 +158,15 @@ declare function environmentGet(args: {
157
158
  }): Promise<{
158
159
  environment: Environment;
159
160
  }>;
161
+ type PromotionListArgs = PromotionListFilters;
162
+ declare function promotionList(args?: PromotionListArgs): Promise<{
163
+ promotions: import("../promotion-types.js").Promotion[];
164
+ }>;
165
+ declare function promotionGet(args: {
166
+ id: string;
167
+ }): Promise<{
168
+ promotion: PromotionDetail;
169
+ }>;
160
170
  declare function environmentCreate(args: EnvironmentCreateArgs): Promise<{
161
171
  environment: Environment;
162
172
  }>;
@@ -279,6 +289,8 @@ export declare const agentiaMcpToolHandlers: {
279
289
  projectDefaultSet: typeof projectDefaultSet;
280
290
  projectDefaultUnset: typeof projectDefaultUnset;
281
291
  projectList: typeof projectList;
292
+ promotionGet: typeof promotionGet;
293
+ promotionList: typeof promotionList;
282
294
  userGet: typeof userGet;
283
295
  workCreate: typeof workCreate;
284
296
  workDelete: typeof workDelete;
@@ -15,7 +15,8 @@ import { pipelineHeaders } from '../pipeline-flags.js';
15
15
  import { normalizePipelineDescribe, normalizePipelines, pipelineConnectionsFromPipelines, pipelineDescribeEndpoint, pipelineListEndpoint, } from '../pipeline-types.js';
16
16
  import { buildSetValues, collectSelectedKeys } from '../project-default-flags.js';
17
17
  import { PROJECT_DEFAULT_KEYS } from '../project-defaults.js';
18
- import { normalizeProjects, projectsListEndpoint, } from '../project-types.js';
18
+ import { normalizeProjects, projectsListEndpoint } from '../project-types.js';
19
+ import { normalizePromotionDetail, normalizePromotions, PROMOTION_LIST_LIMIT_MAX, PROMOTION_LIST_LIMIT_MIN, promotionEndpoint, promotionListEndpoint, } from '../promotion-types.js';
19
20
  import { getUserContext } from '../user-context.js';
20
21
  import { DEFAULT_USER_ID, resolveUserId, userEndpoint } from '../user-types.js';
21
22
  import { buildWorkCreatePayload } from '../work-defaults.js';
@@ -90,6 +91,20 @@ async function environmentGet(args) {
90
91
  });
91
92
  return { environment };
92
93
  }
94
+ async function promotionList(args = {}) {
95
+ const response = await CicdGateway.call({
96
+ endpoint: promotionListEndpoint(args),
97
+ method: 'GET',
98
+ });
99
+ return { promotions: normalizePromotions(response) };
100
+ }
101
+ async function promotionGet(args) {
102
+ const response = await CicdGateway.call({
103
+ endpoint: promotionEndpoint(assertRequired(args.id, 'id')),
104
+ method: 'GET',
105
+ });
106
+ return { promotion: normalizePromotionDetail(response) };
107
+ }
93
108
  async function environmentCreate(args) {
94
109
  const payload = buildCreatePayload(args.name, {
95
110
  'apex-test-level': args.apexTestLevel,
@@ -592,6 +607,8 @@ export const agentiaMcpToolHandlers = {
592
607
  projectDefaultSet,
593
608
  projectDefaultUnset,
594
609
  projectList,
610
+ promotionGet,
611
+ promotionList,
595
612
  userGet,
596
613
  workCreate,
597
614
  workDelete,
@@ -609,10 +626,7 @@ const environmentMutationSchema = {
609
626
  runLocalTests: z.boolean().optional().describe('Run local tests.'),
610
627
  runSpecifiedTests: z.string().optional().describe('Specified tests to run.'),
611
628
  type: z.enum(ENVIRONMENT_TYPES).optional().describe('Environment type.'),
612
- validationPromotionDefaultCredential: z
613
- .string()
614
- .optional()
615
- .describe('Default credential for validation promotions.'),
629
+ validationPromotionDefaultCredential: z.string().optional().describe('Default credential for validation promotions.'),
616
630
  };
617
631
  const pipelineHeaderSchema = {
618
632
  organizationId: z.string().describe('Organization Id for the x-organization-id gateway header.'),
@@ -656,6 +670,28 @@ const workMutationSchema = {
656
670
  title: z.string().optional().describe('Title.'),
657
671
  wantTo: z.string().optional().describe('User story "want to" clause.'),
658
672
  };
673
+ const promotionListSchema = {
674
+ createdById: z.string().optional().describe('Filter by creator ID.'),
675
+ createdByName: z.string().optional().describe('Filter by creator name.'),
676
+ destinationEnvironmentId: z.string().optional().describe('Filter by destination environment ID.'),
677
+ destinationEnvironmentName: z.string().optional().describe('Filter by destination environment name.'),
678
+ isBackPromotion: z.boolean().optional().describe('Filter by back promotion.'),
679
+ limit: z
680
+ .number()
681
+ .int()
682
+ .min(PROMOTION_LIST_LIMIT_MIN)
683
+ .max(PROMOTION_LIST_LIMIT_MAX)
684
+ .optional()
685
+ .describe(`Maximum number of promotions to return (${PROMOTION_LIST_LIMIT_MIN}-${PROMOTION_LIST_LIMIT_MAX}).`),
686
+ name: z.string().optional().describe('Filter by name.'),
687
+ pipelineId: z.string().optional().describe('Filter by pipeline ID.'),
688
+ pipelineName: z.string().optional().describe('Filter by pipeline name.'),
689
+ projectId: z.string().optional().describe('Filter by project ID.'),
690
+ projectName: z.string().optional().describe('Filter by project name.'),
691
+ sourceEnvironmentId: z.string().optional().describe('Filter by source environment ID.'),
692
+ sourceEnvironmentName: z.string().optional().describe('Filter by source environment name.'),
693
+ status: z.string().optional().describe('Filter by status.'),
694
+ };
659
695
  const workListSchema = {
660
696
  assignedToMe: z.boolean().optional().describe('Filter by the current user as assignee.'),
661
697
  assigneeId: z.string().optional().describe('Filter by assignee ID.'),
@@ -705,6 +741,18 @@ export function registerAgentiaMcpTools(server) {
705
741
  },
706
742
  title: 'Agentia Environment Update',
707
743
  }, (args) => safelyHandleTool(() => environmentUpdate(args)));
744
+ server.registerTool('agentia_promotion_list', {
745
+ description: 'List Copado promotions via the CICD gateway.',
746
+ inputSchema: promotionListSchema,
747
+ title: 'Agentia Promotion List',
748
+ }, (args) => safelyHandleTool(() => promotionList(args || {})));
749
+ server.registerTool('agentia_promotion_get', {
750
+ description: 'Get a Copado promotion by Id via the CICD gateway.',
751
+ inputSchema: {
752
+ id: z.string().describe('Copado promotion Id.'),
753
+ },
754
+ title: 'Agentia Promotion Get',
755
+ }, (args) => safelyHandleTool(() => promotionGet(args)));
708
756
  server.registerTool('agentia_job_list', {
709
757
  description: 'List Copado job executions via the CICD gateway.',
710
758
  inputSchema: {
@@ -790,10 +838,7 @@ export function registerAgentiaMcpTools(server) {
790
838
  server.registerTool('agentia_project_list', {
791
839
  description: 'List Copado projects via the CICD gateway.',
792
840
  inputSchema: {
793
- mine: z
794
- .boolean()
795
- .optional()
796
- .describe('When true, list only projects owned by or related to the current user.'),
841
+ mine: z.boolean().optional().describe('When true, list only projects owned by or related to the current user.'),
797
842
  },
798
843
  title: 'Agentia Project List',
799
844
  }, (args) => safelyHandleTool(() => projectList(args || {})));
@@ -866,7 +911,10 @@ export function registerAgentiaMcpTools(server) {
866
911
  server.registerTool('agentia_metadata_list', {
867
912
  description: 'Search the Copado metadata index via the CICD gateway.',
868
913
  inputSchema: {
869
- avoidSourceTracking: z.boolean().optional().describe('Pass avoidSourceTracking=true to the gateway index route.'),
914
+ avoidSourceTracking: z
915
+ .boolean()
916
+ .optional()
917
+ .describe('Pass avoidSourceTracking=true to the gateway index route.'),
870
918
  filterType: z.string().optional().describe('Optional metadata type name filter, for example ApexClass.'),
871
919
  findManagedPackages: z.boolean().optional().describe('Include managed package metadata in the search.'),
872
920
  limit: z.number().int().min(1).max(MAX_LIMIT).optional().describe('Maximum number of records to return.'),