@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
@@ -0,0 +1,51 @@
1
+ import { Args, Flags } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { testingBrowserCommonFlags } from '../../../lib/testing-browser-command.js';
4
+ import { startTestingLive } from '../../../lib/testing-browser-operations.js';
5
+ import { normalizeTestingLiveStartScreen } from '../../../lib/testing-browser-requests.js';
6
+ import { TESTING_LIVE_LIBRARIES } from '../../../lib/testing-browser-types.js';
7
+ export default class TestingBrowserStart extends AgentiaCommand {
8
+ static args = {
9
+ 'job-id': Args.integer({ description: 'CRT job ID.', required: true }),
10
+ };
11
+ static deprecateAliases = true;
12
+ static description = 'Start and bootstrap a Copado Robotic Testing browser session';
13
+ static examples = [
14
+ '<%= config.bin %> <%= command.id %> <job-id> --project <project-id>',
15
+ '<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --library QForce --screen 1920x1080x24 --json',
16
+ ];
17
+ static flags = {
18
+ ...testingBrowserCommonFlags,
19
+ file: Flags.string({ description: 'Robot Framework file used to bootstrap the session.' }),
20
+ 'jap-ime': Flags.boolean({ default: false, description: 'Enable Japanese IME in the browser session.' }),
21
+ library: Flags.option({
22
+ default: 'QWeb',
23
+ description: 'Robot Framework library to bootstrap.',
24
+ options: [...TESTING_LIVE_LIBRARIES],
25
+ })(),
26
+ 'no-bootstrap': Flags.boolean({ default: false, description: 'Create the host without readiness/bootstrap calls.' }),
27
+ 'no-browser': Flags.boolean({ default: false, description: 'Do not open Chrome during QWeb/QForce bootstrap.' }),
28
+ screen: Flags.string({ description: 'Session screen as WIDTHxHEIGHTxDEPTH.' }),
29
+ timeout: Flags.integer({ default: 120, description: 'Readiness timeout in seconds.', min: 1 }),
30
+ viewport: Flags.string({ description: 'Session viewport as WIDTHxHEIGHT (24-bit depth).' }),
31
+ };
32
+ static hiddenAliases = ['testing:live:start'];
33
+ async run() {
34
+ const { args, flags } = await this.parse(TestingBrowserStart);
35
+ const screen = normalizeTestingLiveStartScreen({ screen: flags.screen, viewport: flags.viewport });
36
+ const result = await this.withSpinner('Starting CRT browser session', () => startTestingLive({
37
+ file: flags.file,
38
+ japIme: flags['jap-ime'],
39
+ jobId: args['job-id'],
40
+ library: flags.library,
41
+ noBootstrap: flags['no-bootstrap'],
42
+ noBrowser: flags['no-browser'],
43
+ projectId: flags.project,
44
+ screen,
45
+ timeoutMs: flags.timeout * 1000,
46
+ }));
47
+ this.display(() => this.log(`CRT browser session ${result.sessionId} is ready for job ${result.jobId}.`));
48
+ return result;
49
+ }
50
+ }
51
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1,26 @@
1
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
2
+ import { testingBrowserCommonFlags, testingBrowserOptionalJobArg } from '../../../lib/testing-browser-command.js';
3
+ import { getTestingLiveStatus } from '../../../lib/testing-browser-operations.js';
4
+ export default class TestingBrowserStatus extends AgentiaCommand {
5
+ static args = testingBrowserOptionalJobArg;
6
+ static deprecateAliases = true;
7
+ static description = 'Inspect status for the active CRT browser session';
8
+ static examples = ['<%= config.bin %> <%= command.id %> --project <project-id> --json'];
9
+ static flags = testingBrowserCommonFlags;
10
+ static hiddenAliases = ['testing:live:status'];
11
+ async run() {
12
+ const { args, flags } = await this.parse(TestingBrowserStatus);
13
+ const result = await this.withSpinner('Reading CRT browser status', () => getTestingLiveStatus({
14
+ jobId: args['job-id'],
15
+ projectId: flags.project,
16
+ sessionId: flags['session-id'],
17
+ }));
18
+ this.display(() => {
19
+ this.log(`Session: ${result.metadata.sessionId} (${result.metadata.status})`);
20
+ this.log(`Browser started: ${result.status.env.isBrowserStarted}`);
21
+ this.log(`Executor running: ${result.status.session.isRobotExecutorRunning}`);
22
+ });
23
+ return result;
24
+ }
25
+ }
26
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1,34 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { testingBrowserCommonFlags, testingBrowserOptionalJobArg } from '../../../lib/testing-browser-command.js';
4
+ import { stopTestingLive } from '../../../lib/testing-browser-operations.js';
5
+ import { testingLiveStopConfirmOptions } from '../../../lib/testing-browser-requests.js';
6
+ import { confirmTestingAction } from '../../../lib/testing-confirmation.js';
7
+ export default class TestingBrowserStop extends AgentiaCommand {
8
+ static args = testingBrowserOptionalJobArg;
9
+ static deprecateAliases = true;
10
+ static description = 'Stop the active Copado Robotic Testing browser session';
11
+ static examples = [
12
+ '<%= config.bin %> <%= command.id %> --project <project-id>',
13
+ '<%= config.bin %> <%= command.id %> <job-id> --project <project-id> --yes --json',
14
+ ];
15
+ static flags = {
16
+ ...testingBrowserCommonFlags,
17
+ yes: Flags.boolean({ char: 'y', default: false, description: 'Confirm browser session shutdown.' }),
18
+ };
19
+ static hiddenAliases = ['testing:live:stop'];
20
+ async run() {
21
+ const { args, flags } = await this.parse(TestingBrowserStop);
22
+ const confirmed = await confirmTestingAction(testingLiveStopConfirmOptions({ json: this.jsonEnabled(), yes: flags.yes }));
23
+ if (!confirmed)
24
+ return { stopped: false };
25
+ const result = await this.withSpinner('Stopping CRT browser session', () => stopTestingLive({
26
+ jobId: args['job-id'],
27
+ projectId: flags.project,
28
+ sessionId: flags['session-id'],
29
+ }));
30
+ this.display(() => this.log(`Stopped CRT browser session ${result.sessionId}.`));
31
+ return result;
32
+ }
33
+ }
34
+ //# sourceMappingURL=stop.js.map
@@ -0,0 +1,35 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { AgentiaCommand } from '../../../lib/agentia-command.js';
3
+ import { openUrl } from '../../../lib/open-browser.js';
4
+ import { testingBrowserCommonFlags } from '../../../lib/testing-browser-command.js';
5
+ import { testingBrowserViewUrl } from '../../../lib/testing-browser-operations.js';
6
+ export default class TestingBrowserView extends AgentiaCommand {
7
+ static deprecateAliases = true;
8
+ static description = 'Open the CRT browser session page';
9
+ static examples = [
10
+ '<%= config.bin %> <%= command.id %> --project <project-id>',
11
+ '<%= config.bin %> <%= command.id %> --project <project-id> --no-open --json',
12
+ ];
13
+ static flags = {
14
+ ...testingBrowserCommonFlags,
15
+ 'no-open': Flags.boolean({ default: false, description: 'Return the session URL without opening a browser.' }),
16
+ };
17
+ static hiddenAliases = ['testing:live:view'];
18
+ async run() {
19
+ const { flags } = await this.parse(TestingBrowserView);
20
+ if (this.jsonEnabled() && !flags['no-open']) {
21
+ throw new Error('CRT browser view cannot open a browser with --json. Re-run with --no-open.');
22
+ }
23
+ const url = await testingBrowserViewUrl({
24
+ projectId: flags.project,
25
+ sessionId: flags['session-id'],
26
+ });
27
+ if (!flags['no-open'])
28
+ await openUrl(url);
29
+ this.display(() => {
30
+ this.log(url);
31
+ });
32
+ return { access: 'authenticated-page-only', opened: !flags['no-open'], url };
33
+ }
34
+ }
35
+ //# sourceMappingURL=view.js.map
@@ -1,8 +1,8 @@
1
1
  import { Args } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
3
  import { confirmTestingAction } from '../../../../lib/testing-confirmation.js';
4
+ import { abortTestingBuild } from '../../../../lib/testing-execution.js';
4
5
  import { testingJobFlag, testingProjectFlag, testingYesFlag } from '../../../../lib/testing-flags.js';
5
- import { abortTestingBuild } from '../../../../lib/testing-operations.js';
6
6
  import { formatTestingRecord } from '../../../../lib/testing-types.js';
7
7
  export default class TestingJobRunsAbort extends AgentiaCommand {
8
8
  static args = {
@@ -1,7 +1,7 @@
1
1
  import { Args, Flags } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { getTestingBuild } from '../../../../lib/testing-execution.js';
3
4
  import { testingJobFlag, testingProjectFlag } from '../../../../lib/testing-flags.js';
4
- import { getTestingBuild } from '../../../../lib/testing-operations.js';
5
5
  import { formatTestingBuildDetail, formatTestingBuildSummary } from '../../../../lib/testing-types.js';
6
6
  export default class TestingJobRunsGet extends AgentiaCommand {
7
7
  static args = {
@@ -1,7 +1,7 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { countTestingBuilds, listTestingBuilds } from '../../../../lib/testing-execution.js';
3
4
  import { testingProjectFlag } from '../../../../lib/testing-flags.js';
4
- import { countTestingBuilds, listTestingBuilds } from '../../../../lib/testing-operations.js';
5
5
  import { formatTestingBuildTable, TESTING_BUILD_STATUSES } from '../../../../lib/testing-types.js';
6
6
  export default class TestingJobRunsList extends AgentiaCommand {
7
7
  static deprecateAliases = true;
@@ -1,7 +1,7 @@
1
1
  import { Args } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { getTestingBuildLogs } from '../../../../lib/testing-execution.js';
3
4
  import { testingJobFlag, testingLogOptionFlags, testingOutputFlags, testingProjectFlag, } from '../../../../lib/testing-flags.js';
4
- import { getTestingBuildLogs } from '../../../../lib/testing-operations.js';
5
5
  export default class TestingJobRunsLogs extends AgentiaCommand {
6
6
  static args = {
7
7
  id: Args.integer({
@@ -1,7 +1,7 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import { AgentiaCommand } from '../../../../lib/agentia-command.js';
3
+ import { searchTestingBuilds } from '../../../../lib/testing-execution.js';
3
4
  import { testingJobFlag, testingProjectFlag } from '../../../../lib/testing-flags.js';
4
- import { searchTestingBuilds } from '../../../../lib/testing-operations.js';
5
5
  import { formatTestingBuildTable, TESTING_RUN_TYPES, } from '../../../../lib/testing-types.js';
6
6
  export default class TestingJobRunsSearch extends AgentiaCommand {
7
7
  static deprecateAliases = true;
@@ -0,0 +1,59 @@
1
+ import { confirm } from '@inquirer/prompts';
2
+ import { assertValidCicdConnectionName, CICD_ALLOW_PRODUCTION_ENV, clearProcessCicdConnectionOverride, formatCicdConnectionLabel, getCicdNamedConnection, parseCicdConnectionFromArgv, productionWritesAllowed, setProcessCicdConnectionOverride, setProcessProductionConnectionConfirmed, } from '../../lib/cicd-connection.js';
3
+ import { isJsonOutputRequested } from '../../lib/version-warning.js';
4
+ const hook = async function ({ argv, config, id }) {
5
+ clearProcessCicdConnectionOverride();
6
+ // Only CICD topic commands use named CICD connection overrides.
7
+ if (id === undefined || !id.startsWith('cicd')) {
8
+ return;
9
+ }
10
+ let connectionName;
11
+ try {
12
+ connectionName = parseCicdConnectionFromArgv(argv);
13
+ }
14
+ catch (error) {
15
+ this.error(error instanceof Error ? error.message : String(error), { exit: 2 });
16
+ }
17
+ if (connectionName === undefined) {
18
+ const fromEnv = process.env.AGENTIA_CICD_CONNECTION?.trim();
19
+ if (fromEnv !== undefined && fromEnv.length > 0) {
20
+ try {
21
+ connectionName = assertValidCicdConnectionName(fromEnv);
22
+ }
23
+ catch (error) {
24
+ this.error(error instanceof Error ? error.message : String(error), { exit: 2 });
25
+ }
26
+ }
27
+ }
28
+ if (connectionName === undefined) {
29
+ return;
30
+ }
31
+ setProcessCicdConnectionOverride(connectionName);
32
+ const connection = getCicdNamedConnection(connectionName);
33
+ if (connection === undefined) {
34
+ return this.error(`CICD connection "${connectionName}" is not configured. Run \`agentia auth set --cicd <key> --connection ${connectionName} [--region <region> | --custom-url <url>]\`.`, { exit: 2 });
35
+ }
36
+ const label = formatCicdConnectionLabel(connection);
37
+ if (!isJsonOutputRequested(argv, config.scopedEnvVar('CONTENT_TYPE'))) {
38
+ this.log(`CICD connection: ${label}`);
39
+ }
40
+ if (connection.kind !== 'production') {
41
+ return;
42
+ }
43
+ if (productionWritesAllowed(argv)) {
44
+ return;
45
+ }
46
+ if (isJsonOutputRequested(argv, config.scopedEnvVar('CONTENT_TYPE')) || !process.stdin.isTTY) {
47
+ return this.error(`CICD connection "${connection.name}" is tagged production. Re-run with --yes, or set ${CICD_ALLOW_PRODUCTION_ENV}=true.`, { exit: 2 });
48
+ }
49
+ const accepted = await confirm({
50
+ default: false,
51
+ message: `Target CICD connection is production (${connection.name} @ ${connection.baseUrl}). Continue?`,
52
+ });
53
+ if (!accepted) {
54
+ return this.error('Cancelled. No CICD gateway requests were made.', { exit: 1 });
55
+ }
56
+ setProcessProductionConnectionConfirmed(true);
57
+ };
58
+ export default hook;
59
+ //# sourceMappingURL=cicd-connection.js.map
@@ -1,8 +1,10 @@
1
1
  import { Command, Errors, ux } from '@oclif/core';
2
2
  import { format } from 'node:util';
3
- import { createTransactionId, runWithGatewayTransactionContext } from './cicd-gateway.js';
3
+ import { createTransactionId, getGatewayClientOrigin, getGatewayTransactionOrigin, runWithGatewayTransactionContext, } from './cicd-gateway.js';
4
4
  import { colorizeCliSeverityError, colorizeCliSeverityText } from './cli-severity-color.js';
5
- import { isCommandOutputCaptureActive } from './command-output-buffer.js';
5
+ import { COMMAND_HISTORY_TEXT_MAX_BYTES } from './command-history-sanitization.js';
6
+ import { recordCommandHistory } from './command-history.js';
7
+ import { isCommandOutputCaptureActive, runWithCommandOutputCapture, runWithoutCommandOutputCapture, } from './command-output-buffer.js';
6
8
  import { rememberIdeCommandError } from './ide-command-events.js';
7
9
  import { redactErrorMessage, redactSecrets } from './secret-redaction.js';
8
10
  const TRANSACTION_ID_REPORTED = Symbol('agentiaTransactionIdReported');
@@ -49,13 +51,40 @@ export function formatElapsedSecondsMessage(seconds) {
49
51
  export class AgentiaCommand extends Command {
50
52
  static enableJsonFlag = true;
51
53
  static experimental = false;
54
+ commandClientOrigin;
55
+ commandExecutionId;
56
+ commandHistoryCapture;
57
+ commandHistoryError;
58
+ commandHistoryResult;
59
+ commandHistoryStartedAtMs;
60
+ commandHistoryWritten = false;
52
61
  commandTransactionId;
53
62
  async _run() {
54
63
  const transactionId = createTransactionId();
64
+ this.commandClientOrigin = getGatewayTransactionOrigin() ?? getGatewayClientOrigin();
65
+ this.commandExecutionId = createTransactionId();
66
+ this.commandHistoryStartedAtMs = Date.now();
55
67
  this.commandTransactionId = transactionId;
56
- return runWithGatewayTransactionContext({ origin: 'cli', referer: this.id, transactionId }, () => super._run());
68
+ return runWithGatewayTransactionContext({ origin: this.commandClientOrigin, referer: this.id, transactionId }, async () => {
69
+ let caught;
70
+ try {
71
+ const result = await this.runWithHistoryCapture(() => super._run());
72
+ if (this.commandHistoryError === undefined)
73
+ this.commandHistoryResult = result;
74
+ return result;
75
+ }
76
+ catch (error) {
77
+ caught = error instanceof Error ? error : new Error(String(error));
78
+ this.commandHistoryError ??= caught;
79
+ throw error;
80
+ }
81
+ finally {
82
+ await this.recordCommandHistoryOnce(this.commandHistoryError ?? caught);
83
+ }
84
+ });
57
85
  }
58
86
  async catch(error) {
87
+ this.commandHistoryError = error;
59
88
  this.reportHumanErrorTransactionId(error);
60
89
  if (!this.jsonEnabled()) {
61
90
  colorizeCliSeverityError(error, 'error');
@@ -116,6 +145,7 @@ export class AgentiaCommand extends Command {
116
145
  };
117
146
  }
118
147
  toSuccessJson(result) {
148
+ this.commandHistoryResult = result;
119
149
  const warnings = this.jsonWarnings(result);
120
150
  return {
121
151
  result,
@@ -141,14 +171,14 @@ export class AgentiaCommand extends Command {
141
171
  }
142
172
  return action();
143
173
  }
144
- ux.action.start(message);
174
+ runWithoutCommandOutputCapture(() => ux.action.start(message));
145
175
  try {
146
176
  const result = await action();
147
- ux.action.stop();
177
+ runWithoutCommandOutputCapture(() => ux.action.stop());
148
178
  return result;
149
179
  }
150
180
  catch (error) {
151
- ux.action.stop(ux.colorize('red', 'failed'));
181
+ runWithoutCommandOutputCapture(() => ux.action.stop(ux.colorize('red', 'failed')));
152
182
  throw error;
153
183
  }
154
184
  }
@@ -162,6 +192,25 @@ export class AgentiaCommand extends Command {
162
192
  ];
163
193
  return [...new Set(warnings)];
164
194
  }
195
+ async recordCommandHistoryOnce(error) {
196
+ if (this.commandHistoryWritten)
197
+ return;
198
+ this.commandHistoryWritten = true;
199
+ const capture = this.commandHistoryCapture;
200
+ await recordCommandHistory({
201
+ argv: this.argv,
202
+ clientOrigin: this.commandClientOrigin,
203
+ cliVersion: this.config.version,
204
+ commandId: this.id ?? '',
205
+ error,
206
+ executionId: this.commandExecutionId,
207
+ logs: capture?.events,
208
+ result: this.commandHistoryResult,
209
+ startedAtMs: this.commandHistoryStartedAtMs,
210
+ transactionId: this.commandTransactionId,
211
+ truncatedStreams: capture?.truncatedStreams,
212
+ });
213
+ }
165
214
  reportHumanErrorTransactionId(error) {
166
215
  if (this.jsonEnabled() || this.commandTransactionId === undefined) {
167
216
  return;
@@ -180,5 +229,19 @@ export class AgentiaCommand extends Command {
180
229
  const { warnings } = result;
181
230
  return Array.isArray(warnings) ? warnings.filter((warning) => typeof warning === 'string') : [];
182
231
  }
232
+ async runWithHistoryCapture(action) {
233
+ const capture = await runWithCommandOutputCapture(action, {
234
+ captureVisibleToCommand: false,
235
+ forwardStderr: true,
236
+ forwardStdout: true,
237
+ maxBytes: COMMAND_HISTORY_TEXT_MAX_BYTES,
238
+ onCapture: (captured) => {
239
+ this.commandHistoryCapture = captured;
240
+ },
241
+ tail: true,
242
+ trackEvents: true,
243
+ });
244
+ return capture.result;
245
+ }
183
246
  }
184
247
  //# sourceMappingURL=agentia-command.js.map
@@ -0,0 +1,3 @@
1
+ import {modules} from './runtime.js';
2
+ const CicdCommand = modules["cicd-command.js"]["CicdCommand"]
3
+ export {CicdCommand};
@@ -0,0 +1,22 @@
1
+ import {modules} from './runtime.js';
2
+ const CICD_ALLOW_PRODUCTION_ENV = modules["cicd-connection.js"]["CICD_ALLOW_PRODUCTION_ENV"]
3
+ const CICD_CONNECTION_ENV = modules["cicd-connection.js"]["CICD_CONNECTION_ENV"]
4
+ const CICD_CONNECTION_NAME_REGEX = modules["cicd-connection.js"]["CICD_CONNECTION_NAME_REGEX"]
5
+ const activeCicdConnectionOverrideName = modules["cicd-connection.js"]["activeCicdConnectionOverrideName"]
6
+ const assertProductionConnectionAllowed = modules["cicd-connection.js"]["assertProductionConnectionAllowed"]
7
+ const assertValidCicdConnectionKind = modules["cicd-connection.js"]["assertValidCicdConnectionKind"]
8
+ const assertValidCicdConnectionName = modules["cicd-connection.js"]["assertValidCicdConnectionName"]
9
+ const clearProcessCicdConnectionOverride = modules["cicd-connection.js"]["clearProcessCicdConnectionOverride"]
10
+ const deleteCicdNamedConnection = modules["cicd-connection.js"]["deleteCicdNamedConnection"]
11
+ const formatCicdConnectionLabel = modules["cicd-connection.js"]["formatCicdConnectionLabel"]
12
+ const getCicdNamedConnection = modules["cicd-connection.js"]["getCicdNamedConnection"]
13
+ const listCicdNamedConnections = modules["cicd-connection.js"]["listCicdNamedConnections"]
14
+ const parseCicdConnectionFromArgv = modules["cicd-connection.js"]["parseCicdConnectionFromArgv"]
15
+ const productionWritesAllowed = modules["cicd-connection.js"]["productionWritesAllowed"]
16
+ const resolveNamedCicdConnectionCredentials = modules["cicd-connection.js"]["resolveNamedCicdConnectionCredentials"]
17
+ const runWithCicdConnectionOverride = modules["cicd-connection.js"]["runWithCicdConnectionOverride"]
18
+ const setProcessCicdConnectionOverride = modules["cicd-connection.js"]["setProcessCicdConnectionOverride"]
19
+ const setProcessProductionConnectionConfirmed = modules["cicd-connection.js"]["setProcessProductionConnectionConfirmed"]
20
+ const summarizeCicdNamedConnection = modules["cicd-connection.js"]["summarizeCicdNamedConnection"]
21
+ const upsertCicdNamedConnection = modules["cicd-connection.js"]["upsertCicdNamedConnection"]
22
+ export {CICD_ALLOW_PRODUCTION_ENV, CICD_CONNECTION_ENV, CICD_CONNECTION_NAME_REGEX, activeCicdConnectionOverrideName, assertProductionConnectionAllowed, assertValidCicdConnectionKind, assertValidCicdConnectionName, clearProcessCicdConnectionOverride, deleteCicdNamedConnection, formatCicdConnectionLabel, getCicdNamedConnection, listCicdNamedConnections, parseCicdConnectionFromArgv, productionWritesAllowed, resolveNamedCicdConnectionCredentials, runWithCicdConnectionOverride, setProcessCicdConnectionOverride, setProcessProductionConnectionConfirmed, summarizeCicdNamedConnection, upsertCicdNamedConnection};
@@ -25,6 +25,7 @@ const getActiveHttpRequestOptionsForTests = modules["cicd-gateway.js"]["getActiv
25
25
  const getGatewayClientOrigin = modules["cicd-gateway.js"]["getGatewayClientOrigin"]
26
26
  const getGatewayReferer = modules["cicd-gateway.js"]["getGatewayReferer"]
27
27
  const getGatewayTransactionId = modules["cicd-gateway.js"]["getGatewayTransactionId"]
28
+ const getGatewayTransactionOrigin = modules["cicd-gateway.js"]["getGatewayTransactionOrigin"]
28
29
  const isCicdWarningResponseBody = modules["cicd-gateway.js"]["isCicdWarningResponseBody"]
29
30
  const isCicdWarningStatus = modules["cicd-gateway.js"]["isCicdWarningStatus"]
30
31
  const maskUrlSecrets = modules["cicd-gateway.js"]["maskUrlSecrets"]
@@ -42,4 +43,4 @@ const scheduleGatewayEventLog = modules["cicd-gateway.js"]["scheduleGatewayEvent
42
43
  const setGatewayEventLogSenderForTests = modules["cicd-gateway.js"]["setGatewayEventLogSenderForTests"]
43
44
  const setHttpRequestForTests = modules["cicd-gateway.js"]["setHttpRequestForTests"]
44
45
  const tryResolveCicdCredentials = modules["cicd-gateway.js"]["tryResolveCicdCredentials"]
45
- export {ADV_GATEWAY_EVENT_SERVICE, AGENTIA_CLIENT_ORIGIN_ENV, AGENTIA_IDE_VERSION_ENV, AI_GATEWAY_EVENT_SERVICE, CICD_ENV, CRT_GATEWAY_EVENT_SERVICE, CicdGateway, CicdGatewayError, GATEWAY_EVENT_API_CALL, GATEWAY_EVENT_UNKNOWN, MCP_CICD_DEFAULT_REQUEST_TIMEOUT_MS, PLUGIN_GATEWAY_EVENT_SERVICE, buildGatewayEventLogPayload, cicdApiUrl, createTransactionId, discoverCicdBaseUrl, flushGatewayEventLogsForTests, formatCicdGatewayError, formatGatewayEventTimestamp, gatewayEventSource, gatewayRefererHeaders, gatewayUserAgent, getActiveHttpRequestOptionsForTests, getGatewayClientOrigin, getGatewayReferer, getGatewayTransactionId, isCicdWarningResponseBody, isCicdWarningStatus, maskUrlSecrets, maskedCicdApiUrl, normalizeCicdBaseUrl, parseRetryAfterHeader, resetGatewayEventLogSenderForTests, resetHttpRequestForTests, resolveAndValidateCicdEndpoint, resolveCicdCredentials, resolveCicdRequestTimeoutMs, resolveConfiguredCicdBaseUrl, runWithGatewayTransactionContext, scheduleGatewayEventLog, setGatewayEventLogSenderForTests, setHttpRequestForTests, tryResolveCicdCredentials};
46
+ export {ADV_GATEWAY_EVENT_SERVICE, AGENTIA_CLIENT_ORIGIN_ENV, AGENTIA_IDE_VERSION_ENV, AI_GATEWAY_EVENT_SERVICE, CICD_ENV, CRT_GATEWAY_EVENT_SERVICE, CicdGateway, CicdGatewayError, GATEWAY_EVENT_API_CALL, GATEWAY_EVENT_UNKNOWN, MCP_CICD_DEFAULT_REQUEST_TIMEOUT_MS, PLUGIN_GATEWAY_EVENT_SERVICE, buildGatewayEventLogPayload, cicdApiUrl, createTransactionId, discoverCicdBaseUrl, flushGatewayEventLogsForTests, formatCicdGatewayError, formatGatewayEventTimestamp, gatewayEventSource, gatewayRefererHeaders, gatewayUserAgent, getActiveHttpRequestOptionsForTests, getGatewayClientOrigin, getGatewayReferer, getGatewayTransactionId, getGatewayTransactionOrigin, isCicdWarningResponseBody, isCicdWarningStatus, maskUrlSecrets, maskedCicdApiUrl, normalizeCicdBaseUrl, parseRetryAfterHeader, resetGatewayEventLogSenderForTests, resetHttpRequestForTests, resolveAndValidateCicdEndpoint, resolveCicdCredentials, resolveCicdRequestTimeoutMs, resolveConfiguredCicdBaseUrl, runWithGatewayTransactionContext, scheduleGatewayEventLog, setGatewayEventLogSenderForTests, setHttpRequestForTests, tryResolveCicdCredentials};
@@ -0,0 +1,9 @@
1
+ import {modules} from './runtime.js';
2
+ const COMMAND_HISTORY_RESULT_MAX_BYTES = modules["command-history-sanitization.js"]["COMMAND_HISTORY_RESULT_MAX_BYTES"]
3
+ const COMMAND_HISTORY_TEXT_MAX_BYTES = modules["command-history-sanitization.js"]["COMMAND_HISTORY_TEXT_MAX_BYTES"]
4
+ const commandHistoryLogsText = modules["command-history-sanitization.js"]["commandHistoryLogsText"]
5
+ const sanitizeCommandHistoryLogs = modules["command-history-sanitization.js"]["sanitizeCommandHistoryLogs"]
6
+ const sanitizeCommandHistoryParameters = modules["command-history-sanitization.js"]["sanitizeCommandHistoryParameters"]
7
+ const sanitizeCommandHistoryResult = modules["command-history-sanitization.js"]["sanitizeCommandHistoryResult"]
8
+ const sanitizeCommandHistoryText = modules["command-history-sanitization.js"]["sanitizeCommandHistoryText"]
9
+ export {COMMAND_HISTORY_RESULT_MAX_BYTES, COMMAND_HISTORY_TEXT_MAX_BYTES, commandHistoryLogsText, sanitizeCommandHistoryLogs, sanitizeCommandHistoryParameters, sanitizeCommandHistoryResult, sanitizeCommandHistoryText};
@@ -0,0 +1,11 @@
1
+ import {modules} from './runtime.js';
2
+ const COMMAND_HISTORY_DEFAULT_LIST_LIMIT = modules["command-history.js"]["COMMAND_HISTORY_DEFAULT_LIST_LIMIT"]
3
+ const COMMAND_HISTORY_LIMIT = modules["command-history.js"]["COMMAND_HISTORY_LIMIT"]
4
+ const clearCommandHistory = modules["command-history.js"]["clearCommandHistory"]
5
+ const commandHistoryPath = modules["command-history.js"]["commandHistoryPath"]
6
+ const readCommandHistory = modules["command-history.js"]["readCommandHistory"]
7
+ const recordCommandHistory = modules["command-history.js"]["recordCommandHistory"]
8
+ const recordMcpToolHistory = modules["command-history.js"]["recordMcpToolHistory"]
9
+ const setCommandHistoryRootForTests = modules["command-history.js"]["setCommandHistoryRootForTests"]
10
+ const shouldRecordCommandHistory = modules["command-history.js"]["shouldRecordCommandHistory"]
11
+ export {COMMAND_HISTORY_DEFAULT_LIST_LIMIT, COMMAND_HISTORY_LIMIT, clearCommandHistory, commandHistoryPath, readCommandHistory, recordCommandHistory, recordMcpToolHistory, setCommandHistoryRootForTests, shouldRecordCommandHistory};
@@ -6,10 +6,15 @@ const appendCommandOutputLine = modules["command-output-buffer.js"]["appendComma
6
6
  const attachCapturedLogs = modules["command-output-buffer.js"]["attachCapturedLogs"]
7
7
  const attachCapturedOutputLogs = modules["command-output-buffer.js"]["attachCapturedOutputLogs"]
8
8
  const commandStdioCaptureOptions = modules["command-output-buffer.js"]["commandStdioCaptureOptions"]
9
+ const isAnyCommandOutputCaptureActive = modules["command-output-buffer.js"]["isAnyCommandOutputCaptureActive"]
9
10
  const isCommandOutputCaptureActive = modules["command-output-buffer.js"]["isCommandOutputCaptureActive"]
11
+ const readCapturedCommandOutputSnapshot = modules["command-output-buffer.js"]["readCapturedCommandOutputSnapshot"]
10
12
  const readCapturedCommandOutputText = modules["command-output-buffer.js"]["readCapturedCommandOutputText"]
11
13
  const redactCommandOutput = modules["command-output-buffer.js"]["redactCommandOutput"]
12
14
  const runWithCommandOutputCapture = modules["command-output-buffer.js"]["runWithCommandOutputCapture"]
15
+ const runWithoutCommandOutputCapture = modules["command-output-buffer.js"]["runWithoutCommandOutputCapture"]
13
16
  const splitCommandOutputLines = modules["command-output-buffer.js"]["splitCommandOutputLines"]
17
+ const tailUtf8 = modules["command-output-buffer.js"]["tailUtf8"]
18
+ const truncateUtf8 = modules["command-output-buffer.js"]["truncateUtf8"]
14
19
  const withCapturedCommandOutput = modules["command-output-buffer.js"]["withCapturedCommandOutput"]
15
- export {COMMAND_OUTPUT_MAX_BYTES, MCP_STDIO_CAPTURE_OPTIONS, appendCommandOutput, appendCommandOutputLine, attachCapturedLogs, attachCapturedOutputLogs, commandStdioCaptureOptions, isCommandOutputCaptureActive, readCapturedCommandOutputText, redactCommandOutput, runWithCommandOutputCapture, splitCommandOutputLines, withCapturedCommandOutput};
20
+ export {COMMAND_OUTPUT_MAX_BYTES, MCP_STDIO_CAPTURE_OPTIONS, appendCommandOutput, appendCommandOutputLine, attachCapturedLogs, attachCapturedOutputLogs, commandStdioCaptureOptions, isAnyCommandOutputCaptureActive, isCommandOutputCaptureActive, readCapturedCommandOutputSnapshot, readCapturedCommandOutputText, redactCommandOutput, runWithCommandOutputCapture, runWithoutCommandOutputCapture, splitCommandOutputLines, tailUtf8, truncateUtf8, withCapturedCommandOutput};
@@ -10,9 +10,11 @@ const migrateUserSettingsFromProjectConfig = modules["defaults-store.js"]["migra
10
10
  const readCredentialSyncReceipt = modules["defaults-store.js"]["readCredentialSyncReceipt"]
11
11
  const readDefaults = modules["defaults-store.js"]["readDefaults"]
12
12
  const readEnableLocalPromote = modules["defaults-store.js"]["readEnableLocalPromote"]
13
+ const readGlobalConfigDocument = modules["defaults-store.js"]["readGlobalConfigDocument"]
13
14
  const readLastApexTestClassesSelected = modules["defaults-store.js"]["readLastApexTestClassesSelected"]
14
15
  const readLastBaseBranch = modules["defaults-store.js"]["readLastBaseBranch"]
15
16
  const readLastDevOrgBranch = modules["defaults-store.js"]["readLastDevOrgBranch"]
17
+ const readLastEnvironmentSyncFeatureBranch = modules["defaults-store.js"]["readLastEnvironmentSyncFeatureBranch"]
16
18
  const readLastEnvironmentSyncName = modules["defaults-store.js"]["readLastEnvironmentSyncName"]
17
19
  const readLastFullMetadataSelected = modules["defaults-store.js"]["readLastFullMetadataSelected"]
18
20
  const readLastPermissionSelected = modules["defaults-store.js"]["readLastPermissionSelected"]
@@ -30,11 +32,13 @@ const resolveDefaults = modules["defaults-store.js"]["resolveDefaults"]
30
32
  const setDefaultsStorePathsForTests = modules["defaults-store.js"]["setDefaultsStorePathsForTests"]
31
33
  const setDefaultsStoreProjectRoot = modules["defaults-store.js"]["setDefaultsStoreProjectRoot"]
32
34
  const unsetDefaults = modules["defaults-store.js"]["unsetDefaults"]
35
+ const updateGlobalConfigDocument = modules["defaults-store.js"]["updateGlobalConfigDocument"]
33
36
  const writeCredentialSyncReceipt = modules["defaults-store.js"]["writeCredentialSyncReceipt"]
34
37
  const writeDefaults = modules["defaults-store.js"]["writeDefaults"]
35
38
  const writeLastCommitSelections = modules["defaults-store.js"]["writeLastCommitSelections"]
39
+ const writeLastEnvironmentSyncFeatureBranch = modules["defaults-store.js"]["writeLastEnvironmentSyncFeatureBranch"]
36
40
  const writeLastEnvironmentSyncName = modules["defaults-store.js"]["writeLastEnvironmentSyncName"]
37
41
  const writeLastWorkSelection = modules["defaults-store.js"]["writeLastWorkSelection"]
38
42
  const writeUpdateChannel = modules["defaults-store.js"]["writeUpdateChannel"]
39
43
  const writeUserContext = modules["defaults-store.js"]["writeUserContext"]
40
- export {DEFAULT_WORK_PUSH_RETRY_TIMEOUT_SECONDS, clearCredentialSyncReceipt, clearLastEnvironmentSyncName, clearLastKeysFromUserConfig, clearUserContext, getDefaultsStorePaths, isValidUserContext, migrateUserSettingsFromProjectConfig, readCredentialSyncReceipt, readDefaults, readEnableLocalPromote, readLastApexTestClassesSelected, readLastBaseBranch, readLastDevOrgBranch, readLastEnvironmentSyncName, readLastFullMetadataSelected, readLastPermissionSelected, readLastPullRequestBaseUrl, readLastWorkItem, readLastWorkItemId, readLastWorkItemTitle, readSkipNestedMetadataDetection, readSkipPullRequest, readUpdateChannel, readUserContext, readWorkPushRetryTimeoutSeconds, resetDefaultsStorePathsForTests, resolveDefaults, setDefaultsStorePathsForTests, setDefaultsStoreProjectRoot, unsetDefaults, writeCredentialSyncReceipt, writeDefaults, writeLastCommitSelections, writeLastEnvironmentSyncName, writeLastWorkSelection, writeUpdateChannel, writeUserContext};
44
+ export {DEFAULT_WORK_PUSH_RETRY_TIMEOUT_SECONDS, clearCredentialSyncReceipt, clearLastEnvironmentSyncName, clearLastKeysFromUserConfig, clearUserContext, getDefaultsStorePaths, isValidUserContext, migrateUserSettingsFromProjectConfig, readCredentialSyncReceipt, readDefaults, readEnableLocalPromote, readGlobalConfigDocument, readLastApexTestClassesSelected, readLastBaseBranch, readLastDevOrgBranch, readLastEnvironmentSyncFeatureBranch, readLastEnvironmentSyncName, readLastFullMetadataSelected, readLastPermissionSelected, readLastPullRequestBaseUrl, readLastWorkItem, readLastWorkItemId, readLastWorkItemTitle, readSkipNestedMetadataDetection, readSkipPullRequest, readUpdateChannel, readUserContext, readWorkPushRetryTimeoutSeconds, resetDefaultsStorePathsForTests, resolveDefaults, setDefaultsStorePathsForTests, setDefaultsStoreProjectRoot, unsetDefaults, updateGlobalConfigDocument, writeCredentialSyncReceipt, writeDefaults, writeLastCommitSelections, writeLastEnvironmentSyncFeatureBranch, writeLastEnvironmentSyncName, writeLastWorkSelection, writeUpdateChannel, writeUserContext};
@@ -1,7 +1,9 @@
1
1
  import {modules} from './runtime.js';
2
+ const normalizeDependencyInputPath = modules["dependency-from-changes.js"]["normalizeDependencyInputPath"]
2
3
  const resetGitChangedFilesForTests = modules["dependency-from-changes.js"]["resetGitChangedFilesForTests"]
3
4
  const resolveChangedPath = modules["dependency-from-changes.js"]["resolveChangedPath"]
4
5
  const resolvedSelectionsFromChangedFiles = modules["dependency-from-changes.js"]["resolvedSelectionsFromChangedFiles"]
6
+ const resolvedSelectionsFromPaths = modules["dependency-from-changes.js"]["resolvedSelectionsFromPaths"]
5
7
  const selectionsFromChangedFiles = modules["dependency-from-changes.js"]["selectionsFromChangedFiles"]
6
8
  const setGitChangedFilesForTests = modules["dependency-from-changes.js"]["setGitChangedFilesForTests"]
7
- export {resetGitChangedFilesForTests, resolveChangedPath, resolvedSelectionsFromChangedFiles, selectionsFromChangedFiles, setGitChangedFilesForTests};
9
+ export {normalizeDependencyInputPath, resetGitChangedFilesForTests, resolveChangedPath, resolvedSelectionsFromChangedFiles, resolvedSelectionsFromPaths, selectionsFromChangedFiles, setGitChangedFilesForTests};
@@ -0,0 +1,3 @@
1
+ import {modules} from './runtime.js';
2
+ const resolveDependencySourceContext = modules["dependency-source-context.js"]["resolveDependencySourceContext"]
3
+ export {resolveDependencySourceContext};
@@ -0,0 +1,3 @@
1
+ import {modules} from './runtime.js';
2
+ const fetchFunctions = modules["function-list.js"]["fetchFunctions"]
3
+ export {fetchFunctions};
@@ -3,6 +3,7 @@ const NAME_STATUS_PRETTY_FORMAT = modules["git-worktree.js"]["NAME_STATUS_PRETTY
3
3
  const abortMerge = modules["git-worktree.js"]["abortMerge"]
4
4
  const checkoutBranch = modules["git-worktree.js"]["checkoutBranch"]
5
5
  const checkoutFeatureBranch = modules["git-worktree.js"]["checkoutFeatureBranch"]
6
+ const checkoutPathsFromRef = modules["git-worktree.js"]["checkoutPathsFromRef"]
6
7
  const checkoutPreferredBranch = modules["git-worktree.js"]["checkoutPreferredBranch"]
7
8
  const commitAllTrackedChanges = modules["git-worktree.js"]["commitAllTrackedChanges"]
8
9
  const commitAllowEmpty = modules["git-worktree.js"]["commitAllowEmpty"]
@@ -27,9 +28,11 @@ const isAncestor = modules["git-worktree.js"]["isAncestor"]
27
28
  const isInsideGitWorkTree = modules["git-worktree.js"]["isInsideGitWorkTree"]
28
29
  const isMergeInProgress = modules["git-worktree.js"]["isMergeInProgress"]
29
30
  const isSafeGitBranchName = modules["git-worktree.js"]["isSafeGitBranchName"]
31
+ const listDiffNamesBetween = modules["git-worktree.js"]["listDiffNamesBetween"]
30
32
  const listDiffNamesVsHead = modules["git-worktree.js"]["listDiffNamesVsHead"]
31
33
  const listPendingChanges = modules["git-worktree.js"]["listPendingChanges"]
32
34
  const listStagedChanges = modules["git-worktree.js"]["listStagedChanges"]
35
+ const listTreeFileNames = modules["git-worktree.js"]["listTreeFileNames"]
33
36
  const listUnmergedFiles = modules["git-worktree.js"]["listUnmergedFiles"]
34
37
  const localBranchExists = modules["git-worktree.js"]["localBranchExists"]
35
38
  const mergeFfOnly = modules["git-worktree.js"]["mergeFfOnly"]
@@ -49,4 +52,4 @@ const restoreFeatureBranch = modules["git-worktree.js"]["restoreFeatureBranch"]
49
52
  const restoreHeadPaths = modules["git-worktree.js"]["restoreHeadPaths"]
50
53
  const setGitExecForTests = modules["git-worktree.js"]["setGitExecForTests"]
51
54
  const stageAndCommit = modules["git-worktree.js"]["stageAndCommit"]
52
- export {NAME_STATUS_PRETTY_FORMAT, abortMerge, checkoutBranch, checkoutFeatureBranch, checkoutPreferredBranch, commitAllTrackedChanges, commitAllowEmpty, commitCurrentMerge, commitStagedChanges, countCommitsSince, createAndCheckoutBranch, fetchAndCheckoutBranch, fetchOriginBranch, fetchOriginBranchIfExists, formatGitExecError, getCommitsNameStatus, getCurrentBranch, getFileAtRef, getGitRepoRoot, getHeadCommitId, getHumanGitStatus, getMergeBase, getRemoteUrl, hasUnpushedCommits, isAncestor, isInsideGitWorkTree, isMergeInProgress, isSafeGitBranchName, listDiffNamesVsHead, listPendingChanges, listStagedChanges, listUnmergedFiles, localBranchExists, mergeFfOnly, mergeNoFf, mergeNoFfNoCommit, mergeTheirsIgnoreSpaceChange, originBranchRef, originFetchRefspec, parseNameOnly, parsePorcelainPaths, pullOriginBranch, pushOriginBranch, pushOriginBranches, resetGitExecForTests, resetHardHead, restoreFeatureBranch, restoreHeadPaths, setGitExecForTests, stageAndCommit};
55
+ export {NAME_STATUS_PRETTY_FORMAT, abortMerge, checkoutBranch, checkoutFeatureBranch, checkoutPathsFromRef, checkoutPreferredBranch, commitAllTrackedChanges, commitAllowEmpty, commitCurrentMerge, commitStagedChanges, countCommitsSince, createAndCheckoutBranch, fetchAndCheckoutBranch, fetchOriginBranch, fetchOriginBranchIfExists, formatGitExecError, getCommitsNameStatus, getCurrentBranch, getFileAtRef, getGitRepoRoot, getHeadCommitId, getHumanGitStatus, getMergeBase, getRemoteUrl, hasUnpushedCommits, isAncestor, isInsideGitWorkTree, isMergeInProgress, isSafeGitBranchName, listDiffNamesBetween, listDiffNamesVsHead, listPendingChanges, listStagedChanges, listTreeFileNames, listUnmergedFiles, localBranchExists, mergeFfOnly, mergeNoFf, mergeNoFfNoCommit, mergeTheirsIgnoreSpaceChange, originBranchRef, originFetchRefspec, parseNameOnly, parsePorcelainPaths, pullOriginBranch, pushOriginBranch, pushOriginBranches, resetGitExecForTests, resetHardHead, restoreFeatureBranch, restoreHeadPaths, setGitExecForTests, stageAndCommit};
@@ -0,0 +1,3 @@
1
+ import {modules} from './runtime.js';
2
+ const runInteractiveHelpAgent = modules["help-agent-command.js"]["runInteractiveHelpAgent"]
3
+ export {runInteractiveHelpAgent};
@@ -0,0 +1,10 @@
1
+ import {modules} from './runtime.js';
2
+ const HELP_AGENT_INTERACTION_LIMIT = modules["help-agent-interaction-history.js"]["HELP_AGENT_INTERACTION_LIMIT"]
3
+ const HELP_AGENT_INTERACTION_TEXT_MAX_BYTES = modules["help-agent-interaction-history.js"]["HELP_AGENT_INTERACTION_TEXT_MAX_BYTES"]
4
+ const HELP_AGENT_INTERACTION_TTL_MS = modules["help-agent-interaction-history.js"]["HELP_AGENT_INTERACTION_TTL_MS"]
5
+ const clearHelpAgentInteractions = modules["help-agent-interaction-history.js"]["clearHelpAgentInteractions"]
6
+ const helpAgentInteractionHistoryPath = modules["help-agent-interaction-history.js"]["helpAgentInteractionHistoryPath"]
7
+ const readHelpAgentInteractions = modules["help-agent-interaction-history.js"]["readHelpAgentInteractions"]
8
+ const recordHelpAgentInteraction = modules["help-agent-interaction-history.js"]["recordHelpAgentInteraction"]
9
+ const setHelpAgentInteractionHistoryRootForTests = modules["help-agent-interaction-history.js"]["setHelpAgentInteractionHistoryRootForTests"]
10
+ export {HELP_AGENT_INTERACTION_LIMIT, HELP_AGENT_INTERACTION_TEXT_MAX_BYTES, HELP_AGENT_INTERACTION_TTL_MS, clearHelpAgentInteractions, helpAgentInteractionHistoryPath, readHelpAgentInteractions, recordHelpAgentInteraction, setHelpAgentInteractionHistoryRootForTests};
@@ -0,0 +1,3 @@
1
+ import {modules} from './runtime.js';
2
+ const runHelpAgentSession = modules["help-agent-session.js"]["runHelpAgentSession"]
3
+ export {runHelpAgentSession};
@@ -1,4 +1,5 @@
1
1
  import {modules} from './runtime.js';
2
2
  const fetchJob = modules["job-get.js"]["fetchJob"]
3
3
  const fetchJobs = modules["job-get.js"]["fetchJobs"]
4
- export {fetchJob, fetchJobs};
4
+ const resolveJobResultFileId = modules["job-get.js"]["resolveJobResultFileId"]
5
+ export {fetchJob, fetchJobs, resolveJobResultFileId};
@@ -23,4 +23,5 @@ const normalizeJobResultFiles = modules["job-types.js"]["normalizeJobResultFiles
23
23
  const normalizeJobs = modules["job-types.js"]["normalizeJobs"]
24
24
  const normalizeJobsListPage = modules["job-types.js"]["normalizeJobsListPage"]
25
25
  const resolveJobStepForLog = modules["job-types.js"]["resolveJobStepForLog"]
26
- export {JOB_LIST_PAGE_SIZE_MAX, JOB_LIST_PAGE_SIZE_MIN, decodeJobResultFileBase64, formatJobDetail, formatJobOperationResult, formatJobResultFileTable, formatJobTable, jobEndpoint, jobKillEndpoint, jobListEndpoint, jobPauseEndpoint, jobResultFileContentEndpoint, jobResultFilesEndpoint, jobResultLogEndpoint, jobResumeEndpoint, jobRunEndpoint, jobStepResultId, normalizeJob, normalizeJobOperation, normalizeJobResultFileContent, normalizeJobResultFiles, normalizeJobs, normalizeJobsListPage, resolveJobStepForLog};
26
+ const validateJobResultFileId = modules["job-types.js"]["validateJobResultFileId"]
27
+ export {JOB_LIST_PAGE_SIZE_MAX, JOB_LIST_PAGE_SIZE_MIN, decodeJobResultFileBase64, formatJobDetail, formatJobOperationResult, formatJobResultFileTable, formatJobTable, jobEndpoint, jobKillEndpoint, jobListEndpoint, jobPauseEndpoint, jobResultFileContentEndpoint, jobResultFilesEndpoint, jobResultLogEndpoint, jobResumeEndpoint, jobRunEndpoint, jobStepResultId, normalizeJob, normalizeJobOperation, normalizeJobResultFileContent, normalizeJobResultFiles, normalizeJobs, normalizeJobsListPage, resolveJobStepForLog, validateJobResultFileId};