@copado/agentia-cli 0.90.0-alpha.0 → 0.92.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +262 -217
  2. package/dist/commands/auth/get.d.ts +1 -0
  3. package/dist/commands/auth/get.js +35 -21
  4. package/dist/commands/auth/get.js.map +1 -1
  5. package/dist/commands/auth/set.d.ts +1 -2
  6. package/dist/commands/auth/set.js +16 -23
  7. package/dist/commands/auth/set.js.map +1 -1
  8. package/dist/commands/auth/unset.d.ts +2 -0
  9. package/dist/commands/auth/unset.js +12 -1
  10. package/dist/commands/auth/unset.js.map +1 -1
  11. package/dist/commands/cicd/work/commit.d.ts +1 -0
  12. package/dist/commands/cicd/work/commit.js +7 -2
  13. package/dist/commands/cicd/work/commit.js.map +1 -1
  14. package/dist/commands/cicd/work/done.d.ts +3 -0
  15. package/dist/commands/cicd/work/done.js +14 -2
  16. package/dist/commands/cicd/work/done.js.map +1 -1
  17. package/dist/commands/cicd/work/push.d.ts +5 -0
  18. package/dist/commands/cicd/work/push.js +26 -3
  19. package/dist/commands/cicd/work/push.js.map +1 -1
  20. package/dist/commands/cicd/work/submit.d.ts +1 -0
  21. package/dist/commands/cicd/work/submit.js +5 -0
  22. package/dist/commands/cicd/work/submit.js.map +1 -1
  23. package/dist/commands/setup.js +1 -1
  24. package/dist/commands/setup.js.map +1 -1
  25. package/dist/lib/ai-config.js +33 -7
  26. package/dist/lib/ai-config.js.map +1 -1
  27. package/dist/lib/auth-config.d.ts +6 -3
  28. package/dist/lib/auth-config.js +127 -56
  29. package/dist/lib/auth-config.js.map +1 -1
  30. package/dist/lib/auth-profile.d.ts +25 -0
  31. package/dist/lib/auth-profile.js +112 -0
  32. package/dist/lib/auth-profile.js.map +1 -0
  33. package/dist/lib/cicd-gateway.js +19 -6
  34. package/dist/lib/cicd-gateway.js.map +1 -1
  35. package/dist/lib/credential-store.d.ts +3 -0
  36. package/dist/lib/credential-store.js +15 -3
  37. package/dist/lib/credential-store.js.map +1 -1
  38. package/dist/lib/defaults-store.d.ts +4 -0
  39. package/dist/lib/defaults-store.js +18 -3
  40. package/dist/lib/defaults-store.js.map +1 -1
  41. package/dist/lib/git-worktree.d.ts +4 -0
  42. package/dist/lib/git-worktree.js +24 -1
  43. package/dist/lib/git-worktree.js.map +1 -1
  44. package/dist/lib/mcp/command-id.js +1 -0
  45. package/dist/lib/mcp/command-id.js.map +1 -1
  46. package/dist/lib/mcp/tools.d.ts +29 -22
  47. package/dist/lib/mcp/tools.js +29 -36
  48. package/dist/lib/mcp/tools.js.map +1 -1
  49. package/dist/lib/mcp/work-tools.d.ts +12 -2
  50. package/dist/lib/mcp/work-tools.js +36 -9
  51. package/dist/lib/mcp/work-tools.js.map +1 -1
  52. package/dist/lib/nested-metadata-changes.d.ts +50 -0
  53. package/dist/lib/nested-metadata-changes.js +166 -0
  54. package/dist/lib/nested-metadata-changes.js.map +1 -0
  55. package/dist/lib/nested-metadata-registry.d.ts +24 -0
  56. package/dist/lib/nested-metadata-registry.js +201 -0
  57. package/dist/lib/nested-metadata-registry.js.map +1 -0
  58. package/dist/lib/setup-wizard.d.ts +3 -1
  59. package/dist/lib/setup-wizard.js +152 -30
  60. package/dist/lib/setup-wizard.js.map +1 -1
  61. package/dist/lib/testing-config.js +14 -5
  62. package/dist/lib/testing-config.js.map +1 -1
  63. package/dist/lib/user-context.js +3 -2
  64. package/dist/lib/user-context.js.map +1 -1
  65. package/dist/lib/work-local-commit.d.ts +2 -0
  66. package/dist/lib/work-local-commit.js +4 -0
  67. package/dist/lib/work-local-commit.js.map +1 -1
  68. package/dist/lib/work-push.d.ts +34 -0
  69. package/dist/lib/work-push.js +148 -11
  70. package/dist/lib/work-push.js.map +1 -1
  71. package/dist/lib/work-types.d.ts +30 -1
  72. package/dist/lib/work-types.js.map +1 -1
  73. package/oclif.manifest.json +897 -849
  74. package/package.json +2 -1
@@ -1,3 +1,4 @@
1
+ import { Flags } from '@oclif/core';
1
2
  import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
3
  import { listPendingChanges } from '../../../lib/git-worktree.js';
3
4
  import { performWorkPush, resolveWorkPushContext, WorkPushValidationError, } from '../../../lib/work-push.js';
@@ -6,11 +7,30 @@ export default class WorkPush extends AgentiaCommand {
6
7
  'Push the current feature/<lastWorkItem> branch and register commits with Copado.',
7
8
  'Requires a clean working tree, base branch, and dev org branch from `.agentia/config.user.json`.',
8
9
  'Applies Copado environment-variable then yaml replacements when needed, commits both as a single follow-up commit, locks the tip commit, runs `git push origin <branch>`,',
9
- 'calls headless work/push with lastPermissionSelected as the retrieveOnly list, then merges the feature branch into the recorded dev org branch.',
10
+ 'reports the nested metadata changed across the branch, such as the CustomField behind a profile field-permission edit, plus the parent components it would ignore,',
11
+ 'calls headless work/push with lastPermissionSelected and --permissions plus the nested metadata of the changed profiles and permission sets as the retrieveOnly list, lastFullMetadataSelected and --full-metadata as the fullMetadata list, the ignored parents as removeMetadataItems and the remaining nested metadata as addMetadataItems, then merges the feature branch into the recorded dev org branch.',
10
12
  ].join(' ');
11
- static examples = ['<%= config.bin %> <%= command.id %>', '<%= config.bin %> <%= command.id %> --json'];
13
+ static examples = [
14
+ '<%= config.bin %> <%= command.id %>',
15
+ '<%= config.bin %> <%= command.id %> --permissions CustomField:Account.SLA__c,ApexClass:AccountService',
16
+ '<%= config.bin %> <%= command.id %> --full-metadata PermissionSet:Sales_Onboarding',
17
+ '<%= config.bin %> <%= command.id %> --skip-nested-metadata-detection',
18
+ '<%= config.bin %> <%= command.id %> --json',
19
+ ];
20
+ static flags = {
21
+ 'full-metadata': Flags.string({
22
+ description: 'Comma-separated type-prefixed metadata such as Profile:Sales_User,PermissionSet:Sales_Onboarding, added to lastFullMetadataSelected for this push and sent as the headless push fullMetadata list. The named metadata is committed as a complete file, so it is never decomposed into nested metadata. Not stored; use `cicd work commit --full-metadata` to record it.',
23
+ }),
24
+ permissions: Flags.string({
25
+ description: 'Comma-separated type-prefixed metadata such as CustomField:Account.SLA__c,ApexClass:AccountService, added to lastPermissionSelected for this push and sent as part of the headless push retrieveOnly list. Not stored; use `cicd work commit --permissions` to record it.',
26
+ }),
27
+ 'skip-nested-metadata-detection': Flags.boolean({
28
+ default: false,
29
+ description: 'Do not detect the nested metadata changed across the branch (also configurable via skipNestedMetadataDetection in .agentia/config.json or .agentia/config.user.json)',
30
+ }),
31
+ };
12
32
  async run() {
13
- await this.parse(WorkPush);
33
+ const { flags } = await this.parse(WorkPush);
14
34
  const startedAt = Date.now();
15
35
  let context;
16
36
  try {
@@ -47,11 +67,14 @@ export default class WorkPush extends AgentiaCommand {
47
67
  baseBranch,
48
68
  branch,
49
69
  devOrgBranch,
70
+ ...(flags['full-metadata'] === undefined ? {} : { fullMetadata: flags['full-metadata'] }),
50
71
  hooks: {
51
72
  display: (render) => this.display(render),
52
73
  log: (message) => this.log(message),
53
74
  withSpinner: (message, action) => this.withSpinner(message, action),
54
75
  },
76
+ ...(flags.permissions === undefined ? {} : { permissions: flags.permissions }),
77
+ skipNestedMetadataDetection: flags['skip-nested-metadata-detection'],
55
78
  workItem,
56
79
  workItemId,
57
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/commands/cicd/work/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/commands/cicd/work/push.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export default class WorkSubmit extends AgentiaCommand {
6
6
  static flags: {
7
7
  'apex-test-classes': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
8
  'skip-local-tests': import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ 'skip-nested-metadata-detection': import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
10
  'skip-pull-request': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
11
  };
11
12
  run(): Promise<WorkSubmitResult>;
@@ -31,6 +31,10 @@ export default class WorkSubmit extends AgentiaCommand {
31
31
  default: false,
32
32
  description: 'Skip running local quality gates scripts in the project root',
33
33
  }),
34
+ 'skip-nested-metadata-detection': Flags.boolean({
35
+ default: false,
36
+ description: 'Do not detect the nested metadata changed across the branch when pushing (also configurable via skipNestedMetadataDetection in .agentia/config.json or .agentia/config.user.json)',
37
+ }),
34
38
  'skip-pull-request': Flags.boolean({
35
39
  default: false,
36
40
  description: 'Do not open the pull request compare URL after submit (also configurable via skipPullRequest in .agentia/config.json or .agentia/config.user.json)',
@@ -161,6 +165,7 @@ export default class WorkSubmit extends AgentiaCommand {
161
165
  log: (message) => this.log(message),
162
166
  withSpinner: (message, action) => this.withSpinner(message, action),
163
167
  },
168
+ skipNestedMetadataDetection: flags['skip-nested-metadata-detection'],
164
169
  });
165
170
  }
166
171
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../../src/commands/cicd/work/submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../../src/commands/cicd/work/submit.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { runSetupWizard } from '../lib/setup-wizard.js';
6
6
  export default class Setup extends AgentiaCommand {
7
7
  static description = [
8
8
  'Prepare this machine and the current project for Agentia.',
9
- 'Guides CICD and CRT authentication, Cursor MCP, local quality gates, and AGENTS.md.',
9
+ 'Guides CICD, AI, and CRT authentication, Cursor MCP, local quality gates, and AGENTS.md.',
10
10
  'Git is optional: .gitignore is updated only inside a repository, and generated files are not committed.',
11
11
  ].join(' ');
12
12
  static examples = [
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAC,cAAc,EAAmB,MAAM,wBAAwB,CAAA;AAEvE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,cAAc;IAC/C,MAAM,CAAU,WAAW,GAAG;QAC5B,2DAA2D;QAC3D,qFAAqF;QACrF,yGAAyG;KAC1G,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,iDAAiD;QACjD,iGAAiG;QACjG,4CAA4C;KAC7C,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1C,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,6DAA6D;SAC3E,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+EAA+E;SAC7F,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;QAEzD,IAAI,CAAC;YACH,OAAO,MAAM,cAAc,CAAC;gBAC1B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC;gBACzC,uBAAuB,EAAE,KAAK,CAAC,4BAA4B,CAAC;gBAC5D,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;oBACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;wBAChB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACnB,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,QAAQ;gBACR,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;aACpE,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAC,CAAC,CAAA;YACnD,CAAC;YAED,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAC,cAAc,EAAmB,MAAM,wBAAwB,CAAA;AAEvE,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,cAAc;IAC/C,MAAM,CAAU,WAAW,GAAG;QAC5B,2DAA2D;QAC3D,0FAA0F;QAC1F,yGAAyG;KAC1G,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACX,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,iDAAiD;QACjD,iGAAiG;QACjG,4CAA4C;KAC7C,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+CAA+C;SAC7D,CAAC;QACF,4BAA4B,EAAE,KAAK,CAAC,OAAO,CAAC;YAC1C,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,6DAA6D;SAC3E,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+EAA+E;SAC7F,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAA;QAEzD,IAAI,CAAC;YACH,OAAO,MAAM,cAAc,CAAC;gBAC1B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC;gBACzC,uBAAuB,EAAE,KAAK,CAAC,4BAA4B,CAAC;gBAC5D,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE;oBACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;wBAChB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;oBACnB,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,QAAQ;gBACR,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;aACpE,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAC,CAAC,CAAA;YACnD,CAAC;YAED,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;QACjD,CAAC;IACH,CAAC"}
@@ -1,4 +1,5 @@
1
- import { getAiDomain, getAiGatewayUrl, getAiOrgId, getAiWorkspaceId, getCredential, } from './credential-store.js';
1
+ import { readAuthProfile } from './auth-profile.js';
2
+ import { getAiDomain, getAiGatewayUrl, getAiOrgId, getAiWorkspaceId, getCredentialForKey } from './credential-store.js';
2
3
  import { loadEnvFile } from './env-file.js';
3
4
  export const AI_DEFAULT_WORKSPACE_NAME = 'agentia-cli';
4
5
  export const AI_DEFAULT_TIMEOUT_MS = 120_000;
@@ -95,13 +96,38 @@ function normalizeOptionalAiWorkspace(value) {
95
96
  }
96
97
  export function resolveAiCredentials(overrides = {}) {
97
98
  loadEnvFile();
98
- const pak = overrides.pak ?? overrides.pat ?? envValue('AGENTIA_AI_PAK', 'AGENTIA_AI_PAT', 'COPADO_AI_PAT') ?? getCredential('ai');
99
- const gatewayUrl = overrides.gatewayUrl ?? envValue('AGENTIA_AI_GATEWAY_URL', 'COPADO_AI_GATEWAY_URL') ?? getAiGatewayUrl();
100
- const domain = overrides.domain ?? envValue('AGENTIA_AI_DOMAIN', 'COPADO_AI_DOMAIN') ?? getAiDomain();
101
- const org = overrides.org ?? envValue('AGENTIA_AI_ORG', 'COPADO_AI_ORG') ?? getAiOrgId();
102
- const workspace = overrides.workspace ?? envValue('AGENTIA_AI_WORKSPACE', 'COPADO_AI_WORKSPACE') ?? getAiWorkspaceId();
99
+ const local = readAuthProfile('local');
100
+ const localAi = local?.ai;
101
+ const global = readAuthProfile('global');
102
+ const globalAi = global?.ai;
103
+ const localConfigured = localAi !== undefined;
104
+ const metadata = localConfigured ? localAi : globalAi;
105
+ if (localConfigured && metadata?.gatewayUrl === undefined && (metadata?.domain === undefined || metadata.orgId === undefined)) {
106
+ throw new Error('Local AI authentication profile is incomplete. Configure --ai-domain and --ai-org, or --ai-gateway-url.');
107
+ }
108
+ const keychainId = localConfigured ? local?.keychainId : undefined;
109
+ const pak = overrides.pak ??
110
+ overrides.pat ??
111
+ envValue('AGENTIA_AI_PAK', 'AGENTIA_AI_PAT', 'COPADO_AI_PAT') ??
112
+ (localConfigured ? getCredentialForKey('ai', keychainId) : getCredentialForKey('ai'));
113
+ const gatewayUrl = overrides.gatewayUrl ??
114
+ envValue('AGENTIA_AI_GATEWAY_URL', 'COPADO_AI_GATEWAY_URL') ??
115
+ metadata?.gatewayUrl ??
116
+ (localConfigured ? undefined : getAiGatewayUrl());
117
+ const domain = overrides.domain ??
118
+ envValue('AGENTIA_AI_DOMAIN', 'COPADO_AI_DOMAIN') ??
119
+ metadata?.domain ??
120
+ (localConfigured ? undefined : getAiDomain());
121
+ const org = overrides.org ??
122
+ envValue('AGENTIA_AI_ORG', 'COPADO_AI_ORG') ??
123
+ metadata?.orgId ??
124
+ (localConfigured ? undefined : getAiOrgId());
125
+ const workspace = overrides.workspace ??
126
+ envValue('AGENTIA_AI_WORKSPACE', 'COPADO_AI_WORKSPACE') ??
127
+ metadata?.workspaceId ??
128
+ (localConfigured ? undefined : getAiWorkspaceId());
103
129
  if (!hasText(pak)) {
104
- throw new Error('AI PAK is not configured. Run `agentia auth set --ai-pak <pak> --ai-domain <domain> --ai-org <org-id>` or set AGENTIA_AI_PAK.');
130
+ throw new Error('AI PAK is not configured. Run `agentia auth set --ai <pak> --ai-domain <domain> --ai-org <org-id>` or set AGENTIA_AI_PAK.');
105
131
  }
106
132
  const resolvedBaseUrl = resolveAiBaseUrl({ domain, gatewayUrl, org });
107
133
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../src/lib/ai-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../src/lib/ai-config.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type AuthProfileScope } from './auth-profile.js';
1
2
  import { type CredentialType } from './credential-store.js';
2
3
  export declare const COPADO_ACCOUNT_SUMMARY_LOGIN_URL = "https://login.salesforce.com/?startURL=%2Flightning%2Fn%2Fcopado__Account_Summary";
3
4
  export type AuthSetResult = {
@@ -30,27 +31,28 @@ export type ApplyAuthSetInput = {
30
31
  aiDomain?: string;
31
32
  aiGatewayUrl?: string;
32
33
  aiOrg?: number;
33
- aiPak?: string;
34
34
  aiWorkspace?: string;
35
35
  cicd?: string;
36
36
  crt?: string;
37
37
  crtDomain?: string;
38
38
  crtOrg?: number;
39
- crtPak?: string;
40
39
  customUrl?: string;
41
40
  region?: string;
41
+ scope?: AuthProfileScope;
42
42
  };
43
43
  export type CicdAuthStatus = {
44
44
  baseUrl?: null | string;
45
45
  local?: boolean;
46
46
  masked?: string;
47
47
  set: boolean;
48
+ source?: 'global' | 'local';
48
49
  };
49
50
  export type CrtAuthStatus = {
50
51
  domain?: null | string;
51
52
  masked?: string;
52
53
  orgId?: null | string;
53
54
  set: boolean;
55
+ source?: 'global' | 'local';
54
56
  };
55
57
  export type AiAuthStatus = {
56
58
  domain?: null | string;
@@ -58,6 +60,7 @@ export type AiAuthStatus = {
58
60
  masked?: string;
59
61
  orgId?: null | string;
60
62
  set: boolean;
63
+ source?: 'global' | 'local';
61
64
  workspaceId?: null | string;
62
65
  };
63
66
  export declare class AuthSetError extends Error {
@@ -81,5 +84,5 @@ export declare function setAuthUnsetConfirmForTests(fn: AuthUnsetConfirmFn | und
81
84
  export declare function resetAuthUnsetConfirmForTests(): void;
82
85
  export declare function hasAuthUnsetTestConfirm(): boolean;
83
86
  export declare function confirmAuthUnset(types: CredentialType[]): Promise<boolean>;
84
- export declare function applyAuthUnset(types: CredentialType[]): Promise<AuthUnsetResult>;
87
+ export declare function applyAuthUnset(types: CredentialType[], scope?: AuthProfileScope): Promise<AuthUnsetResult>;
85
88
  export declare function applyAuthSet(input: ApplyAuthSetInput): Promise<AuthSetResult>;
@@ -1,9 +1,10 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { normalizeAiDomain, normalizeAiGatewayUrl, normalizeAiOrgId, normalizeAiWorkspaceId, resolveAiCredentials, } from './ai-config.js';
3
3
  import { AiGateway } from './ai-gateway.js';
4
+ import { deleteAuthProfile, ensureLocalKeychainId, localProfileKeychainId, readAuthProfile, updateAuthProfile, writeAuthProfile, } from './auth-profile.js';
4
5
  import { CicdGateway, normalizeCicdBaseUrl } from './cicd-gateway.js';
5
6
  import { isCicdRegion } from './cicd-region.js';
6
- import { ALL_CREDENTIAL_TYPES, credentialLabel, CredentialStoreError, deleteAiDomain, deleteAiGatewayUrl, deleteAiOrgId, deleteAiWorkspaceId, deleteCicdBaseUrl, deleteCredential, deleteCrtDomain, deleteCrtOrgId, getAiDomain, getAiGatewayUrl, getAiOrgId, getAiWorkspaceId, getCicdBaseUrl, getCredential, getCrtDomain, getCrtOrgId, maskSecret, setAiDomain, setAiGatewayUrl, setAiOrgId, setAiWorkspaceId, setCicdBaseUrl, setCredential, setCrtDomain, setCrtOrgId, } from './credential-store.js';
7
+ import { ALL_CREDENTIAL_TYPES, credentialLabel, CredentialStoreError, deleteAiDomain, deleteAiGatewayUrl, deleteAiOrgId, deleteAiWorkspaceId, deleteCicdBaseUrl, deleteCredential, deleteCredentialForKey, deleteCrtDomain, deleteCrtOrgId, getAiDomain, getAiGatewayUrl, getAiOrgId, getAiWorkspaceId, getCicdBaseUrl, getCredential, getCredentialForKey, getCrtDomain, getCrtOrgId, maskSecret, setCredentialForKey, } from './credential-store.js';
7
8
  import { clearUserContext } from './defaults-store.js';
8
9
  import { normalizeLocalGatewayBaseUrl, readLocalGatewayConfig } from './local-gateway-config.js';
9
10
  import { normalizeCrtDomain, normalizeCrtOrgId } from './testing-config.js';
@@ -29,9 +30,12 @@ export function formatCicdApiKeyHelp() {
29
30
  return `Create a Copado API key on the API Key tab of the ${accountSummary} page.`;
30
31
  }
31
32
  export function getCicdAuthStatus() {
33
+ const local = readAuthProfile('local');
34
+ const profile = local?.cicd === undefined ? readAuthProfile('global')?.cicd : local.cicd;
35
+ const scopedCredential = local?.cicd === undefined ? getCredential('cicd') : getCredentialForKey('cicd', local.keychainId);
32
36
  const localConfig = readLocalGatewayConfig();
33
37
  if (localConfig.enabled) {
34
- const apiKey = localConfig.apiKey || getCredential('cicd');
38
+ const apiKey = localConfig.apiKey || scopedCredential;
35
39
  if (apiKey === null || apiKey.trim().length === 0) {
36
40
  return {
37
41
  baseUrl: normalizeLocalGatewayBaseUrl(localConfig.url),
@@ -44,52 +48,60 @@ export function getCicdAuthStatus() {
44
48
  local: true,
45
49
  masked: maskSecret(apiKey),
46
50
  set: true,
51
+ source: local?.cicd === undefined ? 'global' : 'local',
47
52
  };
48
53
  }
49
- const credential = getCredential('cicd');
54
+ const credential = scopedCredential;
50
55
  if (credential === null) {
51
56
  return { set: false };
52
57
  }
53
58
  return {
54
- baseUrl: getCicdBaseUrl(),
59
+ baseUrl: profile?.baseUrl ?? getCicdBaseUrl(),
55
60
  masked: maskSecret(credential),
56
61
  set: true,
62
+ source: local?.cicd === undefined ? 'global' : 'local',
57
63
  };
58
64
  }
59
65
  export function getCrtAuthStatus() {
60
- const credential = getCredential('crt');
66
+ const local = readAuthProfile('local');
67
+ const metadata = local?.crt ?? readAuthProfile('global')?.crt;
68
+ const credential = local?.crt === undefined ? getCredential('crt') : getCredentialForKey('crt', local.keychainId);
61
69
  if (credential === null) {
62
70
  return {
63
- domain: getCrtDomain(),
64
- orgId: getCrtOrgId(),
71
+ domain: metadata?.domain ?? getCrtDomain(),
72
+ orgId: metadata?.orgId ?? getCrtOrgId(),
65
73
  set: false,
66
74
  };
67
75
  }
68
76
  return {
69
- domain: getCrtDomain(),
77
+ domain: metadata?.domain ?? getCrtDomain(),
70
78
  masked: maskSecret(credential),
71
- orgId: getCrtOrgId(),
79
+ orgId: metadata?.orgId ?? getCrtOrgId(),
72
80
  set: true,
81
+ source: local?.crt === undefined ? 'global' : 'local',
73
82
  };
74
83
  }
75
84
  export function getAiAuthStatus() {
76
- const credential = getCredential('ai');
85
+ const local = readAuthProfile('local');
86
+ const metadata = local?.ai ?? readAuthProfile('global')?.ai;
87
+ const credential = local?.ai === undefined ? getCredential('ai') : getCredentialForKey('ai', local.keychainId);
77
88
  if (credential === null) {
78
89
  return {
79
- domain: getAiDomain(),
80
- gatewayUrl: getAiGatewayUrl(),
81
- orgId: getAiOrgId(),
90
+ domain: metadata?.domain ?? getAiDomain(),
91
+ gatewayUrl: metadata?.gatewayUrl ?? getAiGatewayUrl(),
92
+ orgId: metadata?.orgId ?? getAiOrgId(),
82
93
  set: false,
83
- workspaceId: getAiWorkspaceId(),
94
+ workspaceId: metadata?.workspaceId ?? getAiWorkspaceId(),
84
95
  };
85
96
  }
86
97
  return {
87
- domain: getAiDomain(),
88
- gatewayUrl: getAiGatewayUrl(),
98
+ domain: metadata?.domain ?? getAiDomain(),
99
+ gatewayUrl: metadata?.gatewayUrl ?? getAiGatewayUrl(),
89
100
  masked: maskSecret(credential),
90
- orgId: getAiOrgId(),
101
+ orgId: metadata?.orgId ?? getAiOrgId(),
91
102
  set: true,
92
- workspaceId: getAiWorkspaceId(),
103
+ source: local?.ai === undefined ? 'global' : 'local',
104
+ workspaceId: metadata?.workspaceId ?? getAiWorkspaceId(),
93
105
  };
94
106
  }
95
107
  export function isCicdConfigured() {
@@ -156,35 +168,68 @@ function hasStoredAiConfig() {
156
168
  getAiOrgId() !== null ||
157
169
  getAiWorkspaceId() !== null);
158
170
  }
159
- async function unsetCicdAuth() {
160
- const hadConfig = hasStoredCicdConfig();
161
- deleteCredential('cicd');
162
- deleteCicdBaseUrl();
163
- if (hadConfig) {
171
+ async function unsetCicdAuth(scope) {
172
+ const local = scope === 'local' ? readAuthProfile('local') : undefined;
173
+ const hadConfig = scope === 'local' ? local?.cicd !== undefined : hasStoredCicdConfig();
174
+ if (scope === 'local') {
175
+ const keychainId = localProfileKeychainId('cicd');
176
+ if (keychainId === undefined)
177
+ return false;
178
+ deleteCredentialForKey('cicd', keychainId);
179
+ await deleteAuthProfile('local', 'cicd');
180
+ }
181
+ else {
182
+ deleteCredential('cicd');
183
+ deleteCicdBaseUrl();
184
+ await deleteAuthProfile('global', 'cicd');
185
+ }
186
+ if (hadConfig && scope === 'global') {
164
187
  await clearUserContext();
165
188
  }
166
189
  return hadConfig;
167
190
  }
168
- function unsetCrtAuth() {
169
- const hadConfig = hasStoredCrtConfig();
170
- deleteCredential('crt');
171
- deleteCrtDomain();
172
- deleteCrtOrgId();
191
+ async function unsetCrtAuth(scope) {
192
+ const local = scope === 'local' ? readAuthProfile('local') : undefined;
193
+ const hadConfig = scope === 'local' ? local?.crt !== undefined : hasStoredCrtConfig();
194
+ if (scope === 'local') {
195
+ const keychainId = localProfileKeychainId('crt');
196
+ if (keychainId === undefined)
197
+ return false;
198
+ deleteCredentialForKey('crt', keychainId);
199
+ await deleteAuthProfile('local', 'crt');
200
+ }
201
+ else {
202
+ deleteCredential('crt');
203
+ deleteCrtDomain();
204
+ deleteCrtOrgId();
205
+ await deleteAuthProfile('global', 'crt');
206
+ }
173
207
  return hadConfig;
174
208
  }
175
- function unsetAiAuth() {
176
- const hadConfig = hasStoredAiConfig();
177
- deleteCredential('ai');
178
- deleteAiDomain();
179
- deleteAiGatewayUrl();
180
- deleteAiOrgId();
181
- deleteAiWorkspaceId();
209
+ async function unsetAiAuth(scope) {
210
+ const local = scope === 'local' ? readAuthProfile('local') : undefined;
211
+ const hadConfig = scope === 'local' ? local?.ai !== undefined : hasStoredAiConfig();
212
+ if (scope === 'local') {
213
+ const keychainId = localProfileKeychainId('ai');
214
+ if (keychainId === undefined)
215
+ return false;
216
+ deleteCredentialForKey('ai', keychainId);
217
+ await deleteAuthProfile('local', 'ai');
218
+ }
219
+ else {
220
+ deleteCredential('ai');
221
+ deleteAiDomain();
222
+ deleteAiGatewayUrl();
223
+ deleteAiOrgId();
224
+ deleteAiWorkspaceId();
225
+ await deleteAuthProfile('global', 'ai');
226
+ }
182
227
  return hadConfig;
183
228
  }
184
- export async function applyAuthUnset(types) {
229
+ export async function applyAuthUnset(types, scope = 'global') {
185
230
  const removed = await Promise.all(types.map(async (type) => ({
186
231
  label: credentialLabel(type),
187
- removed: type === 'cicd' ? await unsetCicdAuth() : type === 'crt' ? unsetCrtAuth() : unsetAiAuth(),
232
+ removed: type === 'cicd' ? await unsetCicdAuth(scope) : type === 'crt' ? await unsetCrtAuth(scope) : await unsetAiAuth(scope),
188
233
  type,
189
234
  })));
190
235
  return { removed };
@@ -193,14 +238,8 @@ export async function applyAuthUnset(types) {
193
238
  // eslint-disable-next-line complexity
194
239
  export async function applyAuthSet(input) {
195
240
  const credentials = [];
196
- const aiPak = input.aiPak ?? input.ai;
197
- const crtPak = input.crtPak ?? input.crt;
198
- if (input.aiPak !== undefined && input.ai !== undefined && input.aiPak !== input.ai) {
199
- throw new AuthSetError('Use either --ai-pak or --ai, not conflicting values for both.');
200
- }
201
- if (input.crtPak !== undefined && input.crt !== undefined && input.crtPak !== input.crt) {
202
- throw new AuthSetError('Use either --crt-pak or --crt, not conflicting values for both.');
203
- }
241
+ const aiPak = input.ai;
242
+ const crtPak = input.crt;
204
243
  if (aiPak !== undefined) {
205
244
  credentials.push({ type: 'ai', value: aiPak });
206
245
  }
@@ -220,7 +259,7 @@ export async function applyAuthSet(input) {
220
259
  input.aiGatewayUrl === undefined &&
221
260
  input.aiOrg === undefined &&
222
261
  input.aiWorkspace === undefined) {
223
- throw new AuthSetError('Must provide at least one of --cicd, --crt-pak, --crt-domain, --crt-org, --ai-pak, --ai-domain, --ai-org, --ai-gateway-url, or --ai-workspace');
262
+ throw new AuthSetError('Must provide at least one of --cicd, --crt, --crt-domain, --crt-org, --ai, --ai-domain, --ai-org, --ai-gateway-url, or --ai-workspace');
224
263
  }
225
264
  if (input.region !== undefined && !isCicdRegion(input.region)) {
226
265
  throw new AuthSetError(`Invalid region "${input.region}"`);
@@ -309,27 +348,55 @@ export async function applyAuthSet(input) {
309
348
  label: credentialLabel(type),
310
349
  type,
311
350
  }));
351
+ const scope = input.scope ?? 'global';
312
352
  try {
353
+ if (scope === 'local' && credentials.length > 0) {
354
+ const currentProfile = readAuthProfile('local') ?? {};
355
+ if (currentProfile.keychainId === undefined) {
356
+ await writeAuthProfile('local', { ...currentProfile, keychainId: ensureLocalKeychainId() });
357
+ }
358
+ }
313
359
  if (resolvedBaseUrl !== undefined) {
314
- setCicdBaseUrl(resolvedBaseUrl);
360
+ await updateAuthProfile(scope, 'cicd', { baseUrl: resolvedBaseUrl });
315
361
  }
316
362
  if (aiDomain !== undefined) {
317
- setAiDomain(aiDomain);
363
+ await updateAuthProfile(scope, 'ai', {
364
+ domain: aiDomain,
365
+ gatewayUrl: aiGatewayUrl,
366
+ orgId: aiOrgId?.toString(),
367
+ workspaceId: aiWorkspaceId,
368
+ });
318
369
  }
319
370
  if (aiGatewayUrl !== undefined) {
320
- setAiGatewayUrl(aiGatewayUrl);
371
+ await updateAuthProfile(scope, 'ai', {
372
+ domain: aiDomain,
373
+ gatewayUrl: aiGatewayUrl,
374
+ orgId: aiOrgId?.toString(),
375
+ workspaceId: aiWorkspaceId,
376
+ });
321
377
  }
322
378
  if (aiOrgId !== undefined) {
323
- setAiOrgId(aiOrgId.toString());
379
+ await updateAuthProfile(scope, 'ai', {
380
+ domain: aiDomain,
381
+ gatewayUrl: aiGatewayUrl,
382
+ orgId: aiOrgId.toString(),
383
+ workspaceId: aiWorkspaceId,
384
+ });
324
385
  }
325
386
  if (crtDomain !== undefined) {
326
- setCrtDomain(crtDomain);
387
+ await updateAuthProfile(scope, 'crt', { domain: crtDomain, orgId: crtOrgId?.toString() });
327
388
  }
328
389
  if (crtOrgId !== undefined) {
329
- setCrtOrgId(crtOrgId.toString());
390
+ await updateAuthProfile(scope, 'crt', { domain: crtDomain, orgId: crtOrgId.toString() });
330
391
  }
331
392
  for (const { type, value } of credentials) {
332
- setCredential(type, value);
393
+ if (scope === 'local') {
394
+ // Sequential writes preserve the shared local keychain identifier.
395
+ // eslint-disable-next-line no-await-in-loop
396
+ await updateAuthProfile(scope, type);
397
+ }
398
+ const keychainId = scope === 'local' ? readAuthProfile('local')?.keychainId : undefined;
399
+ setCredentialForKey(type, value, keychainId);
333
400
  }
334
401
  }
335
402
  catch (error) {
@@ -348,7 +415,12 @@ export async function applyAuthSet(input) {
348
415
  });
349
416
  if (aiWorkspaceId !== undefined) {
350
417
  try {
351
- setAiWorkspaceId(aiWorkspaceId);
418
+ await updateAuthProfile(scope, 'ai', {
419
+ domain: aiDomain,
420
+ gatewayUrl: aiGatewayUrl,
421
+ orgId: aiOrgId?.toString(),
422
+ workspaceId: aiWorkspaceId,
423
+ });
352
424
  }
353
425
  catch (error) {
354
426
  if (error instanceof CredentialStoreError) {
@@ -384,7 +456,6 @@ async function resolveCicdEndpoint(apiKey, region, customUrl) {
384
456
  }
385
457
  async function resolveAiWorkspaceForAuthSet(input, overrides) {
386
458
  const aiTouched = input.ai !== undefined ||
387
- input.aiPak !== undefined ||
388
459
  input.aiDomain !== undefined ||
389
460
  input.aiGatewayUrl !== undefined ||
390
461
  input.aiOrg !== undefined ||
@@ -396,7 +467,7 @@ async function resolveAiWorkspaceForAuthSet(input, overrides) {
396
467
  credentials = resolveAiCredentials(overrides);
397
468
  }
398
469
  catch (error) {
399
- if (input.ai !== undefined || input.aiPak !== undefined || input.aiWorkspace !== undefined) {
470
+ if (input.ai !== undefined || input.aiWorkspace !== undefined) {
400
471
  throw new AuthSetError(error.message, 1);
401
472
  }
402
473
  return overrides.workspace;