@copado/agentia-cli 0.107.0-alpha.0 → 0.108.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.
@@ -21,6 +21,24 @@ export const CRT_DISCOVERY_DOMAINS = [
21
21
  'au-robotic.copado.com',
22
22
  ];
23
23
  const CRT_HOSTNAME_PATTERN = /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?))+$/u;
24
+ const TESTING_CONFIGURATION_FIELD_LABELS = {
25
+ domain: 'domain',
26
+ org: 'organization ID',
27
+ pak: 'PAK',
28
+ };
29
+ const TESTING_CONFIGURATION_REMEDIATION = 'Configure all required values with `agentia auth set --crt <pak> --crt-domain <domain> --crt-org <org-id>` or set AGENTIA_CRT_DOMAIN, AGENTIA_CRT_ORG, and AGENTIA_CRT_PAK. Verify with `agentia auth get --crt --json`.';
30
+ export class TestingConfigurationError extends Error {
31
+ invalidFields;
32
+ issues;
33
+ missingFields;
34
+ constructor(issues) {
35
+ super(formatTestingConfigurationError(issues));
36
+ this.invalidFields = issues.filter((issue) => issue.kind === 'invalid').map((issue) => issue.field);
37
+ this.issues = issues;
38
+ this.missingFields = issues.filter((issue) => issue.kind === 'missing').map((issue) => issue.field);
39
+ this.name = 'TestingConfigurationError';
40
+ }
41
+ }
24
42
  export function isCrtAllowedDomain(value) {
25
43
  return CRT_ALLOWED_DOMAINS.includes(value);
26
44
  }
@@ -60,6 +78,61 @@ function envValue(...keys) {
60
78
  }
61
79
  return undefined;
62
80
  }
81
+ function formatIssueList(issues) {
82
+ return issues
83
+ .map((issue) => {
84
+ const label = TESTING_CONFIGURATION_FIELD_LABELS[issue.field];
85
+ return issue.message === undefined ? label : `${label} (${issue.message})`;
86
+ })
87
+ .join(', ');
88
+ }
89
+ export function formatTestingConfigurationFieldList(fields) {
90
+ return fields.map((field) => TESTING_CONFIGURATION_FIELD_LABELS[field]).join(', ');
91
+ }
92
+ export function formatTestingConfigurationError(issues) {
93
+ const missing = issues.filter((issue) => issue.kind === 'missing');
94
+ const invalid = issues.filter((issue) => issue.kind === 'invalid');
95
+ const details = [];
96
+ if (missing.length > 0) {
97
+ details.push(`Missing required CRT configuration: ${formatIssueList(missing)}.`);
98
+ }
99
+ if (invalid.length > 0) {
100
+ details.push(`Invalid CRT configuration: ${formatIssueList(invalid)}.`);
101
+ }
102
+ return `CRT authentication configuration is incomplete or invalid. ${details.join(' ')} ${TESTING_CONFIGURATION_REMEDIATION}`;
103
+ }
104
+ function hasText(value) {
105
+ return value !== null && value !== undefined && value.toString().trim().length > 0;
106
+ }
107
+ export function collectTestingConfigurationIssues(input) {
108
+ const issues = [];
109
+ if (hasText(input.domain)) {
110
+ try {
111
+ normalizeCrtDomain(input.domain);
112
+ }
113
+ catch (error) {
114
+ issues.push({ field: 'domain', kind: 'invalid', message: error.message });
115
+ }
116
+ }
117
+ else {
118
+ issues.push({ field: 'domain', kind: 'missing' });
119
+ }
120
+ if (hasText(input.org)) {
121
+ try {
122
+ normalizeCrtOrgId(input.org);
123
+ }
124
+ catch (error) {
125
+ issues.push({ field: 'org', kind: 'invalid', message: error.message });
126
+ }
127
+ }
128
+ else {
129
+ issues.push({ field: 'org', kind: 'missing' });
130
+ }
131
+ if (!hasText(input.pak)) {
132
+ issues.push({ field: 'pak', kind: 'missing' });
133
+ }
134
+ return issues;
135
+ }
63
136
  export function resolveTestingCredentials(overrides = {}) {
64
137
  loadEnvFile();
65
138
  const local = readAuthProfile('local');
@@ -67,25 +140,20 @@ export function resolveTestingCredentials(overrides = {}) {
67
140
  const globalCrt = readAuthProfile('global')?.crt;
68
141
  const localConfigured = localCrt !== undefined;
69
142
  const metadata = localConfigured ? localCrt : globalCrt;
70
- if (localConfigured && (metadata?.domain === undefined || metadata.orgId === undefined)) {
71
- throw new Error('Local CRT authentication profile is incomplete. Configure --crt-domain and --crt-org for this project.');
72
- }
73
143
  const domain = overrides.domain ?? envValue('AGENTIA_CRT_DOMAIN', 'COPADO_ROBOTIC_DOMAIN', 'CRT_DOMAIN') ?? metadata?.domain ?? (localConfigured ? undefined : getCrtDomain());
74
144
  const org = overrides.org ?? envValue('AGENTIA_CRT_ORG', 'COPADO_ROBOTIC_ORG_ID', 'CRT_ORG') ?? metadata?.orgId ?? (localConfigured ? undefined : getCrtOrgId());
75
- const pak = overrides.pak ?? overrides.pat ?? envValue('AGENTIA_CRT_PAK', 'AGENTIA_CRT_PAT', 'COPADO_ROBOTIC_API_KEY', 'CRT_AI_KEY') ?? (localConfigured ? getCredentialForKey('crt', local?.keychainId) : getCredential('crt'));
76
- if (domain === undefined || domain === null || domain.trim().length === 0) {
77
- throw new Error('CRT domain is not configured. Run `agentia auth set --crt-domain <domain>` or set AGENTIA_CRT_DOMAIN.');
78
- }
79
- if (org === undefined || org === null || org.toString().trim().length === 0) {
80
- throw new Error('CRT organization ID is not configured. Run `agentia auth set --crt-org <org-id>` or set AGENTIA_CRT_ORG.');
81
- }
82
- if (pak === null || pak === undefined || pak.trim().length === 0) {
83
- throw new Error('CRT PAK is not configured. Run `agentia auth set --crt <pak>` or set AGENTIA_CRT_PAK.');
145
+ const scopedPak = localConfigured && local?.keychainId !== undefined
146
+ ? getCredentialForKey('crt', local.keychainId)
147
+ : undefined;
148
+ const pak = overrides.pak ?? overrides.pat ?? envValue('AGENTIA_CRT_PAK', 'AGENTIA_CRT_PAT', 'COPADO_ROBOTIC_API_KEY', 'CRT_AI_KEY') ?? (localConfigured ? scopedPak : getCredential('crt'));
149
+ const issues = collectTestingConfigurationIssues({ domain, org, pak });
150
+ if (issues.length > 0) {
151
+ throw new TestingConfigurationError(issues);
84
152
  }
85
153
  return {
86
154
  domain: normalizeCrtDomain(domain),
87
155
  orgId: normalizeCrtOrgId(org),
88
- pak,
156
+ pak: pak,
89
157
  pat: pak,
90
158
  };
91
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testing-config.js","sourceRoot":"","sources":["../../src/lib/testing-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing-config.js","sourceRoot":"","sources":["../../src/lib/testing-config.ts"],"names":[],"mappings":"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"}