@copado/agentia-cli 0.112.0-alpha.0 → 0.114.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 +2014 -450
- package/dist/commands/ai/agent/ask.d.ts +3 -0
- package/dist/commands/ai/agent/ask.js +14 -0
- package/dist/commands/ai/agent/ask.js.map +1 -1
- package/dist/commands/ai/agent/chat.d.ts +3 -0
- package/dist/commands/ai/agent/chat.js +14 -0
- package/dist/commands/ai/agent/chat.js.map +1 -1
- package/dist/commands/cicd/work/set.js +22 -14
- package/dist/commands/cicd/work/set.js.map +1 -1
- package/dist/commands/testing/build/abort.d.ts +7 -1
- package/dist/commands/testing/build/abort.js +13 -3
- package/dist/commands/testing/build/abort.js.map +1 -1
- package/dist/commands/testing/build/get.d.ts +18 -0
- package/dist/commands/testing/build/get.js +38 -0
- package/dist/commands/testing/build/get.js.map +1 -0
- package/dist/commands/testing/build/latest.d.ts +12 -0
- package/dist/commands/testing/build/latest.js +40 -0
- package/dist/commands/testing/build/latest.js.map +1 -0
- package/dist/commands/testing/build/list.d.ts +6 -1
- package/dist/commands/testing/build/list.js +23 -1
- package/dist/commands/testing/build/list.js.map +1 -1
- package/dist/commands/testing/build/logs.d.ts +6 -0
- package/dist/commands/testing/build/logs.js +8 -1
- package/dist/commands/testing/build/logs.js.map +1 -1
- package/dist/commands/testing/build/run.d.ts +27 -4
- package/dist/commands/testing/build/run.js +4 -18
- package/dist/commands/testing/build/run.js.map +1 -1
- package/dist/commands/testing/build/search.d.ts +21 -0
- package/dist/commands/testing/build/search.js +57 -0
- package/dist/commands/testing/build/search.js.map +1 -0
- package/dist/commands/testing/create.d.ts +1 -15
- package/dist/commands/testing/create.js +1 -43
- package/dist/commands/testing/create.js.map +1 -1
- package/dist/commands/testing/data-table/create.d.ts +30 -0
- package/dist/commands/testing/data-table/create.js +52 -0
- package/dist/commands/testing/data-table/create.js.map +1 -0
- package/dist/commands/testing/data-table/delete.d.ts +25 -0
- package/dist/commands/testing/data-table/delete.js +40 -0
- package/dist/commands/testing/data-table/delete.js.map +1 -0
- package/dist/commands/testing/data-table/export.d.ts +33 -0
- package/dist/commands/testing/data-table/export.js +59 -0
- package/dist/commands/testing/data-table/export.js.map +1 -0
- package/dist/commands/testing/data-table/get.d.ts +21 -0
- package/dist/commands/testing/data-table/get.js +35 -0
- package/dist/commands/testing/data-table/get.js.map +1 -0
- package/dist/commands/testing/data-table/list.d.ts +16 -0
- package/dist/commands/testing/data-table/list.js +33 -0
- package/dist/commands/testing/data-table/list.js.map +1 -0
- package/dist/commands/testing/data-table/update.d.ts +34 -0
- package/dist/commands/testing/data-table/update.js +64 -0
- package/dist/commands/testing/data-table/update.js.map +1 -0
- package/dist/commands/testing/job/create.d.ts +18 -0
- package/dist/commands/testing/job/create.js +60 -4
- package/dist/commands/testing/job/create.js.map +1 -1
- package/dist/commands/testing/job/delete.d.ts +6 -1
- package/dist/commands/testing/job/delete.js +13 -3
- package/dist/commands/testing/job/delete.js.map +1 -1
- package/dist/commands/testing/job/refs.d.ts +17 -0
- package/dist/commands/testing/job/refs.js +30 -0
- package/dist/commands/testing/job/refs.js.map +1 -0
- package/dist/commands/testing/job/schedule/get.d.ts +23 -0
- package/dist/commands/testing/job/schedule/get.js +31 -0
- package/dist/commands/testing/job/schedule/get.js.map +1 -0
- package/dist/commands/testing/job/schedule/remove.d.ts +24 -0
- package/dist/commands/testing/job/schedule/remove.js +34 -0
- package/dist/commands/testing/job/schedule/remove.js.map +1 -0
- package/dist/commands/testing/job/schedule/set.d.ts +23 -0
- package/dist/commands/testing/job/schedule/set.js +39 -0
- package/dist/commands/testing/job/schedule/set.js.map +1 -0
- package/dist/commands/testing/job/update.d.ts +2 -0
- package/dist/commands/testing/job/update.js +7 -1
- package/dist/commands/testing/job/update.js.map +1 -1
- package/dist/commands/testing/job/upload.d.ts +6 -0
- package/dist/commands/testing/job/upload.js +22 -0
- package/dist/commands/testing/job/upload.js.map +1 -1
- package/dist/commands/testing/live/continue.d.ts +20 -0
- package/dist/commands/testing/live/continue.js +21 -0
- package/dist/commands/testing/live/continue.js.map +1 -0
- package/dist/commands/testing/live/execute.d.ts +30 -0
- package/dist/commands/testing/live/execute.js +43 -0
- package/dist/commands/testing/live/execute.js.map +1 -0
- package/dist/commands/testing/live/history.d.ts +23 -0
- package/dist/commands/testing/live/history.js +35 -0
- package/dist/commands/testing/live/history.js.map +1 -0
- package/dist/commands/testing/live/inspect.d.ts +18 -0
- package/dist/commands/testing/live/inspect.js +30 -0
- package/dist/commands/testing/live/inspect.js.map +1 -0
- package/dist/commands/testing/live/interrupt.d.ts +20 -0
- package/dist/commands/testing/live/interrupt.js +21 -0
- package/dist/commands/testing/live/interrupt.js.map +1 -0
- package/dist/commands/testing/live/recorder.d.ts +23 -0
- package/dist/commands/testing/live/recorder.js +134 -0
- package/dist/commands/testing/live/recorder.js.map +1 -0
- package/dist/commands/testing/live/reports.d.ts +20 -0
- package/dist/commands/testing/live/reports.js +31 -0
- package/dist/commands/testing/live/reports.js.map +1 -0
- package/dist/commands/testing/live/screenshot.d.ts +23 -0
- package/dist/commands/testing/live/screenshot.js +25 -0
- package/dist/commands/testing/live/screenshot.js.map +1 -0
- package/dist/commands/testing/live/set-options.d.ts +27 -0
- package/dist/commands/testing/live/set-options.js +28 -0
- package/dist/commands/testing/live/set-options.js.map +1 -0
- package/dist/commands/testing/live/start.d.ts +29 -0
- package/dist/commands/testing/live/start.js +53 -0
- package/dist/commands/testing/live/start.js.map +1 -0
- package/dist/commands/testing/live/status.d.ts +19 -0
- package/dist/commands/testing/live/status.js +27 -0
- package/dist/commands/testing/live/status.js.map +1 -0
- package/dist/commands/testing/live/stop.d.ts +24 -0
- package/dist/commands/testing/live/stop.js +38 -0
- package/dist/commands/testing/live/stop.js.map +1 -0
- package/dist/commands/testing/live/view.d.ts +16 -0
- package/dist/commands/testing/live/view.js +36 -0
- package/dist/commands/testing/live/view.js.map +1 -0
- package/dist/commands/testing/logs.d.ts +6 -0
- package/dist/commands/testing/logs.js +8 -1
- package/dist/commands/testing/logs.js.map +1 -1
- package/dist/commands/testing/project/create.d.ts +3 -0
- package/dist/commands/testing/project/create.js +17 -1
- package/dist/commands/testing/project/create.js.map +1 -1
- package/dist/commands/testing/project/delete.d.ts +7 -2
- package/dist/commands/testing/project/delete.js +15 -3
- package/dist/commands/testing/project/delete.js.map +1 -1
- package/dist/commands/testing/project/get.js +1 -1
- package/dist/commands/testing/project/get.js.map +1 -1
- package/dist/commands/testing/project/permission/get.d.ts +13 -0
- package/dist/commands/testing/project/permission/get.js +21 -0
- package/dist/commands/testing/project/permission/get.js.map +1 -0
- package/dist/commands/testing/project/permission/list.d.ts +13 -0
- package/dist/commands/testing/project/permission/list.js +21 -0
- package/dist/commands/testing/project/permission/list.js.map +1 -0
- package/dist/commands/testing/project/permission/set.d.ts +19 -0
- package/dist/commands/testing/project/permission/set.js +33 -0
- package/dist/commands/testing/project/permission/set.js.map +1 -0
- package/dist/commands/testing/project/permission/update.d.ts +19 -0
- package/dist/commands/testing/project/permission/update.js +33 -0
- package/dist/commands/testing/project/permission/update.js.map +1 -0
- package/dist/commands/testing/project/update.d.ts +14 -0
- package/dist/commands/testing/project/update.js +28 -0
- package/dist/commands/testing/project/update.js.map +1 -0
- package/dist/commands/testing/robot/create.d.ts +4 -1
- package/dist/commands/testing/robot/create.js +20 -5
- package/dist/commands/testing/robot/create.js.map +1 -1
- package/dist/commands/testing/robot/delete.d.ts +6 -1
- package/dist/commands/testing/robot/delete.js +13 -3
- package/dist/commands/testing/robot/delete.js.map +1 -1
- package/dist/commands/testing/robot/update.d.ts +19 -0
- package/dist/commands/testing/robot/update.js +49 -0
- package/dist/commands/testing/robot/update.js.map +1 -0
- package/dist/commands/testing/run.d.ts +27 -4
- package/dist/commands/testing/run.js +4 -11
- package/dist/commands/testing/run.js.map +1 -1
- package/dist/commands/testing/test/run.d.ts +27 -11
- package/dist/commands/testing/test/run.js +5 -37
- package/dist/commands/testing/test/run.js.map +1 -1
- package/dist/commands/testing/update.d.ts +6 -0
- package/dist/commands/testing/update.js +10 -0
- package/dist/commands/testing/update.js.map +1 -1
- package/dist/commands/testing/user-parameter/create.d.ts +19 -0
- package/dist/commands/testing/user-parameter/create.js +45 -0
- package/dist/commands/testing/user-parameter/create.js.map +1 -0
- package/dist/commands/testing/user-parameter/delete.d.ts +21 -0
- package/dist/commands/testing/user-parameter/delete.js +33 -0
- package/dist/commands/testing/user-parameter/delete.js.map +1 -0
- package/dist/commands/testing/user-parameter/get.d.ts +13 -0
- package/dist/commands/testing/user-parameter/get.js +21 -0
- package/dist/commands/testing/user-parameter/get.js.map +1 -0
- package/dist/commands/testing/user-parameter/list.d.ts +12 -0
- package/dist/commands/testing/user-parameter/list.js +23 -0
- package/dist/commands/testing/user-parameter/list.js.map +1 -0
- package/dist/commands/testing/user-parameter/update.d.ts +23 -0
- package/dist/commands/testing/user-parameter/update.js +45 -0
- package/dist/commands/testing/user-parameter/update.js.map +1 -0
- package/dist/commands/testing/variable/create.d.ts +6 -2
- package/dist/commands/testing/variable/create.js +14 -5
- package/dist/commands/testing/variable/create.js.map +1 -1
- package/dist/commands/testing/variable/delete.d.ts +6 -1
- package/dist/commands/testing/variable/delete.js +13 -3
- package/dist/commands/testing/variable/delete.js.map +1 -1
- package/dist/commands/testing/variable/get.d.ts +13 -0
- package/dist/commands/testing/variable/get.js +25 -0
- package/dist/commands/testing/variable/get.js.map +1 -0
- package/dist/commands/testing/variable/list.d.ts +4 -0
- package/dist/commands/testing/variable/list.js +15 -3
- package/dist/commands/testing/variable/list.js.map +1 -1
- package/dist/commands/testing/variable/update.d.ts +6 -2
- package/dist/commands/testing/variable/update.js +11 -5
- package/dist/commands/testing/variable/update.js.map +1 -1
- package/dist/lib/ai-chat-session.d.ts +2 -1
- package/dist/lib/ai-chat-session.js +8 -0
- package/dist/lib/ai-chat-session.js.map +1 -1
- package/dist/lib/ai-gateway.d.ts +5 -2
- package/dist/lib/ai-gateway.js +44 -5
- package/dist/lib/ai-gateway.js.map +1 -1
- package/dist/lib/ai-operations.d.ts +4 -2
- package/dist/lib/ai-operations.js +29 -3
- package/dist/lib/ai-operations.js.map +1 -1
- package/dist/lib/ai-types.d.ts +29 -0
- package/dist/lib/ai-types.js +25 -0
- package/dist/lib/ai-types.js.map +1 -1
- package/dist/lib/cicd-gateway.d.ts +6 -0
- package/dist/lib/cicd-gateway.js +13 -2
- package/dist/lib/cicd-gateway.js.map +1 -1
- package/dist/lib/credential-store.d.ts +3 -0
- package/dist/lib/credential-store.js +16 -0
- package/dist/lib/credential-store.js.map +1 -1
- package/dist/lib/credential-sync.d.ts +35 -0
- package/dist/lib/credential-sync.js +249 -0
- package/dist/lib/credential-sync.js.map +1 -0
- package/dist/lib/debug.js +3 -1
- package/dist/lib/debug.js.map +1 -1
- package/dist/lib/defaults-store.d.ts +18 -0
- package/dist/lib/defaults-store.js +182 -89
- package/dist/lib/defaults-store.js.map +1 -1
- package/dist/lib/environment-types.js +1 -1
- package/dist/lib/mcp/ai-tools.d.ts +3 -0
- package/dist/lib/mcp/ai-tools.js +6 -0
- package/dist/lib/mcp/ai-tools.js.map +1 -1
- package/dist/lib/mcp/command-id.js +3 -0
- package/dist/lib/mcp/command-id.js.map +1 -1
- package/dist/lib/mcp/redaction.d.ts +1 -2
- package/dist/lib/mcp/redaction.js +1 -23
- package/dist/lib/mcp/redaction.js.map +1 -1
- package/dist/lib/mcp/testing-live-tools.d.ts +126 -0
- package/dist/lib/mcp/testing-live-tools.js +215 -0
- package/dist/lib/mcp/testing-live-tools.js.map +1 -0
- package/dist/lib/mcp/testing-tools.d.ts +455 -9
- package/dist/lib/mcp/testing-tools.js +677 -37
- package/dist/lib/mcp/testing-tools.js.map +1 -1
- package/dist/lib/mcp/tools.d.ts +554 -14
- package/dist/lib/mcp/work-tools.js +7 -4
- package/dist/lib/mcp/work-tools.js.map +1 -1
- package/dist/lib/secret-redaction.d.ts +2 -0
- package/dist/lib/secret-redaction.js +24 -0
- package/dist/lib/secret-redaction.js.map +1 -0
- package/dist/lib/testing-config.d.ts +3 -0
- package/dist/lib/testing-config.js +9 -0
- package/dist/lib/testing-config.js.map +1 -1
- package/dist/lib/testing-confirmation.d.ts +14 -0
- package/dist/lib/testing-confirmation.js +17 -0
- package/dist/lib/testing-confirmation.js.map +1 -0
- package/dist/lib/testing-data-command.d.ts +21 -0
- package/dist/lib/testing-data-command.js +49 -0
- package/dist/lib/testing-data-command.js.map +1 -0
- package/dist/lib/testing-data-core.d.ts +22 -0
- package/dist/lib/testing-data-core.js +208 -0
- package/dist/lib/testing-data-core.js.map +1 -0
- package/dist/lib/testing-data-export.d.ts +1 -0
- package/dist/lib/testing-data-export.js +2 -0
- package/dist/lib/testing-data-export.js.map +1 -0
- package/dist/lib/testing-data-import.d.ts +1 -0
- package/dist/lib/testing-data-import.js +2 -0
- package/dist/lib/testing-data-import.js.map +1 -0
- package/dist/lib/testing-data-io.d.ts +21 -0
- package/dist/lib/testing-data-io.js +236 -0
- package/dist/lib/testing-data-io.js.map +1 -0
- package/dist/lib/testing-data-operations.d.ts +36 -0
- package/dist/lib/testing-data-operations.js +91 -0
- package/dist/lib/testing-data-operations.js.map +1 -0
- package/dist/lib/testing-data-types.d.ts +41 -0
- package/dist/lib/testing-data-types.js +3 -0
- package/dist/lib/testing-data-types.js.map +1 -0
- package/dist/lib/testing-flags.d.ts +62 -1
- package/dist/lib/testing-flags.js +177 -1
- package/dist/lib/testing-flags.js.map +1 -1
- package/dist/lib/testing-gateway.d.ts +17 -3
- package/dist/lib/testing-gateway.js +175 -45
- package/dist/lib/testing-gateway.js.map +1 -1
- package/dist/lib/testing-live-command.d.ts +24 -0
- package/dist/lib/testing-live-command.js +56 -0
- package/dist/lib/testing-live-command.js.map +1 -0
- package/dist/lib/testing-live-endpoints.d.ts +14 -0
- package/dist/lib/testing-live-endpoints.js +34 -0
- package/dist/lib/testing-live-endpoints.js.map +1 -0
- package/dist/lib/testing-live-history.d.ts +11 -0
- package/dist/lib/testing-live-history.js +96 -0
- package/dist/lib/testing-live-history.js.map +1 -0
- package/dist/lib/testing-live-operations.d.ts +118 -0
- package/dist/lib/testing-live-operations.js +676 -0
- package/dist/lib/testing-live-operations.js.map +1 -0
- package/dist/lib/testing-live-recorder.d.ts +14 -0
- package/dist/lib/testing-live-recorder.js +122 -0
- package/dist/lib/testing-live-recorder.js.map +1 -0
- package/dist/lib/testing-live-robot.d.ts +16 -0
- package/dist/lib/testing-live-robot.js +158 -0
- package/dist/lib/testing-live-robot.js.map +1 -0
- package/dist/lib/testing-live-state.d.ts +4 -0
- package/dist/lib/testing-live-state.js +90 -0
- package/dist/lib/testing-live-state.js.map +1 -0
- package/dist/lib/testing-live-types.d.ts +92 -0
- package/dist/lib/testing-live-types.js +2 -0
- package/dist/lib/testing-live-types.js.map +1 -0
- package/dist/lib/testing-operations.d.ts +157 -5
- package/dist/lib/testing-operations.js +829 -66
- package/dist/lib/testing-operations.js.map +1 -1
- package/dist/lib/testing-run-command.d.ts +25 -0
- package/dist/lib/testing-run-command.js +94 -0
- package/dist/lib/testing-run-command.js.map +1 -0
- package/dist/lib/testing-sanitization.d.ts +11 -0
- package/dist/lib/testing-sanitization.js +135 -0
- package/dist/lib/testing-sanitization.js.map +1 -0
- package/dist/lib/testing-schedule.d.ts +23 -0
- package/dist/lib/testing-schedule.js +48 -0
- package/dist/lib/testing-schedule.js.map +1 -0
- package/dist/lib/testing-secret-input.d.ts +12 -0
- package/dist/lib/testing-secret-input.js +56 -0
- package/dist/lib/testing-secret-input.js.map +1 -0
- package/dist/lib/testing-session.d.ts +8 -0
- package/dist/lib/testing-session.js +82 -0
- package/dist/lib/testing-session.js.map +1 -0
- package/dist/lib/testing-types.d.ts +143 -13
- package/dist/lib/testing-types.js +110 -5
- package/dist/lib/testing-types.js.map +1 -1
- package/dist/lib/testing-watch.d.ts +4 -0
- package/dist/lib/testing-watch.js +45 -0
- package/dist/lib/testing-watch.js.map +1 -0
- package/dist/lib/work-types.d.ts +1 -0
- package/dist/lib/work-types.js.map +1 -1
- package/oclif.manifest.json +7523 -2891
- package/package.json +12 -1
- package/templates/skills/agentia-testing/SKILL.md +9 -6
- package/templates/skills/agentia-testing/references/tests.md +70 -36
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { resolveAiCredentials } from './ai-config.js';
|
|
3
|
+
import { AiGateway } from './ai-gateway.js';
|
|
4
|
+
import { agentUsesCicdIntegration } from './ai-types.js';
|
|
5
|
+
import { CicdGateway, tryResolveCicdCredentials, } from './cicd-gateway.js';
|
|
6
|
+
import { readCredentialSyncReceipt, readDefaults, resolveDefaults, writeCredentialSyncReceipt, } from './defaults-store.js';
|
|
7
|
+
import { salesforceIdsEqual } from './salesforce-id.js';
|
|
8
|
+
import { workEndpoint } from './work-types.js';
|
|
9
|
+
const CREDENTIAL_SYNC_SCHEMA_VERSION = 2;
|
|
10
|
+
const AI_INTEGRATION_NAME = 'Agentia CLI Copado CICD';
|
|
11
|
+
const activeSyncs = new Map();
|
|
12
|
+
function fingerprint(value) {
|
|
13
|
+
return createHash('sha256').update(value).digest('hex');
|
|
14
|
+
}
|
|
15
|
+
function trimOptional(value) {
|
|
16
|
+
const trimmed = value?.trim();
|
|
17
|
+
return trimmed === undefined || trimmed.length === 0 ? undefined : trimmed;
|
|
18
|
+
}
|
|
19
|
+
export function missingProjectDefaultCredentialWarning() {
|
|
20
|
+
return [
|
|
21
|
+
'No CICD project default credential is configured.',
|
|
22
|
+
'Run `agentia cicd project default set --credential <credential-id>` to set one.',
|
|
23
|
+
].join(' ');
|
|
24
|
+
}
|
|
25
|
+
export function missingProjectDefaultWorkSetWarning() {
|
|
26
|
+
return [
|
|
27
|
+
missingProjectDefaultCredentialWarning(),
|
|
28
|
+
'Then run `agentia cicd work update --source-credential <credential-id>` if the User Story should use it.',
|
|
29
|
+
].join(' ');
|
|
30
|
+
}
|
|
31
|
+
export function missingStoryCredentialWarning(credentialId, workItemId) {
|
|
32
|
+
const updateTarget = workItemId === undefined ? '' : ` ${workItemId}`;
|
|
33
|
+
return [
|
|
34
|
+
'The User Story has no source credential in Copado CICD.',
|
|
35
|
+
`Run \`agentia cicd work update${updateTarget} --source-credential ${credentialId}\` to bind the project default credential.`,
|
|
36
|
+
].join(' ');
|
|
37
|
+
}
|
|
38
|
+
export function differingStoryCredentialWarning(storyCredentialId, projectDefaultCredentialId) {
|
|
39
|
+
return [
|
|
40
|
+
`The User Story source credential (${storyCredentialId}) differs from the project default credential (${projectDefaultCredentialId}).`,
|
|
41
|
+
'Updating the User Story to use the project default credential.',
|
|
42
|
+
].join(' ');
|
|
43
|
+
}
|
|
44
|
+
export async function readProjectDefaultCredentialContext() {
|
|
45
|
+
const [localDefaults, globalDefaults] = await Promise.all([readDefaults('local'), readDefaults('global')]);
|
|
46
|
+
const resolved = resolveDefaults(localDefaults, globalDefaults, ['credential', 'environment']);
|
|
47
|
+
const credential = resolved.find((entry) => entry.key === 'credential')?.value;
|
|
48
|
+
const environment = resolved.find((entry) => entry.key === 'environment')?.value;
|
|
49
|
+
return {
|
|
50
|
+
...(typeof credential === 'string' && credential.trim().length > 0
|
|
51
|
+
? { credentialId: credential.trim() }
|
|
52
|
+
: {}),
|
|
53
|
+
...(typeof environment === 'string' && environment.trim().length > 0
|
|
54
|
+
? { environmentId: environment.trim() }
|
|
55
|
+
: {}),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function sanitizeWorkSetUserStory(userStory) {
|
|
59
|
+
const safeUserStory = { ...userStory };
|
|
60
|
+
delete safeUserStory.oauthSignature;
|
|
61
|
+
return safeUserStory;
|
|
62
|
+
}
|
|
63
|
+
export async function reconcileWorkSetCredential(workItem) {
|
|
64
|
+
const projectDefault = await readProjectDefaultCredentialContext();
|
|
65
|
+
const storyCredential = trimOptional(workItem.sourceCredential);
|
|
66
|
+
const sanitized = sanitizeWorkSetUserStory(workItem);
|
|
67
|
+
if (projectDefault.credentialId === undefined) {
|
|
68
|
+
return {
|
|
69
|
+
updated: false,
|
|
70
|
+
warnings: [missingProjectDefaultWorkSetWarning()],
|
|
71
|
+
workItem: sanitized,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (storyCredential === undefined) {
|
|
75
|
+
return {
|
|
76
|
+
updated: false,
|
|
77
|
+
warnings: [missingStoryCredentialWarning(projectDefault.credentialId, workItem.id)],
|
|
78
|
+
workItem: sanitized,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (salesforceIdsEqual(storyCredential, projectDefault.credentialId)) {
|
|
82
|
+
return {
|
|
83
|
+
updated: false,
|
|
84
|
+
warnings: [],
|
|
85
|
+
workItem: sanitized,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const warning = differingStoryCredentialWarning(storyCredential, projectDefault.credentialId);
|
|
89
|
+
const updated = await CicdGateway.call({
|
|
90
|
+
body: {
|
|
91
|
+
sourceCredential: projectDefault.credentialId,
|
|
92
|
+
},
|
|
93
|
+
endpoint: workEndpoint(workItem.id),
|
|
94
|
+
headers: { 'Content-Type': 'application/json' },
|
|
95
|
+
method: 'PATCH',
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
updated: true,
|
|
99
|
+
warnings: [warning],
|
|
100
|
+
workItem: sanitizeWorkSetUserStory(updated),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function localReceiptMatches(receipt, context) {
|
|
104
|
+
return (receipt?.schemaVersion === context.schemaVersion &&
|
|
105
|
+
receipt.cicdBaseUrl === context.cicdBaseUrl &&
|
|
106
|
+
receipt.cicdKeyFingerprint === context.cicdKeyFingerprint &&
|
|
107
|
+
salesforceIdsEqual(receipt.credentialId, context.credentialId) &&
|
|
108
|
+
(receipt.environmentId ?? '') === (context.environmentId ?? '') &&
|
|
109
|
+
(receipt.orgId ?? '') === (context.orgId ?? ''));
|
|
110
|
+
}
|
|
111
|
+
function integrationWorkspace(integration) {
|
|
112
|
+
return integration.workspaceId ?? integration.workspace_id ?? undefined;
|
|
113
|
+
}
|
|
114
|
+
function matchingWorkspaceIntegrations(integrations, workspaceId) {
|
|
115
|
+
return integrations.filter((integration) => integration.type === 'copado_cicd' &&
|
|
116
|
+
integration.level === 'MEMBER' &&
|
|
117
|
+
integrationWorkspace(integration) === workspaceId);
|
|
118
|
+
}
|
|
119
|
+
function aiReceiptMatches(receipt, baseUrl, organizationId, workspaceId) {
|
|
120
|
+
return (receipt.ai?.baseUrl === baseUrl &&
|
|
121
|
+
receipt.ai.organizationId === organizationId &&
|
|
122
|
+
receipt.ai.workspaceId === workspaceId);
|
|
123
|
+
}
|
|
124
|
+
async function replaceAiIntegration(context, cicdCredentials, workspaceId, options) {
|
|
125
|
+
const integrations = await AiGateway.listIntegrations(options);
|
|
126
|
+
const matches = matchingWorkspaceIntegrations(integrations, workspaceId);
|
|
127
|
+
for (const integration of matches) {
|
|
128
|
+
// Replacement follows the established UI sequence because CICD credentials cannot be updated.
|
|
129
|
+
// eslint-disable-next-line no-await-in-loop
|
|
130
|
+
await AiGateway.deleteIntegration(integration.id, options);
|
|
131
|
+
}
|
|
132
|
+
const created = await AiGateway.createIntegration({
|
|
133
|
+
category: 'GENERAL',
|
|
134
|
+
config: { credentialId: context.credentialId },
|
|
135
|
+
credential: { apiKey: cicdCredentials.apiKey },
|
|
136
|
+
level: 'MEMBER',
|
|
137
|
+
name: AI_INTEGRATION_NAME,
|
|
138
|
+
type: 'copado_cicd',
|
|
139
|
+
workspaceId,
|
|
140
|
+
}, options);
|
|
141
|
+
const createdWorkspace = integrationWorkspace(created);
|
|
142
|
+
const createdCredentialId = created.config?.credentialId;
|
|
143
|
+
if ((created.type !== undefined && created.type !== 'copado_cicd') ||
|
|
144
|
+
(created.level !== undefined && created.level !== 'MEMBER') ||
|
|
145
|
+
(createdWorkspace !== undefined && createdWorkspace !== workspaceId) ||
|
|
146
|
+
(typeof createdCredentialId === 'string' &&
|
|
147
|
+
!salesforceIdsEqual(createdCredentialId, context.credentialId))) {
|
|
148
|
+
throw new Error('AI Gateway returned a Copado CICD integration that does not match the requested workspace context.');
|
|
149
|
+
}
|
|
150
|
+
return created.id;
|
|
151
|
+
}
|
|
152
|
+
function buildLocalContext(cicdCredentials, credentialId, environmentId, orgId) {
|
|
153
|
+
return {
|
|
154
|
+
cicdBaseUrl: cicdCredentials.baseUrl,
|
|
155
|
+
cicdKeyFingerprint: fingerprint(cicdCredentials.apiKey),
|
|
156
|
+
credentialId,
|
|
157
|
+
schemaVersion: CREDENTIAL_SYNC_SCHEMA_VERSION,
|
|
158
|
+
...(environmentId === undefined ? {} : { environmentId }),
|
|
159
|
+
...(orgId === undefined ? {} : { orgId }),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
async function ensureAiIntegrationWithContext(input) {
|
|
163
|
+
const { aiOptions, cicdCredentials, context, force, workspaceId } = input;
|
|
164
|
+
const aiCredentials = resolveAiCredentials({ ...aiOptions, workspace: workspaceId });
|
|
165
|
+
const cached = await readCredentialSyncReceipt();
|
|
166
|
+
if (!force &&
|
|
167
|
+
localReceiptMatches(cached, context) &&
|
|
168
|
+
aiReceiptMatches(cached, aiCredentials.baseUrl, aiCredentials.orgId, workspaceId)) {
|
|
169
|
+
return {
|
|
170
|
+
credentialId: context.credentialId,
|
|
171
|
+
...(context.environmentId === undefined ? {} : { environmentId: context.environmentId }),
|
|
172
|
+
integrationId: cached.ai?.integrationId,
|
|
173
|
+
...(context.orgId === undefined ? {} : { orgId: context.orgId }),
|
|
174
|
+
workspaceId,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
const integrationId = await replaceAiIntegration(context, cicdCredentials, workspaceId, aiOptions);
|
|
178
|
+
await writeCredentialSyncReceipt({
|
|
179
|
+
...context,
|
|
180
|
+
ai: {
|
|
181
|
+
baseUrl: aiCredentials.baseUrl,
|
|
182
|
+
integrationId,
|
|
183
|
+
...(aiCredentials.orgId === undefined ? {} : { organizationId: aiCredentials.orgId }),
|
|
184
|
+
workspaceId,
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
return {
|
|
188
|
+
credentialId: context.credentialId,
|
|
189
|
+
...(context.environmentId === undefined ? {} : { environmentId: context.environmentId }),
|
|
190
|
+
integrationId,
|
|
191
|
+
...(context.orgId === undefined ? {} : { orgId: context.orgId }),
|
|
192
|
+
workspaceId,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
export async function ensureAgentCicdIntegration(agent, workspaceId, options = {}) {
|
|
196
|
+
if (!agentUsesCicdIntegration(agent) || options.noCredentialSync === true)
|
|
197
|
+
return undefined;
|
|
198
|
+
const cicdCredentials = tryResolveCicdCredentials({ forceRemote: true });
|
|
199
|
+
if (cicdCredentials === undefined)
|
|
200
|
+
return undefined;
|
|
201
|
+
if (workspaceId === undefined) {
|
|
202
|
+
throw new Error('AI dialogue did not identify its workspace. Pass --workspace or start a new dialogue before credential synchronization.');
|
|
203
|
+
}
|
|
204
|
+
const projectDefault = await readProjectDefaultCredentialContext();
|
|
205
|
+
const credentialId = trimOptional(options.credentialId) ?? projectDefault.credentialId;
|
|
206
|
+
if (credentialId === undefined) {
|
|
207
|
+
throw new Error(missingProjectDefaultCredentialWarning());
|
|
208
|
+
}
|
|
209
|
+
const aiCredentials = resolveAiCredentials({ ...options, workspace: workspaceId });
|
|
210
|
+
const orgId = aiCredentials.orgId === undefined ? undefined : String(aiCredentials.orgId);
|
|
211
|
+
const context = buildLocalContext(cicdCredentials, credentialId, projectDefault.environmentId, orgId);
|
|
212
|
+
const cached = await readCredentialSyncReceipt();
|
|
213
|
+
const cacheKey = [
|
|
214
|
+
aiCredentials.baseUrl,
|
|
215
|
+
orgId ?? '',
|
|
216
|
+
workspaceId,
|
|
217
|
+
cicdCredentials.baseUrl,
|
|
218
|
+
fingerprint(cicdCredentials.apiKey),
|
|
219
|
+
credentialId,
|
|
220
|
+
projectDefault.environmentId ?? '',
|
|
221
|
+
].join('|');
|
|
222
|
+
if (options.forceCredentialSync !== true &&
|
|
223
|
+
localReceiptMatches(cached, context) &&
|
|
224
|
+
aiReceiptMatches(cached, aiCredentials.baseUrl, aiCredentials.orgId, workspaceId)) {
|
|
225
|
+
return {
|
|
226
|
+
credentialId: cached.credentialId,
|
|
227
|
+
...(cached.environmentId === undefined ? {} : { environmentId: cached.environmentId }),
|
|
228
|
+
integrationId: cached.ai?.integrationId,
|
|
229
|
+
...(cached.orgId === undefined ? {} : { orgId: cached.orgId }),
|
|
230
|
+
workspaceId,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
const active = activeSyncs.get(cacheKey);
|
|
234
|
+
if (active !== undefined)
|
|
235
|
+
return active;
|
|
236
|
+
const sync = ensureAiIntegrationWithContext({
|
|
237
|
+
aiOptions: options,
|
|
238
|
+
cicdCredentials,
|
|
239
|
+
context,
|
|
240
|
+
force: options.forceCredentialSync === true,
|
|
241
|
+
workspaceId,
|
|
242
|
+
}).finally(() => activeSyncs.delete(cacheKey));
|
|
243
|
+
activeSyncs.set(cacheKey, sync);
|
|
244
|
+
return sync;
|
|
245
|
+
}
|
|
246
|
+
export function clearCredentialSyncsForTests() {
|
|
247
|
+
activeSyncs.clear();
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=credential-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credential-sync.js","sourceRoot":"","sources":["../../src/lib/credential-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/debug.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { redactSecrets } from './secret-redaction.js';
|
|
1
2
|
export function isVerboseDebug(env = process.env) {
|
|
2
3
|
return env.DEBUG?.trim().toLowerCase() === 'verbose';
|
|
3
4
|
}
|
|
@@ -17,7 +18,8 @@ export function logVerboseDebug(section, payload) {
|
|
|
17
18
|
if (!isVerboseDebug()) {
|
|
18
19
|
return;
|
|
19
20
|
}
|
|
20
|
-
const
|
|
21
|
+
const redacted = redactSecrets(payload);
|
|
22
|
+
const serialized = typeof redacted === 'string' ? redacted : JSON.stringify(redacted, null, 2);
|
|
21
23
|
process.stderr.write(`[DEBUG] ${section}\n${serialized}\n`);
|
|
22
24
|
}
|
|
23
25
|
//# sourceMappingURL=debug.js.map
|
package/dist/lib/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/lib/debug.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAgB;IAC/D,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtB,OAAM;IACR,CAAC;IAED,MAAM,
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/lib/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAA;AAEnD,MAAM,UAAU,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG;IACjE,OAAO,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,SAAS,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAA;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAgB;IAC/D,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;QACtB,OAAM;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC9F,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,KAAK,UAAU,IAAI,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { type ProjectDefaultKey, type ProjectDefaults, type ProjectDefaultScope, type ResolvedProjectDefault } from './project-defaults.js';
|
|
2
2
|
import { type CachedUserContext, type StoredUserContext } from './user-context-types.js';
|
|
3
3
|
export declare const DEFAULT_WORK_PUSH_RETRY_TIMEOUT_SECONDS = 300;
|
|
4
|
+
export type CredentialSyncAiReceipt = {
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
integrationId: string;
|
|
7
|
+
organizationId?: number;
|
|
8
|
+
workspaceId: string;
|
|
9
|
+
};
|
|
10
|
+
export type CredentialSyncReceipt = {
|
|
11
|
+
ai?: CredentialSyncAiReceipt;
|
|
12
|
+
cicdBaseUrl: string;
|
|
13
|
+
cicdKeyFingerprint: string;
|
|
14
|
+
credentialId: string;
|
|
15
|
+
environmentId?: string;
|
|
16
|
+
orgId?: string;
|
|
17
|
+
schemaVersion: 2;
|
|
18
|
+
};
|
|
4
19
|
export type DefaultsStorePaths = {
|
|
5
20
|
/** Home-directory config (`~/.config/agentia-cli/config.json`). */
|
|
6
21
|
globalPath: string;
|
|
@@ -23,6 +38,9 @@ export declare function readDefaults(scope: ProjectDefaultScope): Promise<Projec
|
|
|
23
38
|
export declare function readUserContext(): Promise<CachedUserContext | undefined>;
|
|
24
39
|
export declare function writeUserContext(cached: CachedUserContext): Promise<CachedUserContext>;
|
|
25
40
|
export declare function clearUserContext(): Promise<void>;
|
|
41
|
+
export declare function readCredentialSyncReceipt(): Promise<CredentialSyncReceipt | undefined>;
|
|
42
|
+
export declare function writeCredentialSyncReceipt(receipt: CredentialSyncReceipt): Promise<CredentialSyncReceipt>;
|
|
43
|
+
export declare function clearCredentialSyncReceipt(): Promise<void>;
|
|
26
44
|
export declare function readLastWorkItem(): Promise<string | undefined>;
|
|
27
45
|
export declare function readLastWorkItemId(): Promise<string | undefined>;
|
|
28
46
|
export declare function readLastWorkItemTitle(): Promise<string | undefined>;
|