@copado/agentia-cli 1.2.0 → 1.4.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 (302) hide show
  1. package/CHANGELOG.md +58 -1
  2. package/README.md +2299 -1615
  3. package/dist/commands/auth/get.js +21 -1
  4. package/dist/commands/auth/set.js +13 -0
  5. package/dist/commands/auth/unset.js +37 -0
  6. package/dist/commands/cicd/cloud/commit.js +6 -5
  7. package/dist/commands/cicd/cloud/promote.js +44 -8
  8. package/dist/commands/cicd/credential/auth/status.js +2 -2
  9. package/dist/commands/cicd/credential/auth/web/login.js +2 -2
  10. package/dist/commands/cicd/credential/create.js +2 -2
  11. package/dist/commands/cicd/credential/list.js +4 -3
  12. package/dist/commands/cicd/credential/open.js +2 -2
  13. package/dist/commands/cicd/credential/update.js +2 -2
  14. package/dist/commands/cicd/data/commit/create.js +2 -2
  15. package/dist/commands/cicd/data/commit/list.js +2 -2
  16. package/dist/commands/cicd/data/dataset-file/content.js +2 -2
  17. package/dist/commands/cicd/data/dataset-file/list.js +2 -2
  18. package/dist/commands/cicd/data/filter/add.js +2 -2
  19. package/dist/commands/cicd/data/filter/delete.js +2 -2
  20. package/dist/commands/cicd/data/filter/list.js +2 -2
  21. package/dist/commands/cicd/data/filter/update.js +2 -2
  22. package/dist/commands/cicd/data/formula/create.js +2 -2
  23. package/dist/commands/cicd/data/formula/list.js +2 -2
  24. package/dist/commands/cicd/data/formula/update.js +2 -2
  25. package/dist/commands/cicd/data/records/match.js +2 -2
  26. package/dist/commands/cicd/data/records/search.js +2 -2
  27. package/dist/commands/cicd/data/sobject/fields.js +2 -2
  28. package/dist/commands/cicd/data/sobject/relationships.js +2 -2
  29. package/dist/commands/cicd/data/sync/apply.js +2 -2
  30. package/dist/commands/cicd/data/sync/preview-updates.js +2 -2
  31. package/dist/commands/cicd/data/template/convert-old.js +2 -2
  32. package/dist/commands/cicd/data/template/create.js +2 -2
  33. package/dist/commands/cicd/data/template/delete.js +2 -2
  34. package/dist/commands/cicd/data/template/get-detail.js +2 -2
  35. package/dist/commands/cicd/data/template/get.js +2 -2
  36. package/dist/commands/cicd/data/template/list.js +2 -2
  37. package/dist/commands/cicd/data/template/open.js +2 -2
  38. package/dist/commands/cicd/data/template/save-detail.js +2 -2
  39. package/dist/commands/cicd/environment/auth/status.js +2 -2
  40. package/dist/commands/cicd/environment/auth/web/login.js +2 -2
  41. package/dist/commands/cicd/environment/create.js +2 -2
  42. package/dist/commands/cicd/environment/get.js +2 -2
  43. package/dist/commands/cicd/environment/list.js +4 -3
  44. package/dist/commands/cicd/environment/open.js +2 -2
  45. package/dist/commands/cicd/environment/update.js +2 -2
  46. package/dist/commands/cicd/extension/create.js +2 -2
  47. package/dist/commands/cicd/extension/install.js +2 -2
  48. package/dist/commands/cicd/extension/package.js +2 -2
  49. package/dist/commands/cicd/extension/publish.js +2 -2
  50. package/dist/commands/cicd/extension/uninstall.js +2 -2
  51. package/dist/commands/cicd/extension/validate.js +2 -2
  52. package/dist/commands/cicd/extension-configuration/get.js +2 -2
  53. package/dist/commands/cicd/extension-configuration/list.js +4 -3
  54. package/dist/commands/cicd/extension-configuration/open.js +2 -2
  55. package/dist/commands/cicd/function/defaults.js +2 -2
  56. package/dist/commands/cicd/function/delete.js +2 -2
  57. package/dist/commands/cicd/function/get.js +2 -2
  58. package/dist/commands/cicd/function/list.js +12 -15
  59. package/dist/commands/cicd/function/open.js +2 -2
  60. package/dist/commands/cicd/function/result/get.js +2 -2
  61. package/dist/commands/cicd/function/result/log/get.js +2 -2
  62. package/dist/commands/cicd/function/run-local.js +2 -2
  63. package/dist/commands/cicd/function/run.js +2 -2
  64. package/dist/commands/cicd/function/upsert.js +2 -2
  65. package/dist/commands/cicd/health-check.js +2 -2
  66. package/dist/commands/cicd/job/get.js +2 -2
  67. package/dist/commands/cicd/job/kill.js +2 -2
  68. package/dist/commands/cicd/job/list.js +4 -3
  69. package/dist/commands/cicd/job/log/get.js +2 -2
  70. package/dist/commands/cicd/job/open.js +2 -2
  71. package/dist/commands/cicd/job/pause.js +2 -2
  72. package/dist/commands/cicd/job/result-file/get.js +13 -8
  73. package/dist/commands/cicd/job/result-file/list.js +2 -2
  74. package/dist/commands/cicd/job/resume.js +2 -2
  75. package/dist/commands/cicd/job/run.js +2 -2
  76. package/dist/commands/cicd/metadata/content/compare.js +2 -2
  77. package/dist/commands/cicd/metadata/content/get.js +2 -2
  78. package/dist/commands/cicd/metadata/dependency/list.js +44 -21
  79. package/dist/commands/cicd/metadata/explore.js +2 -2
  80. package/dist/commands/cicd/metadata/index/compare.js +2 -2
  81. package/dist/commands/cicd/metadata/list.js +2 -2
  82. package/dist/commands/cicd/metadata/refresh/deleted.js +2 -2
  83. package/dist/commands/cicd/metadata/refresh/run.js +2 -2
  84. package/dist/commands/cicd/metadata/refresh/status.js +2 -2
  85. package/dist/commands/cicd/notification/configure.js +2 -2
  86. package/dist/commands/cicd/notification/get.js +2 -2
  87. package/dist/commands/cicd/pipeline/automation/activate.js +2 -2
  88. package/dist/commands/cicd/pipeline/automation/create.js +2 -2
  89. package/dist/commands/cicd/pipeline/automation/deactivate.js +2 -2
  90. package/dist/commands/cicd/pipeline/automation/delete.js +2 -2
  91. package/dist/commands/cicd/pipeline/automation/get.js +2 -2
  92. package/dist/commands/cicd/pipeline/automation/list.js +4 -3
  93. package/dist/commands/cicd/pipeline/automation/open.js +2 -2
  94. package/dist/commands/cicd/pipeline/automation/update.js +2 -2
  95. package/dist/commands/cicd/pipeline/connection/create.js +2 -2
  96. package/dist/commands/cicd/pipeline/connection/delete.js +2 -2
  97. package/dist/commands/cicd/pipeline/connection/list.js +2 -2
  98. package/dist/commands/cicd/pipeline/connection/open.js +2 -2
  99. package/dist/commands/cicd/pipeline/connection/update.js +2 -2
  100. package/dist/commands/cicd/pipeline/create.js +2 -2
  101. package/dist/commands/cicd/pipeline/get.js +2 -2
  102. package/dist/commands/cicd/pipeline/list.js +4 -3
  103. package/dist/commands/cicd/pipeline/open.js +2 -2
  104. package/dist/commands/cicd/pipeline/quality-gate/activate.js +2 -2
  105. package/dist/commands/cicd/pipeline/quality-gate/create.js +2 -2
  106. package/dist/commands/cicd/pipeline/quality-gate/deactivate.js +2 -2
  107. package/dist/commands/cicd/pipeline/quality-gate/delete.js +2 -2
  108. package/dist/commands/cicd/pipeline/quality-gate/get.js +2 -2
  109. package/dist/commands/cicd/pipeline/quality-gate/list.js +4 -3
  110. package/dist/commands/cicd/pipeline/quality-gate/open.js +2 -2
  111. package/dist/commands/cicd/pipeline/quality-gate/update.js +2 -2
  112. package/dist/commands/cicd/pipeline/stage-connection/create.js +2 -2
  113. package/dist/commands/cicd/pipeline/stage-connection/delete.js +2 -2
  114. package/dist/commands/cicd/pipeline/stage-connection/list.js +2 -2
  115. package/dist/commands/cicd/pipeline/stage-connection/open.js +2 -2
  116. package/dist/commands/cicd/pipeline/stage-connection/update.js +2 -2
  117. package/dist/commands/cicd/pipeline/update.js +2 -2
  118. package/dist/commands/cicd/project/create.js +2 -2
  119. package/dist/commands/cicd/project/default/get.js +2 -2
  120. package/dist/commands/cicd/project/default/set.js +2 -2
  121. package/dist/commands/cicd/project/default/unset.js +2 -2
  122. package/dist/commands/cicd/project/delete.js +2 -2
  123. package/dist/commands/cicd/project/get.js +2 -2
  124. package/dist/commands/cicd/project/list.js +4 -3
  125. package/dist/commands/cicd/project/open.js +2 -2
  126. package/dist/commands/cicd/project/update.js +2 -2
  127. package/dist/commands/cicd/promotion/conflict/get.js +2 -2
  128. package/dist/commands/cicd/promotion/conflict/list.js +2 -2
  129. package/dist/commands/cicd/promotion/conflict/resolve.js +2 -2
  130. package/dist/commands/cicd/promotion/conflict/unresolve.js +2 -2
  131. package/dist/commands/cicd/promotion/get.js +2 -2
  132. package/dist/commands/cicd/promotion/job-step/update.js +2 -2
  133. package/dist/commands/cicd/promotion/list.js +4 -3
  134. package/dist/commands/cicd/promotion/open.js +2 -2
  135. package/dist/commands/cicd/promotion/queue/list.js +28 -0
  136. package/dist/commands/cicd/promotion/queue/remove.js +37 -0
  137. package/dist/commands/cicd/promotion/run.js +2 -2
  138. package/dist/commands/cicd/promotion/status.js +29 -0
  139. package/dist/commands/cicd/repository/auth/https/configure.js +2 -2
  140. package/dist/commands/cicd/repository/auth/oauth/login.js +2 -2
  141. package/dist/commands/cicd/repository/auth/setup.js +2 -2
  142. package/dist/commands/cicd/repository/auth/ssh/configure.js +2 -2
  143. package/dist/commands/cicd/repository/create.js +2 -2
  144. package/dist/commands/cicd/repository/delete.js +2 -2
  145. package/dist/commands/cicd/repository/get.js +2 -2
  146. package/dist/commands/cicd/repository/list.js +7 -10
  147. package/dist/commands/cicd/repository/open.js +2 -2
  148. package/dist/commands/cicd/repository/reset.js +2 -2
  149. package/dist/commands/cicd/repository/update.js +2 -2
  150. package/dist/commands/cicd/repository/validate.js +2 -2
  151. package/dist/commands/cicd/stage/create.js +2 -2
  152. package/dist/commands/cicd/stage/delete.js +2 -2
  153. package/dist/commands/cicd/stage/get.js +2 -2
  154. package/dist/commands/cicd/stage/list.js +4 -3
  155. package/dist/commands/cicd/stage/open.js +2 -2
  156. package/dist/commands/cicd/stage/update.js +2 -2
  157. package/dist/commands/cicd/template/defaults.js +2 -2
  158. package/dist/commands/cicd/template/delete.js +2 -2
  159. package/dist/commands/cicd/template/get.js +2 -2
  160. package/dist/commands/cicd/template/list.js +11 -14
  161. package/dist/commands/cicd/template/upsert.js +2 -2
  162. package/dist/commands/cicd/user/get.js +2 -2
  163. package/dist/commands/cicd/work/ahead-behind.js +2 -2
  164. package/dist/commands/cicd/work/create.js +2 -2
  165. package/dist/commands/cicd/work/delete.js +4 -4
  166. package/dist/commands/cicd/work/deployment-step/create.js +2 -2
  167. package/dist/commands/cicd/work/deployment-step/delete.js +2 -2
  168. package/dist/commands/cicd/work/deployment-step/list.js +2 -2
  169. package/dist/commands/cicd/work/deployment-step/reorder.js +2 -2
  170. package/dist/commands/cicd/work/deployment-step/salesforce-flows.js +2 -2
  171. package/dist/commands/cicd/work/deployment-step/types.js +2 -2
  172. package/dist/commands/cicd/work/deployment-step/update.js +2 -2
  173. package/dist/commands/cicd/work/done.js +2 -2
  174. package/dist/commands/cicd/work/environment-sync.js +140 -64
  175. package/dist/commands/cicd/work/get.js +4 -4
  176. package/dist/commands/cicd/work/list.js +4 -3
  177. package/dist/commands/cicd/work/open.js +2 -2
  178. package/dist/commands/cicd/work/promote.js +2 -2
  179. package/dist/commands/cicd/work/publish.js +2 -2
  180. package/dist/commands/cicd/work/push.js +2 -2
  181. package/dist/commands/cicd/work/set.js +2 -2
  182. package/dist/commands/cicd/work/status.js +2 -2
  183. package/dist/commands/cicd/work/submit.js +2 -2
  184. package/dist/commands/cicd/work/test/apex.js +20 -35
  185. package/dist/commands/cicd/work/test.js +116 -11
  186. package/dist/commands/cicd/work/update.js +4 -4
  187. package/dist/commands/help-agent.js +15 -0
  188. package/dist/commands/help.js +38 -0
  189. package/dist/commands/history/clear.js +42 -0
  190. package/dist/commands/history/list.js +50 -0
  191. package/dist/commands/support.js +15 -0
  192. package/dist/commands/testing/browser/execute.js +49 -0
  193. package/dist/commands/testing/browser/history.js +49 -0
  194. package/dist/commands/testing/browser/inspect.js +35 -0
  195. package/dist/commands/testing/browser/recorder.js +52 -0
  196. package/dist/commands/testing/browser/screenshot.js +27 -0
  197. package/dist/commands/testing/browser/set-options.js +35 -0
  198. package/dist/commands/testing/browser/start.js +51 -0
  199. package/dist/commands/testing/browser/status.js +26 -0
  200. package/dist/commands/testing/browser/stop.js +34 -0
  201. package/dist/commands/testing/browser/view.js +35 -0
  202. package/dist/commands/testing/job/runs/abort.js +1 -1
  203. package/dist/commands/testing/job/runs/get.js +1 -1
  204. package/dist/commands/testing/job/runs/list.js +1 -1
  205. package/dist/commands/testing/job/runs/logs.js +1 -1
  206. package/dist/commands/testing/job/runs/search.js +1 -1
  207. package/dist/hooks/init/cicd-connection.js +59 -0
  208. package/dist/lib/agentia-command.js +69 -6
  209. package/dist/lib/cicd-command.js +3 -0
  210. package/dist/lib/cicd-connection.js +22 -0
  211. package/dist/lib/cicd-gateway.js +2 -1
  212. package/dist/lib/command-history-sanitization.js +9 -0
  213. package/dist/lib/command-history.js +11 -0
  214. package/dist/lib/command-output-buffer.js +6 -1
  215. package/dist/lib/defaults-store.js +5 -1
  216. package/dist/lib/dependency-from-changes.js +3 -1
  217. package/dist/lib/dependency-source-context.js +3 -0
  218. package/dist/lib/function-list.js +3 -0
  219. package/dist/lib/git-worktree.js +4 -1
  220. package/dist/lib/help-agent-command.js +3 -0
  221. package/dist/lib/help-agent-interaction-history.js +10 -0
  222. package/dist/lib/help-agent-session.js +3 -0
  223. package/dist/lib/job-get.js +2 -1
  224. package/dist/lib/job-types.js +2 -1
  225. package/dist/lib/list-pagination.js +6 -1
  226. package/dist/lib/local-quality-gates.js +4 -1
  227. package/dist/lib/mcp/result.js +41 -3
  228. package/dist/lib/mcp/server.js +3 -2
  229. package/dist/lib/mcp/testing-browser-tools.js +179 -0
  230. package/dist/lib/mcp/testing-tools.js +4 -3
  231. package/dist/lib/mcp/tool-annotations.js +31 -12
  232. package/dist/lib/mcp/tools.js +115 -59
  233. package/dist/lib/mcp/work-tools.js +100 -47
  234. package/dist/lib/promotion-queue.js +5 -0
  235. package/dist/lib/promotion-run.js +4 -1
  236. package/dist/lib/promotion-status.js +12 -0
  237. package/dist/lib/quality-gates.js +13 -0
  238. package/dist/lib/repository-list.js +3 -0
  239. package/dist/lib/runtime.js +1 -1
  240. package/dist/lib/stock-quality-gates.js +2 -1
  241. package/dist/lib/support-ai-context.js +11 -0
  242. package/dist/lib/support-ai-stream-parser.js +4 -0
  243. package/dist/lib/support-ai.js +9 -0
  244. package/dist/lib/template-list.js +3 -0
  245. package/dist/lib/testing-browser-command.js +6 -0
  246. package/dist/lib/testing-browser-operations.js +16 -0
  247. package/dist/lib/testing-browser-requests.js +11 -0
  248. package/dist/lib/testing-browser-robot.js +9 -0
  249. package/dist/lib/testing-browser-session.js +13 -0
  250. package/dist/lib/testing-browser-state.js +17 -0
  251. package/dist/lib/testing-browser-stream.js +7 -0
  252. package/dist/lib/testing-browser-types.js +3 -0
  253. package/dist/lib/testing-browser-viewer-key.js +7 -0
  254. package/dist/lib/testing-gateway.js +2 -1
  255. package/dist/lib/testing-operations.js +21 -1
  256. package/dist/lib/testing-sanitization.js +2 -1
  257. package/dist/lib/work-apex-test-failures.js +2 -1
  258. package/dist/lib/work-environment-sync-ready.js +7 -1
  259. package/dist/lib/work-environment-sync.js +8 -1
  260. package/dist/lib/work-local-run-tests.js +2 -1
  261. package/dist/lib/work-promote-deploy.js +3 -1
  262. package/dist/lib/work-promote.js +2 -1
  263. package/dist/lib/work-types.js +3 -1
  264. package/oclif.manifest.json +3544 -1828
  265. package/package.json +11 -4
  266. package/templates/skills/agentia-ai/SKILL.md +6 -2
  267. package/templates/skills/agentia-ai/references/ai-agents.md +19 -1
  268. package/templates/skills/agentia-cicd/SKILL.md +6 -5
  269. package/templates/skills/agentia-cicd/references/environments-and-credentials.md +16 -0
  270. package/templates/skills/agentia-cicd/references/jobs.md +3 -2
  271. package/templates/skills/agentia-cicd/references/promotions.md +26 -5
  272. package/templates/skills/agentia-cicd/references/work.md +25 -11
  273. package/templates/skills/agentia-metadata/SKILL.md +9 -3
  274. package/templates/skills/agentia-metadata/references/metadata-dependency.md +70 -0
  275. package/templates/skills/agentia-metadata/references/metadata-explore.md +8 -4
  276. package/templates/skills/agentia-testing/SKILL.md +9 -4
  277. package/templates/skills/agentia-testing/references/browser-testing.md +92 -0
  278. package/templates/skills/agentia-testing/references/flow-automation.md +112 -0
  279. package/templates/skills/agentia-testing/references/qforce.md +88 -0
  280. package/templates/skills/agentia-testing/references/qweb.md +103 -0
  281. package/templates/skills/agentia-testing/references/tests.md +17 -9
  282. package/vendor/java/var-replace-command.jar +0 -0
  283. package/dist/commands/testing/live/continue.js +0 -16
  284. package/dist/commands/testing/live/execute.js +0 -43
  285. package/dist/commands/testing/live/history.js +0 -40
  286. package/dist/commands/testing/live/inspect.js +0 -31
  287. package/dist/commands/testing/live/interrupt.js +0 -16
  288. package/dist/commands/testing/live/recorder.js +0 -42
  289. package/dist/commands/testing/live/reports.js +0 -31
  290. package/dist/commands/testing/live/screenshot.js +0 -25
  291. package/dist/commands/testing/live/set-options.js +0 -35
  292. package/dist/commands/testing/live/start.js +0 -58
  293. package/dist/commands/testing/live/status.js +0 -24
  294. package/dist/commands/testing/live/stop.js +0 -36
  295. package/dist/commands/testing/live/view.js +0 -36
  296. package/dist/lib/mcp/testing-live-tools.js +0 -226
  297. package/dist/lib/testing-live-command.js +0 -8
  298. package/dist/lib/testing-live-operations.js +0 -25
  299. package/dist/lib/testing-live-recorder.js +0 -11
  300. package/dist/lib/testing-live-robot.js +0 -9
  301. package/dist/lib/testing-live-state.js +0 -12
  302. package/dist/lib/testing-live-types.js +0 -3
@@ -15,6 +15,7 @@ export default class AuthGet extends AgentiaCommand {
15
15
  '<%= config.bin %> <%= command.id %> --cicd',
16
16
  '<%= config.bin %> <%= command.id %> --crt',
17
17
  '<%= config.bin %> <%= command.id %> --cicd --crt',
18
+ '<%= config.bin %> <%= command.id %> --cicd --json',
18
19
  '<%= config.bin %> <%= command.id %> --json',
19
20
  ];
20
21
  static flags = {
@@ -48,6 +49,10 @@ export default class AuthGet extends AgentiaCommand {
48
49
  }
49
50
  const selectedTypes = types.length > 0 ? types : ALL_CREDENTIAL_TYPES;
50
51
  const credentials = selectedTypes.map((type) => this.buildCredentialResult(type));
52
+ const { listCicdNamedConnections, summarizeCicdNamedConnection } = await import('../../lib/cicd-connection.js');
53
+ const cicdConnections = selectedTypes.includes('cicd')
54
+ ? listCicdNamedConnections().map((connection) => summarizeCicdNamedConnection(connection))
55
+ : undefined;
51
56
  this.display(() => {
52
57
  for (const type of ['cicd', 'ai', 'crt', 'adv']) {
53
58
  if (!selectedTypes.includes(type))
@@ -60,10 +65,25 @@ export default class AuthGet extends AgentiaCommand {
60
65
  this.log('');
61
66
  this.log(this.formatCredentialLine(this.buildCredentialResult(type, scope)));
62
67
  }
68
+ if (type === 'cicd' && cicdConnections !== undefined && cicdConnections.length > 0) {
69
+ this.log('');
70
+ this.log(ux.colorize('cyan', 'Named CICD connections'));
71
+ for (const connection of cicdConnections) {
72
+ const kind = connection.kind === undefined ? '' : ` [${connection.kind}]`;
73
+ const key = connection.set ? connection.masked : '(missing key)';
74
+ this.log(`Connection: ${connection.name}${kind}`);
75
+ this.log(`API Key: ${key}`);
76
+ this.log(`Server URL: ${connection.baseUrl}`);
77
+ }
78
+ }
63
79
  }
64
80
  });
65
81
  const configFiles = this.buildConfigFileResults();
66
- return { configFiles, credentials };
82
+ return {
83
+ ...(cicdConnections === undefined ? {} : { cicdConnections }),
84
+ configFiles,
85
+ credentials,
86
+ };
67
87
  }
68
88
  buildCicdCredentialResult(scope) {
69
89
  const status = getCicdAuthStatus(scope);
@@ -15,6 +15,7 @@ export default class AuthSet extends AgentiaCommand {
15
15
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --region na',
16
16
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --custom-url https://dev.api.copado.com',
17
17
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key>',
18
+ '<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --custom-url https://test.api.copado.com --connection sandbox --kind sandbox',
18
19
  '<%= config.bin %> <%= command.id %> --crt <pak> --crt-org <crt-org-id>',
19
20
  '<%= config.bin %> <%= command.id %> --crt <pak> --crt-domain robotic.copado.com --crt-org <crt-org-id>',
20
21
  '<%= config.bin %> <%= command.id %> --cicd <copado-api-key> --region na --crt <pak>',
@@ -43,6 +44,9 @@ export default class AuthSet extends AgentiaCommand {
43
44
  cicd: Flags.string({
44
45
  description: 'Copado API key for CICD authentication',
45
46
  }),
47
+ connection: Flags.string({
48
+ description: 'Store a named CICD connection (keychain + config) without changing the active/default connection. Use with --cicd-connection on cicd commands.',
49
+ }),
46
50
  crt: Flags.string({ description: 'PAK for CRT authentication (requires --crt-org)' }),
47
51
  'crt-domain': Flags.string({
48
52
  description: 'CRT domain hostname for robotic testing commands',
@@ -53,6 +57,10 @@ export default class AuthSet extends AgentiaCommand {
53
57
  'custom-url': Flags.string({
54
58
  description: 'CICD gateway base URL used instead of regional mapping',
55
59
  }),
60
+ kind: Flags.option({
61
+ description: 'Tag a named CICD connection as sandbox or production (requires --connection)',
62
+ options: ['sandbox', 'production'],
63
+ })(),
56
64
  local: Flags.boolean({
57
65
  default: false,
58
66
  description: 'Store authentication for the current project and user.',
@@ -75,10 +83,12 @@ export default class AuthSet extends AgentiaCommand {
75
83
  aiOrg: flags['ai-org'],
76
84
  aiWorkspace: flags['ai-workspace'],
77
85
  cicd: flags.cicd,
86
+ connection: flags.connection,
78
87
  crt: flags.crt,
79
88
  crtDomain: flags['crt-domain'],
80
89
  crtOrg: flags['crt-org'],
81
90
  customUrl: flags['custom-url'],
91
+ kind: flags.kind,
82
92
  region: flags.region,
83
93
  scope: flags.local ? 'local' : 'global',
84
94
  }));
@@ -92,6 +102,9 @@ export default class AuthSet extends AgentiaCommand {
92
102
  for (const { label } of result.stored) {
93
103
  this.log(`Stored ${label}.`);
94
104
  }
105
+ if (result.connection !== undefined) {
106
+ this.log(`Stored named CICD connection "${result.connection}"${result.connectionKind === undefined ? '' : ` (${result.connectionKind})`}.`);
107
+ }
95
108
  if (result.baseUrl !== undefined) {
96
109
  this.log(`Stored CICD endpoint: ${result.baseUrl}.`);
97
110
  }
@@ -11,6 +11,7 @@ export default class AuthUnset extends AgentiaCommand {
11
11
  '<%= config.bin %> <%= command.id %> --adv',
12
12
  '<%= config.bin %> <%= command.id %> --cicd',
13
13
  '<%= config.bin %> <%= command.id %> --crt',
14
+ '<%= config.bin %> <%= command.id %> --connection sandbox --yes',
14
15
  '<%= config.bin %> <%= command.id %> --cicd --crt --yes',
15
16
  '<%= config.bin %> <%= command.id %> --json --yes',
16
17
  ];
@@ -24,6 +25,9 @@ export default class AuthUnset extends AgentiaCommand {
24
25
  cicd: Flags.boolean({
25
26
  description: 'Remove Copado API key and CICD endpoint configuration',
26
27
  }),
28
+ connection: Flags.string({
29
+ description: 'Remove a named CICD connection (does not remove the active/default CICD auth)',
30
+ }),
27
31
  crt: Flags.boolean({
28
32
  description: 'Remove CRT PAK, domain, and organization configuration',
29
33
  }),
@@ -46,6 +50,39 @@ export default class AuthUnset extends AgentiaCommand {
46
50
  if (flags.local && flags.global) {
47
51
  this.error('Use either --local or --global, not both.', { exit: 2 });
48
52
  }
53
+ if (flags.connection !== undefined) {
54
+ if (flags.local || flags.global || flags.cicd || flags.crt || flags.ai || flags.adv) {
55
+ this.error('Use --connection alone (optionally with --yes).', { exit: 2 });
56
+ }
57
+ const { deleteCicdNamedConnection } = await import('../../lib/cicd-connection.js');
58
+ const requiresExplicitYes = (this.jsonEnabled() || !input.isTTY) && !hasAuthUnsetTestConfirm();
59
+ if (requiresExplicitYes && !flags.yes) {
60
+ this.error('Refusing to unset credentials without confirmation. Re-run with --yes.', { exit: 2 });
61
+ }
62
+ if (!flags.yes) {
63
+ const { confirm } = await import('@inquirer/prompts');
64
+ const accepted = await confirm({
65
+ default: false,
66
+ message: `Remove named CICD connection "${flags.connection}"?`,
67
+ });
68
+ if (!accepted) {
69
+ this.log('Auth unset cancelled. No credentials were removed.');
70
+ return { cancelled: true, removed: [] };
71
+ }
72
+ }
73
+ const removed = await deleteCicdNamedConnection(flags.connection);
74
+ if (removed) {
75
+ this.log(`Removed named CICD connection "${flags.connection}".`);
76
+ }
77
+ else {
78
+ this.log(`Named CICD connection "${flags.connection}" was not configured.`);
79
+ }
80
+ return {
81
+ removed: removed
82
+ ? [{ label: `CICD connection "${flags.connection}"`, removed: true, type: 'cicd' }]
83
+ : [],
84
+ };
85
+ }
49
86
  const types = resolveAuthUnsetTypes(flags);
50
87
  const requiresExplicitYes = (this.jsonEnabled() || !input.isTTY) && !hasAuthUnsetTestConfirm();
51
88
  if (requiresExplicitYes && !flags.yes) {
@@ -1,6 +1,6 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import { readFileSync } from 'node:fs';
3
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { CicdCommand } from '../../../lib/cicd-command.js';
4
4
  import { resolveWorkItemId, WorkActiveResolutionError } from '../../../lib/work-active.js';
5
5
  import { buildWorkCommitRequest, formatWorkCommitResult, normalizeWorkCommitInput, performWorkCommit, resolveWorkCommitPlatformExperience, WORK_COMMIT_ACTIONS, WORK_COMMIT_DEFAULT_TIMEOUT_SECONDS, WORK_COMMIT_METADATA_CATEGORY_HELP, WorkCommitJobFailedError, WorkCommitTimeoutError, WorkCommitValidationError, } from '../../../lib/work-commit.js';
6
6
  function readStdin() {
@@ -97,7 +97,7 @@ async function commitInputFromFlags(flags) {
97
97
  }
98
98
  return simpleInputFromFlags(flags);
99
99
  }
100
- export default class CloudCommit extends AgentiaCommand {
100
+ export default class CloudCommit extends CicdCommand {
101
101
  static args = {
102
102
  id: Args.string({
103
103
  description: 'User story ID (defaults to the active work item from `work set`)',
@@ -107,6 +107,7 @@ export default class CloudCommit extends AgentiaCommand {
107
107
  static description = [
108
108
  'Create a Copado cloud metadata commit for a user story.',
109
109
  'Preflights the story, submits POST /release/commit, and polls the job monitor by default.',
110
+ 'Simple --metadata-* flags commit exactly one component. Use --file or --stdin with a changes[] array for multiple components.',
110
111
  'For local Git work, use git add/commit then `cicd work publish`. Permission and full-metadata selections belong on `cicd work publish`.',
111
112
  '',
112
113
  'NOTE: Do not use this command along with local development (git operations, cicd work push/submit).',
@@ -114,7 +115,7 @@ export default class CloudCommit extends AgentiaCommand {
114
115
  static examples = [
115
116
  '<%= config.bin %> <%= command.id %> --message "Commit AccountService" --metadata-name AccountService --metadata-type ApexClass --metadata-category SFDX --action Add',
116
117
  '<%= config.bin %> <%= command.id %> a07XXXXXXXXXXXXXXX --message "Update Aura files" --metadata-name accountEditor --metadata-type AuraDefinitionBundle --metadata-category SFDX --action SelectiveCommit --selection accountEditor/accountEditor.cmp --selection accountEditor/accountEditorController.js',
117
- '<%= config.bin %> <%= command.id %> --file commit-request.json # {"message":"Commit AccountService","changes":[{"a":"Add","c":"SFDX","n":"AccountService","t":"ApexClass"}]}',
118
+ '<%= config.bin %> <%= command.id %> --file commit-request.json # {"message":"Commit metadata","changes":[{"a":"Add","c":"SFDX","n":"AccountService","t":"ApexClass"},{"a":"Add","c":"SFDX","n":"AccountTrigger","t":"ApexTrigger"}]}',
118
119
  'cat commit-request.json | <%= config.bin %> <%= command.id %> --stdin --json',
119
120
  ];
120
121
  static flags = {
@@ -140,7 +141,7 @@ export default class CloudCommit extends AgentiaCommand {
140
141
  }),
141
142
  file: Flags.string({
142
143
  char: 'f',
143
- description: 'Path to a JSON commit request body.',
144
+ description: 'Path to a JSON commit request with message and changes[] (one object per metadata component).',
144
145
  }),
145
146
  message: Flags.string({
146
147
  char: 'm',
@@ -171,7 +172,7 @@ export default class CloudCommit extends AgentiaCommand {
171
172
  }),
172
173
  stdin: Flags.boolean({
173
174
  default: false,
174
- description: 'Read a JSON commit request body from stdin.',
175
+ description: 'Read a JSON commit request with message and changes[] from stdin.',
175
176
  }),
176
177
  wait: Flags.boolean({
177
178
  allowNo: true,
@@ -1,9 +1,11 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { Args, Flags } from '@oclif/core';
3
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
4
- import { formatPromotionRunResult, isPromotionRunExecutionError, parseIgnoredMetadataJson, performPromotionRun, PROMOTION_RUN_DEFAULT_TIMEOUT_SECONDS, promotionRunErrorJson, PromotionRunValidationError, resolvePromotionIdForWorkItem, } from '../../../lib/promotion-run.js';
3
+ import { CicdCommand } from '../../../lib/cicd-command.js';
4
+ import { formatPromotionRunResult, isPromotionRunExecutionError, parseIgnoredMetadataJson, performPromotionRun, PROMOTION_RUN_DEFAULT_TIMEOUT_SECONDS, promotionRunErrorJson, PromotionRunValidationError, resolveOrCreatePromotionForWorkItem, } from '../../../lib/promotion-run.js';
5
5
  import { resolveWorkItemId, WorkActiveResolutionError } from '../../../lib/work-active.js';
6
- export default class CloudPromote extends AgentiaCommand {
6
+ import { WorkPromoteValidationError } from '../../../lib/work-promote.js';
7
+ export default class CloudPromote extends CicdCommand {
8
+ promoteErrorContext;
7
9
  static args = {
8
10
  id: Args.string({
9
11
  description: 'User Story ID (defaults to the active work item from `work set`)',
@@ -12,6 +14,7 @@ export default class CloudPromote extends AgentiaCommand {
12
14
  };
13
15
  static description = [
14
16
  'Promote the explicit or active User Story through its Copado Promotion.',
17
+ 'When no promotion contains the story, creates a forward Draft promotion, adds the story, then runs it.',
15
18
  'Selects promote-only unless --deploy is passed.',
16
19
  ].join(' ');
17
20
  static examples = [
@@ -37,7 +40,7 @@ export default class CloudPromote extends AgentiaCommand {
37
40
  description: 'JSON array to persist through ignored-metadata before starting the promotion.',
38
41
  }),
39
42
  'promotion-id': Flags.string({
40
- description: 'Explicit 18-character Promotion ID when the User Story belongs to multiple promotions.',
43
+ description: 'Explicit 18-character Promotion ID when the User Story belongs to multiple promotions. Used as is; never creates a promotion.',
41
44
  }),
42
45
  'recreate-promotion-branch': Flags.boolean({
43
46
  description: 'Recreate the promotion branch before execution. Requires confirmation or --yes.',
@@ -79,8 +82,17 @@ export default class CloudPromote extends AgentiaCommand {
79
82
  }
80
83
  throw error;
81
84
  }
85
+ let createdPromotion;
86
+ this.promoteErrorContext = { workItemId };
82
87
  try {
83
- const promotionId = await this.withSpinner('Resolving User Story promotion', () => resolvePromotionIdForWorkItem(workItemId, promoteFlags['promotion-id']));
88
+ const resolved = await this.withSpinner('Resolving User Story promotion', () => resolveOrCreatePromotionForWorkItem(workItemId, promoteFlags['promotion-id']));
89
+ const promotionId = resolved.promotionId;
90
+ createdPromotion = resolved.createdPromotion;
91
+ if (createdPromotion !== undefined) {
92
+ const promotionCreated = createdPromotion;
93
+ this.promoteErrorContext = { createdPromotion: promotionCreated, workItemId };
94
+ this.display(() => this.log(`Created promotion ${promotionCreated.name ?? promotionCreated.id} for ${workItemId}.`));
95
+ }
84
96
  if (promoteFlags['recreate-promotion-branch'] === true && !promoteFlags.yes) {
85
97
  if (this.jsonEnabled() || !process.stdin.isTTY) {
86
98
  this.error('Promotion branch recreation requires confirmation. Pass --yes for headless or JSON execution.', {
@@ -108,7 +120,11 @@ export default class CloudPromote extends AgentiaCommand {
108
120
  timeoutSeconds: promoteFlags['wait-timeout'],
109
121
  wait: promoteFlags.wait,
110
122
  });
111
- const workResult = { ...result, workItemId };
123
+ const workResult = {
124
+ ...result,
125
+ ...(createdPromotion === undefined ? {} : { createdPromotion }),
126
+ workItemId,
127
+ };
112
128
  this.display(() => {
113
129
  this.log(`User Story: ${workItemId}`);
114
130
  this.log(formatPromotionRunResult(result));
@@ -116,7 +132,7 @@ export default class CloudPromote extends AgentiaCommand {
116
132
  return workResult;
117
133
  }
118
134
  catch (error) {
119
- if (error instanceof PromotionRunValidationError) {
135
+ if (error instanceof PromotionRunValidationError || error instanceof WorkPromoteValidationError) {
120
136
  this.error(error.message, { exit: 2 });
121
137
  }
122
138
  if (isPromotionRunExecutionError(error)) {
@@ -133,7 +149,27 @@ export default class CloudPromote extends AgentiaCommand {
133
149
  }
134
150
  toErrorJson(err) {
135
151
  const base = super.toErrorJson(err);
136
- return promotionRunErrorJson(base, err);
152
+ const json = promotionRunErrorJson(base, err);
153
+ if (!isPromotionRunExecutionError(err) ||
154
+ err.result === undefined ||
155
+ this.promoteErrorContext?.createdPromotion === undefined) {
156
+ return json;
157
+ }
158
+ const errorBlock = json.error && typeof json.error === 'object' ? json.error : {};
159
+ const resultBlock = errorBlock.result && typeof errorBlock.result === 'object'
160
+ ? errorBlock.result
161
+ : { ...err.result };
162
+ return {
163
+ ...json,
164
+ error: {
165
+ ...errorBlock,
166
+ result: {
167
+ ...resultBlock,
168
+ createdPromotion: this.promoteErrorContext.createdPromotion,
169
+ workItemId: this.promoteErrorContext.workItemId,
170
+ },
171
+ },
172
+ };
137
173
  }
138
174
  }
139
175
  //# sourceMappingURL=promote.js.map
@@ -1,9 +1,9 @@
1
1
  import { Args, ux } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { runCredentialAuthStatus, } from '../../../../lib/environment-auth-status.js';
4
4
  import { EnvironmentCredentialInputError } from '../../../../lib/environment-credential-flags.js';
5
5
  import { formatEnvironmentAuthStatus } from '../../../../lib/environment-types.js';
6
- export default class CredentialAuthStatus extends AgentiaCommand {
6
+ export default class CredentialAuthStatus extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Copado credential ID',
@@ -1,8 +1,8 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../../lib/cicd-command.js';
3
3
  import { DEFAULT_AUTH_TIMEOUT_SECONDS, runCredentialWebLogin, } from '../../../../../lib/environment-auth.js';
4
4
  import { EnvironmentCredentialInputError } from '../../../../../lib/environment-credential-flags.js';
5
- export default class CredentialAuthWebLogin extends AgentiaCommand {
5
+ export default class CredentialAuthWebLogin extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Copado credential ID',
@@ -1,7 +1,7 @@
1
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../lib/cicd-command.js';
2
2
  import { credentialCreateFlags, EnvironmentCredentialInputError, validateCredentialName, } from '../../../lib/environment-credential-flags.js';
3
3
  import { createEnvironmentCredential, resolveEnvironmentOrgType, } from '../../../lib/environment-credential-operations.js';
4
- export default class CredentialCreate extends AgentiaCommand {
4
+ export default class CredentialCreate extends CicdCommand {
5
5
  static description = 'Create a Copado environment credential';
6
6
  static examples = [
7
7
  '<%= config.bin %> <%= command.id %> --environmentid <environment-id> --name "CI User"',
@@ -1,8 +1,8 @@
1
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../lib/cicd-command.js';
2
2
  import { buildCredentialListFilters, credentialListFlags } from '../../../lib/environment-credential-flags.js';
3
3
  import { listCredentials } from '../../../lib/environment-credential-operations.js';
4
4
  import { cellValue, table } from '../../../lib/format.js';
5
- import { displayListPagination } from '../../../lib/list-pagination.js';
5
+ import { displayListPagination, emitPaginatedListWarnings } from '../../../lib/list-pagination.js';
6
6
  export function formatCredentialTable(credentials) {
7
7
  const header = [
8
8
  { alias: 'ID', value: 'id' },
@@ -28,7 +28,7 @@ export function formatCredentialTable(credentials) {
28
28
  }));
29
29
  return table(header, rows);
30
30
  }
31
- export default class CredentialList extends AgentiaCommand {
31
+ export default class CredentialList extends CicdCommand {
32
32
  static description = 'List Copado credentials across environments';
33
33
  static examples = [
34
34
  '<%= config.bin %> <%= command.id %>',
@@ -40,6 +40,7 @@ export default class CredentialList extends AgentiaCommand {
40
40
  async run() {
41
41
  const { flags } = await this.parse(CredentialList);
42
42
  const page = await this.withSpinner('Fetching credentials', () => listCredentials(buildCredentialListFilters(flags)));
43
+ emitPaginatedListWarnings(this.warn.bind(this), page);
43
44
  this.display(() => {
44
45
  if (page.data.length === 0) {
45
46
  this.log('No credentials found.');
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../lib/cicd-command.js';
3
3
  import { openNavigationTarget } from '../../../lib/navigation-open.js';
4
4
  import { resolveNavigationTarget } from '../../../lib/navigation.js';
5
- export default class CredentialOpen extends AgentiaCommand {
5
+ export default class CredentialOpen extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Copado credential ID',
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../lib/cicd-command.js';
3
3
  import { collectCredentialUpdateFlagKeys, credentialUpdateFlags, EnvironmentCredentialInputError, validateCredentialName, } from '../../../lib/environment-credential-flags.js';
4
4
  import { sanitizeCredentialListItem, updateCredentialById, } from '../../../lib/environment-credential-operations.js';
5
- export default class CredentialUpdate extends AgentiaCommand {
5
+ export default class CredentialUpdate extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Copado credential ID',
@@ -1,8 +1,8 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
3
3
  import { assertJsonObject, jsonBodyFlags, readJsonBodyFromFileOrStdin, } from '../../../../lib/data-flags.js';
4
4
  import { dataTemplatesCommitEndpoint, } from '../../../../lib/data-types.js';
5
- export default class DataCommitCreate extends AgentiaCommand {
5
+ export default class DataCommitCreate extends CicdCommand {
6
6
  static description = 'Create a data commit for a user story';
7
7
  static examples = [
8
8
  '<%= config.bin %> <%= command.id %> --file commit.json',
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { formatUserStoryDataCommitTable, userStoryDataCommitsEndpoint, } from '../../../../lib/data-types.js';
5
- export default class DataCommitList extends AgentiaCommand {
5
+ export default class DataCommitList extends CicdCommand {
6
6
  static args = {
7
7
  userStoryId: Args.string({
8
8
  description: 'User story Id',
@@ -1,5 +1,5 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { datasetFileContentEndpoint, } from '../../../../lib/data-types.js';
5
5
  const BASE64_DISPLAY_LIMIT = 120;
@@ -9,7 +9,7 @@ function truncateBase64(value) {
9
9
  }
10
10
  return `${value.slice(0, BASE64_DISPLAY_LIMIT)}… (${value.length} chars)`;
11
11
  }
12
- export default class DataDatasetFileContent extends AgentiaCommand {
12
+ export default class DataDatasetFileContent extends CicdCommand {
13
13
  static args = {
14
14
  contentVersionId: Args.string({
15
15
  description: 'ContentVersion Id',
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { datasetFilesEndpoint, formatDatasetFileTable, } from '../../../../lib/data-types.js';
5
- export default class DataDatasetFileList extends AgentiaCommand {
5
+ export default class DataDatasetFileList extends CicdCommand {
6
6
  static args = {
7
7
  userStoryDataCommitId: Args.string({
8
8
  description: 'User story data commit Id',
@@ -1,9 +1,9 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { assertJsonObject, jsonBodyFlags, readJsonBodyFromFileOrStdin, } from '../../../../lib/data-flags.js';
5
5
  import { advancedFiltersEndpoint, } from '../../../../lib/data-types.js';
6
- export default class DataFilterAdd extends AgentiaCommand {
6
+ export default class DataFilterAdd extends CicdCommand {
7
7
  static args = {
8
8
  dataTemplateId: Args.string({
9
9
  description: 'Data template Id',
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { advancedFilterEndpoint } from '../../../../lib/data-types.js';
5
- export default class DataFilterDelete extends AgentiaCommand {
5
+ export default class DataFilterDelete extends CicdCommand {
6
6
  static args = {
7
7
  dataTemplateId: Args.string({
8
8
  description: 'Data template Id',
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { advancedFiltersEndpoint, formatAdvancedFilterTable, } from '../../../../lib/data-types.js';
5
- export default class DataFilterList extends AgentiaCommand {
5
+ export default class DataFilterList extends CicdCommand {
6
6
  static args = {
7
7
  dataTemplateId: Args.string({
8
8
  description: 'Data template Id',
@@ -1,9 +1,9 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { assertJsonObject, jsonBodyFlags, readJsonBodyFromFileOrStdin, } from '../../../../lib/data-flags.js';
5
5
  import { advancedFilterEndpoint, } from '../../../../lib/data-types.js';
6
- export default class DataFilterUpdate extends AgentiaCommand {
6
+ export default class DataFilterUpdate extends CicdCommand {
7
7
  static args = {
8
8
  dataTemplateId: Args.string({
9
9
  description: 'Data template Id',
@@ -1,5 +1,5 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { dataTemplateRecordMatchingFormulasEndpoint, } from '../../../../lib/data-types.js';
5
5
  function parseFields(fields) {
@@ -8,7 +8,7 @@ function parseFields(fields) {
8
8
  .map((part) => part.trim())
9
9
  .filter((part) => part.length > 0));
10
10
  }
11
- export default class DataFormulaCreate extends AgentiaCommand {
11
+ export default class DataFormulaCreate extends CicdCommand {
12
12
  static args = {
13
13
  dataTemplateId: Args.string({
14
14
  description: 'Data template Id',
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { formatRecordMatchingFormulaTable, recordMatchingFormulasByObjectEndpoint, } from '../../../../lib/data-types.js';
5
- export default class DataFormulaList extends AgentiaCommand {
5
+ export default class DataFormulaList extends CicdCommand {
6
6
  static args = {
7
7
  objectApiName: Args.string({
8
8
  description: 'sObject API name',
@@ -1,5 +1,5 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { assertJsonObject, jsonBodyFlags, readJsonBodyFromFileOrStdin, } from '../../../../lib/data-flags.js';
5
5
  import { recordMatchingFormulaEndpoint, } from '../../../../lib/data-types.js';
@@ -9,7 +9,7 @@ function parseFields(fields) {
9
9
  .map((part) => part.trim())
10
10
  .filter((part) => part.length > 0));
11
11
  }
12
- export default class DataFormulaUpdate extends AgentiaCommand {
12
+ export default class DataFormulaUpdate extends CicdCommand {
13
13
  static args = {
14
14
  formulaId: Args.string({
15
15
  description: 'Record matching formula Id',
@@ -1,8 +1,8 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
3
3
  import { assertJsonObject, jsonBodyFlags, readJsonBodyFromFileOrStdin, } from '../../../../lib/data-flags.js';
4
4
  import { dataTemplatesRecordsMatchEndpoint, formatDataRecordTable, } from '../../../../lib/data-types.js';
5
- export default class DataRecordsMatch extends AgentiaCommand {
5
+ export default class DataRecordsMatch extends CicdCommand {
6
6
  static description = 'Match a source data record to a destination org';
7
7
  static examples = [
8
8
  '<%= config.bin %> <%= command.id %> --file match.json',
@@ -1,9 +1,9 @@
1
1
  import { Flags } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { assertJsonObject, jsonBodyFlags, readJsonBodyFromFileOrStdin, } from '../../../../lib/data-flags.js';
5
5
  import { dataTemplatesRecordsEndpoint, formatDataRecordTable, } from '../../../../lib/data-types.js';
6
- export default class DataRecordsSearch extends AgentiaCommand {
6
+ export default class DataRecordsSearch extends CicdCommand {
7
7
  static description = 'Search data records for a data template';
8
8
  static examples = [
9
9
  '<%= config.bin %> <%= command.id %> --credential-id a0Y... --data-template-id a0X...',
@@ -1,5 +1,5 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { sobjectFieldsEndpoint } from '../../../../lib/data-types.js';
5
5
  import { cellValue, table } from '../../../../lib/format.js';
@@ -18,7 +18,7 @@ function formatSObjectFieldsTable(payload) {
18
18
  required: cellValue(field.required),
19
19
  })));
20
20
  }
21
- export default class DataSObjectFields extends AgentiaCommand {
21
+ export default class DataSObjectFields extends CicdCommand {
22
22
  static args = {
23
23
  sobjectApiName: Args.string({
24
24
  description: 'sObject API name',
@@ -1,9 +1,9 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
2
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { sobjectRelationshipsEndpoint } from '../../../../lib/data-types.js';
5
5
  import { cellValue, table } from '../../../../lib/format.js';
6
- export default class DataSObjectRelationships extends AgentiaCommand {
6
+ export default class DataSObjectRelationships extends CicdCommand {
7
7
  static args = {
8
8
  sobjectApiName: Args.string({
9
9
  description: 'sObject API name',
@@ -1,8 +1,8 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
3
3
  import { assertJsonArray, jsonBodyFlags, readJsonBodyFromFileOrStdin, } from '../../../../lib/data-flags.js';
4
4
  import { dataTemplatesSyncEndpoint, formatSyncResultTable, } from '../../../../lib/data-types.js';
5
- export default class DataSyncApply extends AgentiaCommand {
5
+ export default class DataSyncApply extends CicdCommand {
6
6
  static description = 'Apply data template field sync entries';
7
7
  static examples = [
8
8
  '<%= config.bin %> <%= command.id %> --file sync.json',