@copado/agentia-cli 0.6.0-alpha.0 → 0.8.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 (180) hide show
  1. package/README.md +1025 -7
  2. package/dist/commands/auth/get.d.ts +23 -0
  3. package/dist/commands/auth/get.js +73 -0
  4. package/dist/commands/auth/get.js.map +1 -0
  5. package/dist/commands/auth/set.d.ts +21 -0
  6. package/dist/commands/auth/set.js +113 -0
  7. package/dist/commands/auth/set.js.map +1 -0
  8. package/dist/commands/environment/auth/status.d.ts +13 -0
  9. package/dist/commands/environment/auth/status.js +36 -0
  10. package/dist/commands/environment/auth/status.js.map +1 -0
  11. package/dist/commands/environment/auth/web/login.d.ts +15 -0
  12. package/dist/commands/environment/auth/web/login.js +55 -0
  13. package/dist/commands/environment/auth/web/login.js.map +1 -0
  14. package/dist/commands/environment/create.d.ts +22 -0
  15. package/dist/commands/environment/create.js +41 -0
  16. package/dist/commands/environment/create.js.map +1 -0
  17. package/dist/commands/environment/get.d.ts +10 -0
  18. package/dist/commands/environment/get.js +30 -0
  19. package/dist/commands/environment/get.js.map +1 -0
  20. package/dist/commands/environment/list.d.ts +17 -0
  21. package/dist/commands/environment/list.js +69 -0
  22. package/dist/commands/environment/list.js.map +1 -0
  23. package/dist/commands/environment/update.d.ts +23 -0
  24. package/dist/commands/environment/update.js +70 -0
  25. package/dist/commands/environment/update.js.map +1 -0
  26. package/dist/commands/job/get.d.ts +14 -0
  27. package/dist/commands/job/get.js +33 -0
  28. package/dist/commands/job/get.js.map +1 -0
  29. package/dist/commands/job/kill.d.ts +14 -0
  30. package/dist/commands/job/kill.js +34 -0
  31. package/dist/commands/job/kill.js.map +1 -0
  32. package/dist/commands/job/list.d.ts +18 -0
  33. package/dist/commands/job/list.js +68 -0
  34. package/dist/commands/job/list.js.map +1 -0
  35. package/dist/commands/job/pause.d.ts +14 -0
  36. package/dist/commands/job/pause.js +34 -0
  37. package/dist/commands/job/pause.js.map +1 -0
  38. package/dist/commands/job/resume.d.ts +14 -0
  39. package/dist/commands/job/resume.js +34 -0
  40. package/dist/commands/job/resume.js.map +1 -0
  41. package/dist/commands/job/run.d.ts +15 -0
  42. package/dist/commands/job/run.js +40 -0
  43. package/dist/commands/job/run.js.map +1 -0
  44. package/dist/commands/mcp/start.d.ts +7 -0
  45. package/dist/commands/mcp/start.js +15 -0
  46. package/dist/commands/mcp/start.js.map +1 -0
  47. package/dist/commands/metadata/content/compare.d.ts +40 -0
  48. package/dist/commands/metadata/content/compare.js +127 -0
  49. package/dist/commands/metadata/content/compare.js.map +1 -0
  50. package/dist/commands/metadata/content/get.d.ts +39 -0
  51. package/dist/commands/metadata/content/get.js +158 -0
  52. package/dist/commands/metadata/content/get.js.map +1 -0
  53. package/dist/commands/metadata/dependency/list.d.ts +49 -0
  54. package/dist/commands/metadata/dependency/list.js +216 -0
  55. package/dist/commands/metadata/dependency/list.js.map +1 -0
  56. package/dist/commands/metadata/index/compare.d.ts +34 -0
  57. package/dist/commands/metadata/index/compare.js +100 -0
  58. package/dist/commands/metadata/index/compare.js.map +1 -0
  59. package/dist/commands/metadata/list.d.ts +56 -0
  60. package/dist/commands/metadata/list.js +133 -0
  61. package/dist/commands/metadata/list.js.map +1 -0
  62. package/dist/commands/metadata/refresh/deleted.d.ts +15 -0
  63. package/dist/commands/metadata/refresh/deleted.js +55 -0
  64. package/dist/commands/metadata/refresh/deleted.js.map +1 -0
  65. package/dist/commands/metadata/refresh/run.d.ts +23 -0
  66. package/dist/commands/metadata/refresh/run.js +95 -0
  67. package/dist/commands/metadata/refresh/run.js.map +1 -0
  68. package/dist/commands/metadata/refresh/status.d.ts +14 -0
  69. package/dist/commands/metadata/refresh/status.js +49 -0
  70. package/dist/commands/metadata/refresh/status.js.map +1 -0
  71. package/dist/commands/pipeline/connection/list.d.ts +12 -0
  72. package/dist/commands/pipeline/connection/list.js +39 -0
  73. package/dist/commands/pipeline/connection/list.js.map +1 -0
  74. package/dist/commands/pipeline/get.d.ts +14 -0
  75. package/dist/commands/pipeline/get.js +33 -0
  76. package/dist/commands/pipeline/get.js.map +1 -0
  77. package/dist/commands/pipeline/list.d.ts +11 -0
  78. package/dist/commands/pipeline/list.js +30 -0
  79. package/dist/commands/pipeline/list.js.map +1 -0
  80. package/dist/commands/project/default/get.d.ts +21 -0
  81. package/dist/commands/project/default/get.js +44 -0
  82. package/dist/commands/project/default/get.js.map +1 -0
  83. package/dist/commands/project/default/set.d.ts +21 -0
  84. package/dist/commands/project/default/set.js +55 -0
  85. package/dist/commands/project/default/set.js.map +1 -0
  86. package/dist/commands/project/default/unset.d.ts +21 -0
  87. package/dist/commands/project/default/unset.js +45 -0
  88. package/dist/commands/project/default/unset.js.map +1 -0
  89. package/dist/index.d.ts +1 -0
  90. package/dist/index.js +2 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/lib/agentia-command.d.ts +7 -0
  93. package/dist/lib/agentia-command.js +28 -0
  94. package/dist/lib/agentia-command.js.map +1 -0
  95. package/dist/lib/agentia-oauth-error-codes.d.ts +17 -0
  96. package/dist/lib/agentia-oauth-error-codes.js +30 -0
  97. package/dist/lib/agentia-oauth-error-codes.js.map +1 -0
  98. package/dist/lib/assert.d.ts +1 -0
  99. package/dist/lib/assert.js +7 -0
  100. package/dist/lib/assert.js.map +1 -0
  101. package/dist/lib/cicd-gateway.d.ts +58 -0
  102. package/dist/lib/cicd-gateway.js +231 -0
  103. package/dist/lib/cicd-gateway.js.map +1 -0
  104. package/dist/lib/cicd-region.d.ts +4 -0
  105. package/dist/lib/cicd-region.js +8 -0
  106. package/dist/lib/cicd-region.js.map +1 -0
  107. package/dist/lib/credential-store.d.ts +18 -0
  108. package/dist/lib/credential-store.js +43 -0
  109. package/dist/lib/credential-store.js.map +1 -0
  110. package/dist/lib/defaults-store.d.ts +12 -0
  111. package/dist/lib/defaults-store.js +142 -0
  112. package/dist/lib/defaults-store.js.map +1 -0
  113. package/dist/lib/dependency-from-changes.d.ts +6 -0
  114. package/dist/lib/dependency-from-changes.js +97 -0
  115. package/dist/lib/dependency-from-changes.js.map +1 -0
  116. package/dist/lib/environment-auth-status.d.ts +18 -0
  117. package/dist/lib/environment-auth-status.js +75 -0
  118. package/dist/lib/environment-auth-status.js.map +1 -0
  119. package/dist/lib/environment-auth.d.ts +26 -0
  120. package/dist/lib/environment-auth.js +150 -0
  121. package/dist/lib/environment-auth.js.map +1 -0
  122. package/dist/lib/environment-credential-selection.d.ts +15 -0
  123. package/dist/lib/environment-credential-selection.js +60 -0
  124. package/dist/lib/environment-credential-selection.js.map +1 -0
  125. package/dist/lib/environment-flags.d.ts +81 -0
  126. package/dist/lib/environment-flags.js +134 -0
  127. package/dist/lib/environment-flags.js.map +1 -0
  128. package/dist/lib/environment-types.d.ts +84 -0
  129. package/dist/lib/environment-types.js +53 -0
  130. package/dist/lib/environment-types.js.map +1 -0
  131. package/dist/lib/format.d.ts +5 -0
  132. package/dist/lib/format.js +8 -0
  133. package/dist/lib/format.js.map +1 -0
  134. package/dist/lib/job-types.d.ts +85 -0
  135. package/dist/lib/job-types.js +117 -0
  136. package/dist/lib/job-types.js.map +1 -0
  137. package/dist/lib/loopback-callback-server.d.ts +35 -0
  138. package/dist/lib/loopback-callback-server.js +162 -0
  139. package/dist/lib/loopback-callback-server.js.map +1 -0
  140. package/dist/lib/mcp/redaction.d.ts +2 -0
  141. package/dist/lib/mcp/redaction.js +24 -0
  142. package/dist/lib/mcp/redaction.js.map +1 -0
  143. package/dist/lib/mcp/result.d.ts +37 -0
  144. package/dist/lib/mcp/result.js +39 -0
  145. package/dist/lib/mcp/result.js.map +1 -0
  146. package/dist/lib/mcp/server.d.ts +5 -0
  147. package/dist/lib/mcp/server.js +24 -0
  148. package/dist/lib/mcp/server.js.map +1 -0
  149. package/dist/lib/mcp/tools.d.ts +235 -0
  150. package/dist/lib/mcp/tools.js +683 -0
  151. package/dist/lib/mcp/tools.js.map +1 -0
  152. package/dist/lib/metadata-common.d.ts +159 -0
  153. package/dist/lib/metadata-common.js +234 -0
  154. package/dist/lib/metadata-common.js.map +1 -0
  155. package/dist/lib/metadata-refresh.d.ts +68 -0
  156. package/dist/lib/metadata-refresh.js +104 -0
  157. package/dist/lib/metadata-refresh.js.map +1 -0
  158. package/dist/lib/open-browser.d.ts +8 -0
  159. package/dist/lib/open-browser.js +40 -0
  160. package/dist/lib/open-browser.js.map +1 -0
  161. package/dist/lib/pipeline-flags.d.ts +10 -0
  162. package/dist/lib/pipeline-flags.js +19 -0
  163. package/dist/lib/pipeline-flags.js.map +1 -0
  164. package/dist/lib/pipeline-types.d.ts +84 -0
  165. package/dist/lib/pipeline-types.js +68 -0
  166. package/dist/lib/pipeline-types.js.map +1 -0
  167. package/dist/lib/project-default-flags.d.ts +41 -0
  168. package/dist/lib/project-default-flags.js +82 -0
  169. package/dist/lib/project-default-flags.js.map +1 -0
  170. package/dist/lib/project-defaults.d.ts +23 -0
  171. package/dist/lib/project-defaults.js +51 -0
  172. package/dist/lib/project-defaults.js.map +1 -0
  173. package/dist/lib/salesforce-id.d.ts +1 -0
  174. package/dist/lib/salesforce-id.js +9 -0
  175. package/dist/lib/salesforce-id.js.map +1 -0
  176. package/dist/lib/user-context-types.d.ts +12 -0
  177. package/dist/lib/user-context-types.js +2 -0
  178. package/dist/lib/user-context-types.js.map +1 -0
  179. package/oclif.manifest.json +2315 -2
  180. package/package.json +5 -3
@@ -0,0 +1,39 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { CicdGateway } from '../../../lib/cicd-gateway.js';
4
+ import { assertRequired, pipelineHeaderFlags, pipelineHeaders } from '../../../lib/pipeline-flags.js';
5
+ import { formatPipelineConnectionTable, normalizePipelineDescribe, pipelineDescribeEndpoint, } from '../../../lib/pipeline-types.js';
6
+ export default class PipelineConnectionList extends AgentiaCommand {
7
+ static description = 'List connections for a Copado pipeline';
8
+ static examples = [
9
+ '<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-id> --user-id <id> --organization-id <id>',
10
+ '<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-id> --user-id <id> --organization-id <id> --json',
11
+ ];
12
+ static flags = {
13
+ ...pipelineHeaderFlags,
14
+ 'pipeline-id': Flags.string({
15
+ description: 'Pipeline Id whose connections should be listed',
16
+ required: true,
17
+ }),
18
+ };
19
+ async run() {
20
+ const { flags } = await this.parse(PipelineConnectionList);
21
+ const connectionFlags = flags;
22
+ const pipelineId = assertRequired(connectionFlags['pipeline-id'], '--pipeline-id');
23
+ const response = await this.withSpinner('Fetching pipeline connections', () => CicdGateway.call({
24
+ endpoint: pipelineDescribeEndpoint(pipelineId),
25
+ headers: pipelineHeaders(connectionFlags),
26
+ method: 'GET',
27
+ }));
28
+ const connections = normalizePipelineDescribe(response).connections ?? [];
29
+ this.display(() => {
30
+ if (connections.length === 0) {
31
+ this.log('No pipeline connections found.');
32
+ return;
33
+ }
34
+ this.log(formatPipelineConnectionTable(connections));
35
+ });
36
+ return connections;
37
+ }
38
+ }
39
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/pipeline/connection/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAiC,eAAe,EAAC,MAAM,gCAAgC,CAAA;AAClI,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EAEzB,wBAAwB,GAEzB,MAAM,gCAAgC,CAAA;AAMvC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,cAAc;IAChE,MAAM,CAAU,WAAW,GAAG,wCAAwC,CAAA;IACtE,MAAM,CAAU,QAAQ,GAAG;QACzB,uGAAuG;QACvG,8GAA8G;KAC/G,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,mBAAmB;QACtB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACxD,MAAM,eAAe,GAAG,KAAoC,CAAA;QAC5D,MAAM,UAAU,GAAG,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC,CAAA;QAClF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAC5E,WAAW,CAAC,IAAI,CAA2B;YACzC,QAAQ,EAAE,wBAAwB,CAAC,UAAU,CAAC;YAC9C,OAAO,EAAE,eAAe,CAAC,eAAe,CAAC;YACzC,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CAAA;QACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,EAAE,CAAA;QAEzE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;gBAC1C,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC,CAAA;QACtD,CAAC,CAAC,CAAA;QAEF,OAAO,WAAW,CAAA;IACpB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { AgentiaCommand } from '../../lib/agentia-command.js';
2
+ import { type PipelineDescribe } from '../../lib/pipeline-types.js';
3
+ export default class PipelineGet extends AgentiaCommand {
4
+ static args: {
5
+ id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
+ };
7
+ static description: string;
8
+ static examples: string[];
9
+ static flags: {
10
+ readonly 'organization-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ readonly 'user-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ };
13
+ run(): Promise<PipelineDescribe>;
14
+ }
@@ -0,0 +1,33 @@
1
+ import { Args } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../lib/agentia-command.js';
3
+ import { CicdGateway } from '../../lib/cicd-gateway.js';
4
+ import { pipelineHeaderFlags, pipelineHeaders } from '../../lib/pipeline-flags.js';
5
+ import { formatPipelineDetail, normalizePipelineDescribe, pipelineDescribeEndpoint, } from '../../lib/pipeline-types.js';
6
+ export default class PipelineGet extends AgentiaCommand {
7
+ static args = {
8
+ id: Args.string({
9
+ description: 'Pipeline Id',
10
+ required: true,
11
+ }),
12
+ };
13
+ static description = 'Get a Copado pipeline';
14
+ static examples = [
15
+ '<%= config.bin %> <%= command.id %> <pipeline-id> --user-id <id> --organization-id <id>',
16
+ '<%= config.bin %> <%= command.id %> <pipeline-id> --user-id <id> --organization-id <id> --json',
17
+ ];
18
+ static flags = pipelineHeaderFlags;
19
+ async run() {
20
+ const { args, flags } = await this.parse(PipelineGet);
21
+ const response = await this.withSpinner('Fetching pipeline', () => CicdGateway.call({
22
+ endpoint: pipelineDescribeEndpoint(args.id),
23
+ headers: pipelineHeaders(flags),
24
+ method: 'GET',
25
+ }));
26
+ const pipeline = normalizePipelineDescribe(response);
27
+ this.display(() => {
28
+ this.log(formatPipelineDetail(pipeline));
29
+ });
30
+ return pipeline;
31
+ }
32
+ }
33
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/pipeline/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAA;AAEhC,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,mBAAmB,EAAiC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAC/G,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAEzB,wBAAwB,GAEzB,MAAM,6BAA6B,CAAA;AAEpC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,cAAc;IACrD,MAAM,CAAU,IAAI,GAAG;QACrB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC;YACd,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAA;IACD,MAAM,CAAU,WAAW,GAAG,uBAAuB,CAAA;IACrD,MAAM,CAAU,QAAQ,GAAG;QACzB,yFAAyF;QACzF,gGAAgG;KACjG,CAAA;IACD,MAAM,CAAU,KAAK,GAAG,mBAAmB,CAAA;IAEpC,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAChE,WAAW,CAAC,IAAI,CAA2B;YACzC,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,eAAe,CAAC,KAAiC,CAAC;YAC3D,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CAAA;QACD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;QAEpD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { AgentiaCommand } from '../../lib/agentia-command.js';
2
+ import { type Pipeline } from '../../lib/pipeline-types.js';
3
+ export default class PipelineList extends AgentiaCommand {
4
+ static description: string;
5
+ static examples: string[];
6
+ static flags: {
7
+ readonly 'organization-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ readonly 'user-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ };
10
+ run(): Promise<Pipeline[]>;
11
+ }
@@ -0,0 +1,30 @@
1
+ import { AgentiaCommand } from '../../lib/agentia-command.js';
2
+ import { CicdGateway } from '../../lib/cicd-gateway.js';
3
+ import { pipelineHeaderFlags, pipelineHeaders } from '../../lib/pipeline-flags.js';
4
+ import { formatPipelineTable, normalizePipelines, pipelineListEndpoint, } from '../../lib/pipeline-types.js';
5
+ export default class PipelineList extends AgentiaCommand {
6
+ static description = 'List Copado pipelines';
7
+ static examples = [
8
+ '<%= config.bin %> <%= command.id %> --user-id <id> --organization-id <id>',
9
+ '<%= config.bin %> <%= command.id %> --user-id <id> --organization-id <id> --json',
10
+ ];
11
+ static flags = pipelineHeaderFlags;
12
+ async run() {
13
+ const { flags } = await this.parse(PipelineList);
14
+ const response = await this.withSpinner('Fetching pipelines', () => CicdGateway.call({
15
+ endpoint: pipelineListEndpoint(),
16
+ headers: pipelineHeaders(flags),
17
+ method: 'GET',
18
+ }));
19
+ const pipelines = normalizePipelines(response);
20
+ this.display(() => {
21
+ if (pipelines.length === 0) {
22
+ this.log('No pipelines found.');
23
+ return;
24
+ }
25
+ this.log(formatPipelineTable(pipelines));
26
+ });
27
+ return pipelines;
28
+ }
29
+ }
30
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/pipeline/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,mBAAmB,EAAiC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAC/G,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAElB,oBAAoB,GAErB,MAAM,6BAA6B,CAAA;AAEpC,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,cAAc;IACtD,MAAM,CAAU,WAAW,GAAG,uBAAuB,CAAA;IACrD,MAAM,CAAU,QAAQ,GAAG;QACzB,2EAA2E;QAC3E,kFAAkF;KACnF,CAAA;IACD,MAAM,CAAU,KAAK,GAAG,mBAAmB,CAAA;IAEpC,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,GAAG,EAAE,CACjE,WAAW,CAAC,IAAI,CAAuB;YACrC,QAAQ,EAAE,oBAAoB,EAAE;YAChC,OAAO,EAAE,eAAe,CAAC,KAAiC,CAAC;YAC3D,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CAAA;QACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;gBAC/B,OAAM;YACR,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,OAAO,SAAS,CAAA;IAClB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { type ProjectDefaultScope, type ResolvedProjectDefault } from '../../../lib/project-defaults.js';
3
+ export type ProjectDefaultGetResult = {
4
+ defaults: ResolvedProjectDefault[];
5
+ scope: 'effective' | ProjectDefaultScope;
6
+ };
7
+ export default class ProjectDefaultGet extends AgentiaCommand {
8
+ static description: string;
9
+ static examples: string[];
10
+ static flags: {
11
+ readonly 'assign-me': import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ readonly environment: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ readonly epic: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ readonly feature: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ readonly global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ readonly project: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ readonly sprint: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ readonly team: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ };
20
+ run(): Promise<ProjectDefaultGetResult>;
21
+ }
@@ -0,0 +1,44 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { readDefaults, resolveDefaults } from '../../../lib/defaults-store.js';
3
+ import { collectSelectedKeys, projectDefaultSelectorFlags } from '../../../lib/project-default-flags.js';
4
+ import { formatProjectDefaultLine, PROJECT_DEFAULT_KEYS, } from '../../../lib/project-defaults.js';
5
+ export default class ProjectDefaultGet extends AgentiaCommand {
6
+ static description = 'Show project default values for the current project or globally';
7
+ static examples = [
8
+ '<%= config.bin %> <%= command.id %>',
9
+ '<%= config.bin %> <%= command.id %> --project --environment',
10
+ '<%= config.bin %> <%= command.id %> --global',
11
+ '<%= config.bin %> <%= command.id %> --json',
12
+ ];
13
+ static flags = projectDefaultSelectorFlags;
14
+ async run() {
15
+ const { flags } = await this.parse(ProjectDefaultGet);
16
+ const selectedKeys = collectSelectedKeys(flags);
17
+ const keys = selectedKeys.length > 0 ? selectedKeys : [...PROJECT_DEFAULT_KEYS];
18
+ if (flags.global) {
19
+ const globalDefaults = await readDefaults('global');
20
+ const defaults = keys.map((key) => ({
21
+ key,
22
+ source: globalDefaults[key] === undefined ? undefined : 'global',
23
+ value: globalDefaults[key],
24
+ }));
25
+ for (const resolved of defaults) {
26
+ this.log(formatProjectDefaultLine(resolved));
27
+ }
28
+ return {
29
+ defaults,
30
+ scope: 'global',
31
+ };
32
+ }
33
+ const [localDefaults, globalDefaults] = await Promise.all([readDefaults('local'), readDefaults('global')]);
34
+ const defaults = resolveDefaults(localDefaults, globalDefaults, keys);
35
+ for (const resolved of defaults) {
36
+ this.log(formatProjectDefaultLine(resolved));
37
+ }
38
+ return {
39
+ defaults,
40
+ scope: 'effective',
41
+ };
42
+ }
43
+ }
44
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/project/default/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,gCAAgC,CAAA;AAC5E,OAAO,EAAC,mBAAmB,EAAE,2BAA2B,EAAC,MAAM,uCAAuC,CAAA;AACtG,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GAIrB,MAAM,kCAAkC,CAAA;AAOzC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,cAAc;IAC3D,MAAM,CAAU,WAAW,GAAG,iEAAiE,CAAA;IAC/F,MAAM,CAAU,QAAQ,GAAG;QACzB,qCAAqC;QACrC,6DAA6D;QAC7D,8CAA8C;QAC9C,4CAA4C;KAC7C,CAAA;IACD,MAAM,CAAU,KAAK,GAAG,2BAA2B,CAAA;IAE5C,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,IAAI,GAAwB,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAA;QAEpG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAA;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClC,GAAG;gBACH,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,QAAkB;gBAC3E,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;aAC3B,CAAC,CAAC,CAAA;YAEH,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC9C,CAAC;YAED,OAAO;gBACL,QAAQ;gBACR,KAAK,EAAE,QAAQ;aAChB,CAAA;QACH,CAAC;QAED,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC1G,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;QAErE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,WAAW;SACnB,CAAA;IACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { type ProjectDefaultScope, type ResolvedProjectDefault } from '../../../lib/project-defaults.js';
3
+ export type ProjectDefaultSetResult = {
4
+ defaults: ResolvedProjectDefault[];
5
+ scope: ProjectDefaultScope;
6
+ };
7
+ export default class ProjectDefaultSet extends AgentiaCommand {
8
+ static description: string;
9
+ static examples: string[];
10
+ static flags: {
11
+ 'assign-me': import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ environment: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ epic: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ feature: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ sprint: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ team: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ };
20
+ run(): Promise<ProjectDefaultSetResult>;
21
+ }
@@ -0,0 +1,55 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { writeDefaults } from '../../../lib/defaults-store.js';
3
+ import { buildSetValues, collectSetUpdates, formatFlagName, projectDefaultBooleanFlags, projectDefaultStringFlags, } from '../../../lib/project-default-flags.js';
4
+ import { formatProjectDefaultValue, PROJECT_DEFAULT_LABELS, } from '../../../lib/project-defaults.js';
5
+ export default class ProjectDefaultSet extends AgentiaCommand {
6
+ static description = 'Set project default values for the current project or globally';
7
+ static examples = [
8
+ '<%= config.bin %> <%= command.id %> --project my-project --team platform',
9
+ '<%= config.bin %> <%= command.id %> --environment dev --assign-me',
10
+ '<%= config.bin %> <%= command.id %> --project my-project --global',
11
+ '<%= config.bin %> <%= command.id %> --project my-project --json',
12
+ ];
13
+ static flags = {
14
+ ...projectDefaultStringFlags,
15
+ ...projectDefaultBooleanFlags,
16
+ };
17
+ async run() {
18
+ const { flags } = await this.parse(ProjectDefaultSet);
19
+ const selectedKeys = collectSetUpdates(flags);
20
+ if (selectedKeys.length === 0) {
21
+ this.error('Must provide at least one default flag to set.', {
22
+ exit: 2,
23
+ suggestions: [
24
+ `${this.config.bin} project default set --project <project>`,
25
+ `${this.config.bin} project default set --environment <environment> --assign-me`,
26
+ ],
27
+ });
28
+ }
29
+ const values = buildSetValues(flags);
30
+ for (const key of selectedKeys) {
31
+ if (key === 'assignMe') {
32
+ continue;
33
+ }
34
+ const value = values[key];
35
+ if (typeof value === 'string' && value.trim().length === 0) {
36
+ this.error(`${formatFlagName(key)} value cannot be empty`, { exit: 2 });
37
+ }
38
+ }
39
+ const scope = flags.global ? 'global' : 'local';
40
+ const stored = await writeDefaults(scope, values);
41
+ const defaults = selectedKeys.map((key) => ({
42
+ key,
43
+ source: scope,
44
+ value: stored[key],
45
+ }));
46
+ for (const resolved of defaults) {
47
+ this.log(`Set ${PROJECT_DEFAULT_LABELS[resolved.key]} to ${formatProjectDefaultValue(resolved.value)} (${scope}).`);
48
+ }
49
+ return {
50
+ defaults,
51
+ scope,
52
+ };
53
+ }
54
+ }
55
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/commands/project/default/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GAGvB,MAAM,kCAAkC,CAAA;AAOzC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,cAAc;IAC3D,MAAM,CAAU,WAAW,GAAG,gEAAgE,CAAA;IAC9F,MAAM,CAAU,QAAQ,GAAG;QACzB,0EAA0E;QAC1E,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;KAClE,CAAA;IACD,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,yBAAyB;QAC5B,GAAG,0BAA0B;KAC9B,CAAA;IAEM,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACnD,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAE7C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,gDAAgD,EAAE;gBAC3D,IAAI,EAAE,CAAC;gBACP,WAAW,EAAE;oBACX,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,0CAA0C;oBAC5D,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,8DAA8D;iBACjF;aACF,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QAEpC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBACvB,SAAQ;YACV,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;YAEzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAwB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;QACpE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACjD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC1C,GAAG;YACH,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;SACnB,CAAC,CAAC,CAAA;QAEH,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CACN,OAAO,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAC1G,CAAA;QACH,CAAC;QAED,OAAO;YACL,QAAQ;YACR,KAAK;SACN,CAAA;IACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { type ProjectDefaultKey, type ProjectDefaultScope } from '../../../lib/project-defaults.js';
3
+ export type ProjectDefaultUnsetResult = {
4
+ removed: ProjectDefaultKey[];
5
+ scope: ProjectDefaultScope;
6
+ };
7
+ export default class ProjectDefaultUnset extends AgentiaCommand {
8
+ static description: string;
9
+ static examples: string[];
10
+ static flags: {
11
+ readonly 'assign-me': import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ readonly environment: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ readonly epic: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ readonly feature: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ readonly global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ readonly project: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ readonly sprint: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ readonly team: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ };
20
+ run(): Promise<ProjectDefaultUnsetResult>;
21
+ }
@@ -0,0 +1,45 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { readDefaults, unsetDefaults } from '../../../lib/defaults-store.js';
3
+ import { collectSelectedKeys, projectDefaultSelectorFlags } from '../../../lib/project-default-flags.js';
4
+ import { formatProjectDefaultValue, PROJECT_DEFAULT_LABELS, } from '../../../lib/project-defaults.js';
5
+ export default class ProjectDefaultUnset extends AgentiaCommand {
6
+ static description = 'Remove project default values from the current project or globally';
7
+ static examples = [
8
+ '<%= config.bin %> <%= command.id %> --project',
9
+ '<%= config.bin %> <%= command.id %> --environment --team',
10
+ '<%= config.bin %> <%= command.id %> --assign-me --global',
11
+ '<%= config.bin %> <%= command.id %> --project --json',
12
+ ];
13
+ static flags = projectDefaultSelectorFlags;
14
+ async run() {
15
+ const { flags } = await this.parse(ProjectDefaultUnset);
16
+ const selectedKeys = collectSelectedKeys(flags);
17
+ if (selectedKeys.length === 0) {
18
+ this.error('Must provide at least one default flag to unset.', {
19
+ exit: 2,
20
+ suggestions: [
21
+ `${this.config.bin} project default unset --project`,
22
+ `${this.config.bin} project default unset --environment --team`,
23
+ ],
24
+ });
25
+ }
26
+ const scope = flags.global ? 'global' : 'local';
27
+ const previousDefaults = await readDefaults(scope);
28
+ const removed = selectedKeys.filter((key) => previousDefaults[key] !== undefined);
29
+ await unsetDefaults(scope, selectedKeys);
30
+ for (const key of selectedKeys) {
31
+ const label = PROJECT_DEFAULT_LABELS[key];
32
+ const previousValue = previousDefaults[key];
33
+ if (previousValue === undefined) {
34
+ this.log(`${label} was not set (${scope}).`);
35
+ continue;
36
+ }
37
+ this.log(`Removed ${label} default (${formatProjectDefaultValue(previousValue)}) from ${scope}.`);
38
+ }
39
+ return {
40
+ removed,
41
+ scope,
42
+ };
43
+ }
44
+ }
45
+ //# sourceMappingURL=unset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unset.js","sourceRoot":"","sources":["../../../../src/commands/project/default/unset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAC,YAAY,EAAE,aAAa,EAAC,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAC,mBAAmB,EAAE,2BAA2B,EAAC,MAAM,uCAAuC,CAAA;AACtG,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GAGvB,MAAM,kCAAkC,CAAA;AAOzC,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,cAAc;IAC7D,MAAM,CAAU,WAAW,GAAG,oEAAoE,CAAA;IAClG,MAAM,CAAU,QAAQ,GAAG;QACzB,+CAA+C;QAC/C,0DAA0D;QAC1D,0DAA0D;QAC1D,sDAAsD;KACvD,CAAA;IACD,MAAM,CAAU,KAAK,GAAG,2BAA2B,CAAA;IAE5C,KAAK,CAAC,GAAG;QACd,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACrD,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAE/C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,kDAAkD,EAAE;gBAC7D,IAAI,EAAE,CAAC;gBACP,WAAW,EAAE;oBACX,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,kCAAkC;oBACpD,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,6CAA6C;iBAChE;aACF,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,KAAK,GAAwB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;QACpE,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAA;QAEjF,MAAM,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;QAExC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;YACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YAE3C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,iBAAiB,KAAK,IAAI,CAAC,CAAA;gBAC5C,SAAQ;YACV,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,aAAa,yBAAyB,CAAC,aAAa,CAAC,UAAU,KAAK,GAAG,CAAC,CAAA;QACnG,CAAC;QAED,OAAO;YACL,OAAO;YACP,KAAK;SACN,CAAA;IACH,CAAC"}
@@ -0,0 +1 @@
1
+ export { run } from '@oclif/core';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { run } from '@oclif/core';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,aAAa,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { Command } from '@oclif/core';
2
+ export declare abstract class AgentiaCommand extends Command {
3
+ static enableJsonFlag: boolean;
4
+ protected display(render: () => void): void;
5
+ protected toSuccessJson(result: unknown): unknown;
6
+ protected withSpinner<T>(message: string, action: () => Promise<T>): Promise<T>;
7
+ }
@@ -0,0 +1,28 @@
1
+ import { Command, ux } from '@oclif/core';
2
+ export class AgentiaCommand extends Command {
3
+ static enableJsonFlag = true;
4
+ display(render) {
5
+ if (!this.jsonEnabled()) {
6
+ render();
7
+ }
8
+ }
9
+ toSuccessJson(result) {
10
+ return { result, status: 0 };
11
+ }
12
+ async withSpinner(message, action) {
13
+ if (this.jsonEnabled()) {
14
+ return action();
15
+ }
16
+ ux.action.start(message);
17
+ try {
18
+ const result = await action();
19
+ ux.action.stop();
20
+ return result;
21
+ }
22
+ catch (error) {
23
+ ux.action.stop(ux.colorize('red', 'failed'));
24
+ throw error;
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=agentia-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentia-command.js","sourceRoot":"","sources":["../../src/lib/agentia-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,EAAE,EAAC,MAAM,aAAa,CAAA;AAEvC,MAAM,OAAgB,cAAe,SAAQ,OAAO;IAClD,MAAM,CAAU,cAAc,GAAG,IAAI,CAAA;IAE3B,OAAO,CAAC,MAAkB;QAClC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,EAAE,CAAA;QACV,CAAC;IACH,CAAC;IAEkB,aAAa,CAAC,MAAe;QAC9C,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAC,CAAA;IAC5B,CAAC;IAES,KAAK,CAAC,WAAW,CAAI,OAAe,EAAE,MAAwB;QACtE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,OAAO,MAAM,EAAE,CAAA;QACjB,CAAC;QAED,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAExB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAA;YAC7B,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YAChB,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;YAC5C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const AGENTIA_OAUTH_ERROR_CODES: {
2
+ readonly CREDENTIAL_NOT_FOUND: "Credential not found";
3
+ readonly DATALINK_ERROR: "Failed to load data from data-link";
4
+ readonly DATALINK_PATCH_FAILED: "Failed to update credential in data-link";
5
+ readonly ENVIRONMENT_NOT_FOUND: "Environment not found";
6
+ readonly INVALID_REQUEST: "Invalid request parameters";
7
+ readonly INVALID_SIGNATURE: "Signature validation failed";
8
+ readonly KRYPTOS_ERROR: "Failed to decrypt signature";
9
+ readonly OAUTH_STATE_NOT_FOUND: "OAuth state not found or expired";
10
+ readonly PKCE_MISSING: "OAuth PKCE data missing";
11
+ readonly SECRET_WRITE_FAILED: "Failed to store OAuth tokens";
12
+ readonly TOKEN_EXCHANGE_FAILED: "Salesforce token exchange failed";
13
+ readonly UNEXPECTED_ERROR: "Unexpected error during authentication";
14
+ };
15
+ export type AgentiaOAuthErrorCode = keyof typeof AGENTIA_OAUTH_ERROR_CODES;
16
+ export declare function defaultDescriptionForAgentiaOAuthError(errorCode: string): string | undefined;
17
+ export declare function formatAgentiaOAuthError(errorCode: string, errorDescription?: null | string): string;
@@ -0,0 +1,30 @@
1
+ export const AGENTIA_OAUTH_ERROR_CODES = {
2
+ CREDENTIAL_NOT_FOUND: 'Credential not found',
3
+ DATALINK_ERROR: 'Failed to load data from data-link',
4
+ DATALINK_PATCH_FAILED: 'Failed to update credential in data-link',
5
+ ENVIRONMENT_NOT_FOUND: 'Environment not found',
6
+ INVALID_REQUEST: 'Invalid request parameters',
7
+ INVALID_SIGNATURE: 'Signature validation failed',
8
+ KRYPTOS_ERROR: 'Failed to decrypt signature',
9
+ OAUTH_STATE_NOT_FOUND: 'OAuth state not found or expired',
10
+ PKCE_MISSING: 'OAuth PKCE data missing',
11
+ SECRET_WRITE_FAILED: 'Failed to store OAuth tokens',
12
+ TOKEN_EXCHANGE_FAILED: 'Salesforce token exchange failed',
13
+ UNEXPECTED_ERROR: 'Unexpected error during authentication',
14
+ };
15
+ export function defaultDescriptionForAgentiaOAuthError(errorCode) {
16
+ if (errorCode in AGENTIA_OAUTH_ERROR_CODES) {
17
+ return AGENTIA_OAUTH_ERROR_CODES[errorCode];
18
+ }
19
+ return undefined;
20
+ }
21
+ export function formatAgentiaOAuthError(errorCode, errorDescription) {
22
+ const trimmedCode = errorCode.trim();
23
+ const trimmedDescription = errorDescription?.trim() ?? '';
24
+ const description = trimmedDescription || defaultDescriptionForAgentiaOAuthError(trimmedCode) || 'Authentication failed';
25
+ if (trimmedCode.length > 0) {
26
+ return `Authentication failed (${trimmedCode}): ${description}`;
27
+ }
28
+ return `Authentication failed: ${description}`;
29
+ }
30
+ //# sourceMappingURL=agentia-oauth-error-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentia-oauth-error-codes.js","sourceRoot":"","sources":["../../src/lib/agentia-oauth-error-codes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,oBAAoB,EAAE,sBAAsB;IAC5C,cAAc,EAAE,oCAAoC;IACpD,qBAAqB,EAAE,0CAA0C;IACjE,qBAAqB,EAAE,uBAAuB;IAC9C,eAAe,EAAE,4BAA4B;IAC7C,iBAAiB,EAAE,6BAA6B;IAChD,aAAa,EAAE,6BAA6B;IAC5C,qBAAqB,EAAE,kCAAkC;IACzD,YAAY,EAAE,yBAAyB;IACvC,mBAAmB,EAAE,8BAA8B;IACnD,qBAAqB,EAAE,kCAAkC;IACzD,gBAAgB,EAAE,wCAAwC;CAClD,CAAA;AAIV,MAAM,UAAU,sCAAsC,CAAC,SAAiB;IACtE,IAAI,SAAS,IAAI,yBAAyB,EAAE,CAAC;QAC3C,OAAO,yBAAyB,CAAC,SAAkC,CAAC,CAAA;IACtE,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAiB,EAAE,gBAAgC;IACzF,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,CAAA;IACpC,MAAM,kBAAkB,GAAG,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACzD,MAAM,WAAW,GACf,kBAAkB,IAAI,sCAAsC,CAAC,WAAW,CAAC,IAAI,uBAAuB,CAAA;IAEtG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,0BAA0B,WAAW,MAAM,WAAW,EAAE,CAAA;IACjE,CAAC;IAED,OAAO,0BAA0B,WAAW,EAAE,CAAA;AAChD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function assertRequired(value: string | undefined, flagName: string): string;
@@ -0,0 +1,7 @@
1
+ export function assertRequired(value, flagName) {
2
+ if (value === undefined || value.trim().length === 0) {
3
+ throw new Error(`Requires \`${flagName}\`.`);
4
+ }
5
+ return value;
6
+ }
7
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/lib/assert.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,KAAyB,EAAE,QAAgB;IACxE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,KAAK,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { URL } from 'node:url';
2
+ import { type CicdRegion } from './cicd-region.js';
3
+ export type CicdRequest = {
4
+ body?: unknown;
5
+ endpoint: string;
6
+ headers?: Record<string, string>;
7
+ method: 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT';
8
+ };
9
+ export type CicdResponse<T = unknown> = {
10
+ data?: T;
11
+ message?: string;
12
+ result?: T;
13
+ status?: string;
14
+ };
15
+ export type CicdErrorDetail = {
16
+ category?: string;
17
+ message?: string;
18
+ };
19
+ export type CicdErrorData = {
20
+ code?: string;
21
+ details?: CicdErrorDetail | CicdErrorDetail[];
22
+ };
23
+ export type CicdErrorResponse = {
24
+ data?: CicdErrorData;
25
+ message?: string;
26
+ status?: string;
27
+ };
28
+ export type CicdDebugRequest = {
29
+ body: unknown;
30
+ headers: Record<string, string>;
31
+ method: string;
32
+ url: string;
33
+ };
34
+ export type CicdCredentials = {
35
+ apiKey: string;
36
+ baseUrl: string;
37
+ };
38
+ export type CicdEndpointOptions = {
39
+ customUrl?: string;
40
+ region?: CicdRegion;
41
+ };
42
+ export type HttpRequestFn = (url: URL, method: string, headers: Record<string, string>, body: unknown) => Promise<string>;
43
+ export declare function gatewayUserAgent(): string;
44
+ export declare function createTransactionId(): string;
45
+ export declare function normalizeCicdBaseUrl(value: string): string;
46
+ export declare function sanitizeCicdErrorMessage(message: string): string;
47
+ export declare function formatCicdGatewayError(status: number, raw: string): Error;
48
+ export declare function cicdApiUrl(serverUrl: string, apiKey: string): URL;
49
+ export declare function maskedCicdApiUrl(serverUrl: string): string;
50
+ export declare function discoverCicdBaseUrl(apiKey: string): Promise<string>;
51
+ export declare function resolveAndValidateCicdEndpoint(apiKey: string, options: CicdEndpointOptions): Promise<string>;
52
+ export declare function setHttpRequestForTests(requestFn: HttpRequestFn): void;
53
+ export declare function resetHttpRequestForTests(): void;
54
+ export declare class CicdGateway {
55
+ static call<T = unknown>(request: CicdRequest, onDebugRequest?: (debugRequest: CicdDebugRequest) => void): Promise<T>;
56
+ static resolveAndValidateEndpoint(apiKey: string, options: CicdEndpointOptions): Promise<string>;
57
+ static validateCredentials(apiKey: string, baseUrl: string): Promise<void>;
58
+ }