@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
@@ -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 PipelineOpen extends AgentiaCommand {
5
+ export default class PipelineOpen extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Pipeline ID',
@@ -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 { assertRequired } from '../../../../lib/assert.js';
4
4
  import { assertSalesforceLifecycleId } from '../../../../lib/pipeline-lifecycle-id.js';
5
5
  import { activatePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
6
- export default class PipelineQualityGateActivate extends AgentiaCommand {
6
+ export default class PipelineQualityGateActivate extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Quality gate Salesforce ID (not name)',
@@ -1,9 +1,9 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { assertRequired } from '../../../../lib/assert.js';
3
3
  import { buildPipelineQualityGateCreatePayload, pipelineQualityGateCreateFlags, } from '../../../../lib/pipeline-quality-gate-flags.js';
4
4
  import { createPipelineQualityGates } from '../../../../lib/pipeline-quality-gate-ops.js';
5
5
  import { formatPipelineQualityGateTable } from '../../../../lib/pipeline-quality-gate-types.js';
6
- export default class PipelineQualityGateCreate extends AgentiaCommand {
6
+ export default class PipelineQualityGateCreate extends CicdCommand {
7
7
  static description = 'Create inactive Copado pipeline quality gates';
8
8
  static examples = [
9
9
  '<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-id> --tool Selenium --execution-sequence After --action Deployment --extension-configuration-id <ext-conf-id> --environment-id <env-id> --tests-from "User Story"',
@@ -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 { assertRequired } from '../../../../lib/assert.js';
4
4
  import { assertSalesforceLifecycleId } from '../../../../lib/pipeline-lifecycle-id.js';
5
5
  import { deactivatePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
6
- export default class PipelineQualityGateDeactivate extends AgentiaCommand {
6
+ export default class PipelineQualityGateDeactivate extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Quality gate Salesforce ID (not name)',
@@ -1,9 +1,9 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { Args, Flags } from '@oclif/core';
3
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
4
4
  import { assertRequired } from '../../../../lib/assert.js';
5
5
  import { deletePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
6
- export default class PipelineQualityGateDelete extends AgentiaCommand {
6
+ export default class PipelineQualityGateDelete extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Quality gate ID or 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 { assertRequired } from '../../../../lib/assert.js';
4
4
  import { fetchPipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
5
5
  import { formatPipelineQualityGateDetail, } from '../../../../lib/pipeline-quality-gate-types.js';
6
- export default class PipelineQualityGateGet extends AgentiaCommand {
6
+ export default class PipelineQualityGateGet extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Quality gate ID or name',
@@ -1,10 +1,10 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { assertRequired } from '../../../../lib/assert.js';
3
- import { displayListPagination } from '../../../../lib/list-pagination.js';
3
+ import { displayListPagination, emitPaginatedListWarnings } from '../../../../lib/list-pagination.js';
4
4
  import { pipelineQualityGateListFlags } from '../../../../lib/pipeline-quality-gate-flags.js';
5
5
  import { fetchPipelineQualityGates } from '../../../../lib/pipeline-quality-gate-ops.js';
6
6
  import { formatPipelineQualityGateTable, } from '../../../../lib/pipeline-quality-gate-types.js';
7
- export default class PipelineQualityGateList extends AgentiaCommand {
7
+ export default class PipelineQualityGateList extends CicdCommand {
8
8
  static description = 'List Copado pipeline quality gates';
9
9
  static examples = [
10
10
  '<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-id>',
@@ -20,6 +20,7 @@ export default class PipelineQualityGateList extends AgentiaCommand {
20
20
  pageSize: flags['page-size'],
21
21
  tool: flags.tool,
22
22
  }));
23
+ emitPaginatedListWarnings(this.warn.bind(this), page);
23
24
  this.display(() => {
24
25
  if (page.data.length === 0) {
25
26
  this.log('No pipeline quality gates found.');
@@ -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 { openNavigationTarget } from '../../../../lib/navigation-open.js';
4
4
  import { resolveNavigationTarget } from '../../../../lib/navigation.js';
5
5
  import { assertSalesforceLifecycleId } from '../../../../lib/pipeline-lifecycle-id.js';
6
- export default class PipelineQualityGateOpen extends AgentiaCommand {
6
+ export default class PipelineQualityGateOpen extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Quality gate Salesforce ID',
@@ -1,10 +1,10 @@
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 { assertRequired } from '../../../../lib/assert.js';
4
4
  import { buildPipelineQualityGateUpdatePayload, pipelineQualityGateUpdateFlags, } from '../../../../lib/pipeline-quality-gate-flags.js';
5
5
  import { updatePipelineQualityGate } from '../../../../lib/pipeline-quality-gate-ops.js';
6
6
  import { formatPipelineQualityGateDetail, } from '../../../../lib/pipeline-quality-gate-types.js';
7
- export default class PipelineQualityGateUpdate extends AgentiaCommand {
7
+ export default class PipelineQualityGateUpdate extends CicdCommand {
8
8
  static args = {
9
9
  id: Args.string({
10
10
  description: 'Quality gate ID or name',
@@ -1,9 +1,9 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { assertRequired } from '../../../../lib/assert.js';
3
3
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { buildPipelineStageConnectionCreatePayload, pipelineStageConnectionCreateFlags, } from '../../../../lib/pipeline-stage-connection-flags.js';
5
5
  import { normalizePipelineStageConnection, pipelineStageConnectionsEndpoint, } from '../../../../lib/stage-types.js';
6
- export default class PipelineStageConnectionCreate extends AgentiaCommand {
6
+ export default class PipelineStageConnectionCreate extends CicdCommand {
7
7
  static description = 'Create a pipeline stage connection';
8
8
  static examples = [
9
9
  '<%= config.bin %> <%= command.id %> --pipeline-id pipeline-1 --stage-id stage-1',
@@ -1,11 +1,11 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { Args } from '@oclif/core';
3
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
4
4
  import { assertRequired } from '../../../../lib/assert.js';
5
5
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
6
6
  import { pipelineStageConnectionDeleteFlags } from '../../../../lib/pipeline-stage-connection-flags.js';
7
7
  import { pipelineStageConnectionEndpoint } from '../../../../lib/stage-types.js';
8
- export default class PipelineStageConnectionDelete extends AgentiaCommand {
8
+ export default class PipelineStageConnectionDelete extends CicdCommand {
9
9
  static args = { id: Args.string({ description: 'Pipeline stage connection ID', required: true }) };
10
10
  static description = 'Delete a pipeline stage connection';
11
11
  static examples = ['<%= config.bin %> <%= command.id %> connection-1 --pipeline-id pipeline-1 --yes'];
@@ -1,10 +1,10 @@
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 { assertRequired } from '../../../../lib/assert.js';
4
4
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
5
5
  import { normalizePipelineDescribe, pipelineDescribeEndpoint, } from '../../../../lib/pipeline-types.js';
6
6
  import { formatPipelineStageConnectionTable } from '../../../../lib/stage-types.js';
7
- export default class PipelineStageConnectionList extends AgentiaCommand {
7
+ export default class PipelineStageConnectionList extends CicdCommand {
8
8
  static description = 'List stage connections for a Copado pipeline';
9
9
  static examples = [
10
10
  '<%= config.bin %> <%= command.id %> --pipeline-id <pipeline-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 { openNavigationTarget } from '../../../../lib/navigation-open.js';
4
4
  import { resolveNavigationTarget } from '../../../../lib/navigation.js';
5
- export default class PipelineStageConnectionOpen extends AgentiaCommand {
5
+ export default class PipelineStageConnectionOpen extends CicdCommand {
6
6
  static args = { id: Args.string({ description: 'Pipeline stage connection ID', required: true }) };
7
7
  static description = 'Open a pipeline stage connection in the browser';
8
8
  static examples = ['<%= config.bin %> <%= command.id %> connection-1', '<%= config.bin %> <%= command.id %> connection-1 --json'];
@@ -1,10 +1,10 @@
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 { assertRequired } from '../../../../lib/assert.js';
4
4
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
5
5
  import { buildPipelineStageConnectionUpdatePayload, pipelineStageConnectionUpdateFlags, } from '../../../../lib/pipeline-stage-connection-flags.js';
6
6
  import { normalizePipelineStageConnection, pipelineStageConnectionEndpoint, } from '../../../../lib/stage-types.js';
7
- export default class PipelineStageConnectionUpdate extends AgentiaCommand {
7
+ export default class PipelineStageConnectionUpdate extends CicdCommand {
8
8
  static args = {
9
9
  id: Args.string({ description: 'Pipeline stage connection ID', required: true }),
10
10
  };
@@ -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 { buildPipelineMutationPayload, collectPipelineMutationFlagKeys, pipelineUpdateFlags, validatePipelineMutationPayload, } from '../../../lib/pipeline-flags.js';
5
5
  import { normalizePipeline, pipelineEndpoint, } from '../../../lib/pipeline-types.js';
6
- export default class PipelineUpdate extends AgentiaCommand {
6
+ export default class PipelineUpdate extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Pipeline 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 { buildProjectMutationPayload, projectCreateFlags, validateProjectMutationPayload, } from '../../../lib/project-flags.js';
5
5
  import { normalizeProject, projectsListEndpoint, } from '../../../lib/project-types.js';
6
- export default class ProjectCreate extends AgentiaCommand {
6
+ export default class ProjectCreate extends CicdCommand {
7
7
  static args = {
8
8
  name: Args.string({ description: 'Copado project name', required: true }),
9
9
  };
@@ -1,8 +1,8 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { readDefaults, resolveDefaults } from '../../../../lib/defaults-store.js';
3
3
  import { collectSelectedKeys, projectDefaultSelectorFlags } from '../../../../lib/project-default-flags.js';
4
4
  import { formatProjectDefaultLine, PROJECT_DEFAULT_KEYS, } from '../../../../lib/project-defaults.js';
5
- export default class ProjectDefaultGet extends AgentiaCommand {
5
+ export default class ProjectDefaultGet extends CicdCommand {
6
6
  static description = 'Show project default values for the current project or globally';
7
7
  static examples = [
8
8
  '<%= config.bin %> <%= command.id %>',
@@ -1,9 +1,9 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { writeDefaults } from '../../../../lib/defaults-store.js';
3
3
  import { buildSetValues, collectSetUpdates, formatFlagName, projectDefaultBooleanFlags, projectDefaultStringFlags, } from '../../../../lib/project-default-flags.js';
4
4
  import { validateProjectDefaultIdentifiers } from '../../../../lib/project-default-validation.js';
5
5
  import { formatProjectDefaultValue, PROJECT_DEFAULT_LABELS, } from '../../../../lib/project-defaults.js';
6
- export default class ProjectDefaultSet extends AgentiaCommand {
6
+ export default class ProjectDefaultSet extends CicdCommand {
7
7
  static description = 'Set project default values for the current project or globally';
8
8
  static examples = [
9
9
  '<%= config.bin %> <%= command.id %> --project my-project --team platform',
@@ -1,8 +1,8 @@
1
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
1
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
2
2
  import { readDefaults, unsetDefaults } from '../../../../lib/defaults-store.js';
3
3
  import { collectSelectedKeys, projectDefaultSelectorFlags } from '../../../../lib/project-default-flags.js';
4
4
  import { formatProjectDefaultValue, PROJECT_DEFAULT_LABELS, } from '../../../../lib/project-defaults.js';
5
- export default class ProjectDefaultUnset extends AgentiaCommand {
5
+ export default class ProjectDefaultUnset extends CicdCommand {
6
6
  static description = 'Remove project default values from the current project or globally';
7
7
  static examples = [
8
8
  '<%= config.bin %> <%= command.id %> --project',
@@ -1,9 +1,9 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { Args, Flags } from '@oclif/core';
3
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { CicdCommand } from '../../../lib/cicd-command.js';
4
4
  import { CicdGateway } from '../../../lib/cicd-gateway.js';
5
5
  import { projectEndpoint } from '../../../lib/project-types.js';
6
- export default class ProjectDelete extends AgentiaCommand {
6
+ export default class ProjectDelete extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({ description: 'Copado project ID', required: true }),
9
9
  };
@@ -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 { fetchProject } from '../../../lib/project-get.js';
4
4
  import { formatProjectDetail } from '../../../lib/project-types.js';
5
- export default class ProjectGet extends AgentiaCommand {
5
+ export default class ProjectGet extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Copado project ID',
@@ -1,9 +1,9 @@
1
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
- import { displayListPagination } from '../../../lib/list-pagination.js';
1
+ import { CicdCommand } from '../../../lib/cicd-command.js';
2
+ import { displayListPagination, emitPaginatedListWarnings } from '../../../lib/list-pagination.js';
3
3
  import { buildProjectListFilters, projectListFlags, validateProjectListFilters, } from '../../../lib/project-flags.js';
4
4
  import { fetchProjects } from '../../../lib/project-get.js';
5
5
  import { formatProjectTable } from '../../../lib/project-types.js';
6
- export default class ProjectList extends AgentiaCommand {
6
+ export default class ProjectList extends CicdCommand {
7
7
  static description = 'List Copado projects';
8
8
  static examples = [
9
9
  '<%= config.bin %> <%= command.id %>',
@@ -20,6 +20,7 @@ export default class ProjectList extends AgentiaCommand {
20
20
  this.error(validationError, { exit: 2 });
21
21
  }
22
22
  const page = await this.withSpinner('Fetching projects', () => fetchProjects(filters));
23
+ emitPaginatedListWarnings(this.warn.bind(this), page);
23
24
  this.display(() => {
24
25
  if (page.data.length === 0) {
25
26
  this.log('No projects found.');
@@ -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 { openNavigationTarget } from '../../../lib/navigation-open.js';
4
4
  import { resolveNavigationTarget } from '../../../lib/navigation.js';
5
5
  import { ProjectDefaultResolutionError, resolveProjectDefaultId } from '../../../lib/project-default-id.js';
6
- export default class ProjectOpen extends AgentiaCommand {
6
+ export default class ProjectOpen extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Copado project ID (defaults to the configured project default)',
@@ -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 { buildProjectMutationPayload, projectUpdateFlags, validateProjectMutationPayload, } from '../../../lib/project-flags.js';
5
5
  import { normalizeProject, projectEndpoint, } from '../../../lib/project-types.js';
6
- export default class ProjectUpdate extends AgentiaCommand {
6
+ export default class ProjectUpdate extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({ description: 'Copado project ID', required: true }),
9
9
  };
@@ -1,9 +1,9 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import { writeFileSync } from 'node:fs';
3
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
4
4
  import { CicdGateway } from '../../../../lib/cicd-gateway.js';
5
5
  import { promotionConflictContentEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
6
- export default class PromotionConflictGet extends AgentiaCommand {
6
+ export default class PromotionConflictGet extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Conflict attachment Id',
@@ -1,8 +1,8 @@
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 { formatPromotionConflictTable, normalizePromotionConflicts, promotionConflictsEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
5
- export default class PromotionConflictList extends AgentiaCommand {
5
+ export default class PromotionConflictList extends CicdCommand {
6
6
  static description = 'List merge conflicts for a Copado promotion';
7
7
  static examples = [
8
8
  '<%= config.bin %> <%= command.id %> --promotion <promotion-id>',
@@ -1,9 +1,9 @@
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 { CicdGateway } from '../../../../lib/cicd-gateway.js';
5
5
  import { buildPromotionConflictResolutionRequest, PROMOTION_CONFLICT_MODES, promotionConflictResolveEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
6
- export default class PromotionConflictResolve extends AgentiaCommand {
6
+ export default class PromotionConflictResolve extends CicdCommand {
7
7
  static args = {
8
8
  id: Args.string({
9
9
  description: 'Conflict attachment 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 { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { promotionConflictUndoEndpoint, withPromotionConflictErrorTranslation, } from '../../../../lib/promotion-conflicts.js';
5
- export default class PromotionConflictUnresolve extends AgentiaCommand {
5
+ export default class PromotionConflictUnresolve extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Conflict attachment 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 { fetchPromotion } from '../../../lib/promotion-get.js';
4
4
  import { formatPromotionDetail } from '../../../lib/promotion-types.js';
5
- export default class PromotionGet extends AgentiaCommand {
5
+ export default class PromotionGet extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Copado promotion 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 { CicdGateway } from '../../../../lib/cicd-gateway.js';
4
4
  import { buildPromotionManualTaskUpdatePayload, PROMOTION_MANUAL_TASK_STATUSES, promotionManualTaskEndpoint, } from '../../../../lib/promotion-job-steps.js';
5
- export default class PromotionJobStepUpdate extends AgentiaCommand {
5
+ export default class PromotionJobStepUpdate extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Promotion job step ID',
@@ -1,5 +1,5 @@
1
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
- import { displayListPagination } from '../../../lib/list-pagination.js';
1
+ import { CicdCommand } from '../../../lib/cicd-command.js';
2
+ import { displayListPagination, emitPaginatedListWarnings } from '../../../lib/list-pagination.js';
3
3
  import { buildPromotionListFilters, promotionListFilterFlags } from '../../../lib/promotion-flags.js';
4
4
  import { fetchPromotions } from '../../../lib/promotion-get.js';
5
5
  import { formatPromotionTable } from '../../../lib/promotion-types.js';
@@ -16,7 +16,7 @@ export function selectPromotionsForTableDisplay(promotions) {
16
16
  export function formatPromotionTableTruncationMessage(total) {
17
17
  return `Showing first ${PROMOTION_TABLE_DISPLAY_LIMIT} of ${total} promotions.`;
18
18
  }
19
- export default class PromotionList extends AgentiaCommand {
19
+ export default class PromotionList extends CicdCommand {
20
20
  static description = 'List Copado promotions';
21
21
  static examples = [
22
22
  '<%= config.bin %> <%= command.id %>',
@@ -28,6 +28,7 @@ export default class PromotionList extends AgentiaCommand {
28
28
  const { flags } = await this.parse(PromotionList);
29
29
  const filters = buildPromotionListFilters(flags);
30
30
  const page = await this.withSpinner('Fetching promotions', () => fetchPromotions(filters));
31
+ emitPaginatedListWarnings(this.warn.bind(this), page);
31
32
  this.display(() => {
32
33
  if (page.data.length === 0) {
33
34
  this.log('No promotions 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 PromotionOpen extends AgentiaCommand {
5
+ export default class PromotionOpen extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: 'Copado promotion ID',
@@ -0,0 +1,28 @@
1
+ import { Args } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { fetchPromotionQueue, formatPromotionQueueTable } from '../../../../lib/promotion-queue.js';
4
+ export default class PromotionQueueList extends AgentiaCommand {
5
+ static args = {
6
+ promotion: Args.string({ description: 'Copado promotion ID or name', required: true }),
7
+ };
8
+ static description = 'List the job queue for a promotion (jobs waiting on or blocking the destination)';
9
+ static examples = [
10
+ '<%= config.bin %> <%= command.id %> <promotion-id>',
11
+ '<%= config.bin %> <%= command.id %> <promotion-name> --json',
12
+ ];
13
+ async run() {
14
+ const { args } = await this.parse(PromotionQueueList);
15
+ const queue = await this.withSpinner('Fetching promotion queue', () => fetchPromotionQueue(args.promotion));
16
+ this.display(() => {
17
+ const items = queue.items ?? [];
18
+ if (items.length === 0) {
19
+ this.log('Promotion queue is empty.');
20
+ return;
21
+ }
22
+ this.log(`Queue resource: ${queue.resourceName ?? ''} (manage queue permission: ${queue.canManageQueue ? 'yes' : 'no'})`);
23
+ this.log(formatPromotionQueueTable(items));
24
+ });
25
+ return queue;
26
+ }
27
+ }
28
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1,37 @@
1
+ import { confirm } from '@inquirer/prompts';
2
+ import { Args, Flags } from '@oclif/core';
3
+ import { AgentiaCommand } from '../../../../lib/agentia-command.js';
4
+ import { formatPromotionQueueTable, removePromotionQueueItems } from '../../../../lib/promotion-queue.js';
5
+ export default class PromotionQueueRemove extends AgentiaCommand {
6
+ static args = {
7
+ promotion: Args.string({ description: 'Copado promotion ID or name', required: true }),
8
+ };
9
+ static description = 'Remove items from a promotion job queue (requires the Manage Queue custom permission). Use "promotion queue list" to find item IDs.';
10
+ static examples = [
11
+ '<%= config.bin %> <%= command.id %> <promotion-id> --item <queue-item-id>',
12
+ '<%= config.bin %> <%= command.id %> <promotion-name> -i <queue-item-id> -i <queue-item-id> --yes --json',
13
+ ];
14
+ static flags = {
15
+ item: Flags.string({ char: 'i', description: 'Queue item ID to remove (repeatable)', multiple: true, required: true }),
16
+ yes: Flags.boolean({ char: 'y', default: false, description: 'Confirm removal without prompting' }),
17
+ };
18
+ async run() {
19
+ const { args, flags } = await this.parse(PromotionQueueRemove);
20
+ if (!flags.yes) {
21
+ if (this.jsonEnabled() || !process.stdin.isTTY) {
22
+ this.error('Queue removal requires confirmation. Pass --yes for headless or JSON execution.', { exit: 2 });
23
+ }
24
+ if (!(await confirm({ default: false, message: `Remove ${flags.item.length} item(s) from the promotion queue?` }))) {
25
+ this.error('Queue removal canceled.', { exit: 1 });
26
+ }
27
+ }
28
+ const queue = await this.withSpinner('Removing queue items', () => removePromotionQueueItems(args.promotion, flags.item));
29
+ const items = queue.items ?? [];
30
+ this.display(() => {
31
+ this.log(`Removed ${flags.item.length} item(s) from the promotion queue.`);
32
+ this.log(items.length === 0 ? 'Promotion queue is now empty.' : formatPromotionQueueTable(items));
33
+ });
34
+ return queue;
35
+ }
36
+ }
37
+ //# sourceMappingURL=remove.js.map
@@ -1,8 +1,8 @@
1
1
  import { confirm } from '@inquirer/prompts';
2
2
  import { Args, Flags } from '@oclif/core';
3
- import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { CicdCommand } from '../../../lib/cicd-command.js';
4
4
  import { formatPromotionRunResult, isPromotionRunExecutionError, parseIgnoredMetadataJson, performPromotionResume, performPromotionRun, PROMOTION_OPERATIONS, PROMOTION_RUN_DEFAULT_TIMEOUT_SECONDS, promotionRunErrorJson, PromotionRunValidationError, } from '../../../lib/promotion-run.js';
5
- export default class PromotionRun extends AgentiaCommand {
5
+ export default class PromotionRun extends CicdCommand {
6
6
  static args = {
7
7
  id: Args.string({
8
8
  description: '18-character Salesforce Promotion ID',
@@ -0,0 +1,29 @@
1
+ import { Args } from '@oclif/core';
2
+ import { CicdCommand } from '../../../lib/cicd-command.js';
3
+ import { fetchPromotionStatus, formatPromotionStatus, } from '../../../lib/promotion-status.js';
4
+ export default class PromotionStatus extends CicdCommand {
5
+ static args = {
6
+ id: Args.string({
7
+ description: 'Copado promotion ID',
8
+ name: 'id',
9
+ required: true,
10
+ }),
11
+ };
12
+ static description = [
13
+ 'Show actionable status for a Copado promotion: user stories, current job step,',
14
+ 'queue summary, and whether a Manual Task or queue item needs attention.',
15
+ ].join(' ');
16
+ static examples = [
17
+ '<%= config.bin %> <%= command.id %> <promotion-id>',
18
+ '<%= config.bin %> <%= command.id %> <promotion-id> --json',
19
+ ];
20
+ async run() {
21
+ const { args } = await this.parse(PromotionStatus);
22
+ const snapshot = await this.withSpinner('Fetching promotion status', () => fetchPromotionStatus(args.id));
23
+ this.display(() => {
24
+ this.log(formatPromotionStatus(snapshot));
25
+ });
26
+ return snapshot;
27
+ }
28
+ }
29
+ //# sourceMappingURL=status.js.map
@@ -1,7 +1,7 @@
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 { configureHttps, promptHttpsPayload, readHttpsAuthPayloadFromStdin } from '../../../../../lib/repository-auth.js';
4
- export default class RepositoryAuthHttpsConfigure extends AgentiaCommand {
4
+ export default class RepositoryAuthHttpsConfigure extends CicdCommand {
5
5
  static args = { id: Args.string({ description: 'Copado Git repository ID', required: true }) };
6
6
  static description = 'Configure HTTPS authentication. Use a personal access token as the password when required by the provider.';
7
7
  static flags = {
@@ -1,11 +1,11 @@
1
1
  import { select } from '@inquirer/prompts';
2
2
  import { Args, Flags } from '@oclif/core';
3
- import { AgentiaCommand } from '../../../../../lib/agentia-command.js';
3
+ import { CicdCommand } from '../../../../../lib/cicd-command.js';
4
4
  import { CicdGateway } from '../../../../../lib/cicd-gateway.js';
5
5
  import { createLoopbackCallbackServer } from '../../../../../lib/loopback-callback-server.js';
6
6
  import { isHeadlessEnvironment, openUrl } from '../../../../../lib/open-browser.js';
7
7
  import { repositoryOAuthEndpoint, repositoryOAuthInitEndpoint, repositoryOAuthRepositoriesEndpoint, } from '../../../../../lib/repository-types.js';
8
- export default class RepositoryAuthOAuthLogin extends AgentiaCommand {
8
+ export default class RepositoryAuthOAuthLogin extends CicdCommand {
9
9
  static args = { id: Args.string({ description: 'Copado Git repository ID', required: true }) };
10
10
  static description = 'Authenticate a repository through browser OAuth and select a remote repository';
11
11
  static flags = {
@@ -1,7 +1,7 @@
1
1
  import { select } from '@inquirer/prompts';
2
2
  import { Args, Flags } from '@oclif/core';
3
- import { AgentiaCommand } from '../../../../lib/agentia-command.js';
4
- export default class RepositoryAuthSetup extends AgentiaCommand {
3
+ import { CicdCommand } from '../../../../lib/cicd-command.js';
4
+ export default class RepositoryAuthSetup extends CicdCommand {
5
5
  static args = { id: Args.string({ description: 'Copado Git repository ID', required: true }) };
6
6
  static description = 'Interactively configure repository authentication; OAuth is selected by default';
7
7
  static flags = { overwrite: Flags.boolean({ description: 'Replace an existing HTTPS or SSH credential' }) };