@agentuity/cli 0.0.105 → 0.0.106

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 (204) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +93 -21
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cmd/build/ast.d.ts.map +1 -1
  5. package/dist/cmd/build/ast.js +130 -4
  6. package/dist/cmd/build/ast.js.map +1 -1
  7. package/dist/cmd/build/entry-generator.d.ts.map +1 -1
  8. package/dist/cmd/build/entry-generator.js +8 -2
  9. package/dist/cmd/build/entry-generator.js.map +1 -1
  10. package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -1
  11. package/dist/cmd/build/vite/registry-generator.js +8 -9
  12. package/dist/cmd/build/vite/registry-generator.js.map +1 -1
  13. package/dist/cmd/cloud/db/create.d.ts.map +1 -1
  14. package/dist/cmd/cloud/db/create.js +11 -2
  15. package/dist/cmd/cloud/db/create.js.map +1 -1
  16. package/dist/cmd/cloud/db/delete.d.ts.map +1 -1
  17. package/dist/cmd/cloud/db/delete.js +13 -2
  18. package/dist/cmd/cloud/db/delete.js.map +1 -1
  19. package/dist/cmd/cloud/deploy.js +3 -3
  20. package/dist/cmd/cloud/deploy.js.map +1 -1
  21. package/dist/cmd/cloud/env/delete.js +1 -1
  22. package/dist/cmd/cloud/env/delete.js.map +1 -1
  23. package/dist/cmd/cloud/env/import.js +4 -4
  24. package/dist/cmd/cloud/env/import.js.map +1 -1
  25. package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
  26. package/dist/cmd/cloud/env/pull.js +7 -9
  27. package/dist/cmd/cloud/env/pull.js.map +1 -1
  28. package/dist/cmd/cloud/env/push.js +2 -2
  29. package/dist/cmd/cloud/env/push.js.map +1 -1
  30. package/dist/cmd/cloud/env/set.js +3 -3
  31. package/dist/cmd/cloud/env/set.js.map +1 -1
  32. package/dist/cmd/cloud/index.d.ts.map +1 -1
  33. package/dist/cmd/cloud/index.js +2 -0
  34. package/dist/cmd/cloud/index.js.map +1 -1
  35. package/dist/cmd/cloud/sandbox/cp.d.ts +3 -0
  36. package/dist/cmd/cloud/sandbox/cp.d.ts.map +1 -0
  37. package/dist/cmd/cloud/sandbox/cp.js +334 -0
  38. package/dist/cmd/cloud/sandbox/cp.js.map +1 -0
  39. package/dist/cmd/cloud/sandbox/create.d.ts +3 -0
  40. package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -0
  41. package/dist/cmd/cloud/sandbox/create.js +105 -0
  42. package/dist/cmd/cloud/sandbox/create.js.map +1 -0
  43. package/dist/cmd/cloud/sandbox/delete.d.ts +3 -0
  44. package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -0
  45. package/dist/cmd/cloud/sandbox/delete.js +72 -0
  46. package/dist/cmd/cloud/sandbox/delete.js.map +1 -0
  47. package/dist/cmd/cloud/sandbox/exec.d.ts +3 -0
  48. package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -0
  49. package/dist/cmd/cloud/sandbox/exec.js +211 -0
  50. package/dist/cmd/cloud/sandbox/exec.js.map +1 -0
  51. package/dist/cmd/cloud/sandbox/execution/get.d.ts +3 -0
  52. package/dist/cmd/cloud/sandbox/execution/get.d.ts.map +1 -0
  53. package/dist/cmd/cloud/sandbox/execution/get.js +96 -0
  54. package/dist/cmd/cloud/sandbox/execution/get.js.map +1 -0
  55. package/dist/cmd/cloud/sandbox/execution/index.d.ts +3 -0
  56. package/dist/cmd/cloud/sandbox/execution/index.d.ts.map +1 -0
  57. package/dist/cmd/cloud/sandbox/execution/index.js +24 -0
  58. package/dist/cmd/cloud/sandbox/execution/index.js.map +1 -0
  59. package/dist/cmd/cloud/sandbox/execution/list.d.ts +3 -0
  60. package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -0
  61. package/dist/cmd/cloud/sandbox/execution/list.js +100 -0
  62. package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -0
  63. package/dist/cmd/cloud/sandbox/get.d.ts +3 -0
  64. package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -0
  65. package/dist/cmd/cloud/sandbox/get.js +95 -0
  66. package/dist/cmd/cloud/sandbox/get.js.map +1 -0
  67. package/dist/cmd/cloud/sandbox/index.d.ts +3 -0
  68. package/dist/cmd/cloud/sandbox/index.d.ts.map +1 -0
  69. package/dist/cmd/cloud/sandbox/index.js +45 -0
  70. package/dist/cmd/cloud/sandbox/index.js.map +1 -0
  71. package/dist/cmd/cloud/sandbox/list.d.ts +3 -0
  72. package/dist/cmd/cloud/sandbox/list.d.ts.map +1 -0
  73. package/dist/cmd/cloud/sandbox/list.js +120 -0
  74. package/dist/cmd/cloud/sandbox/list.js.map +1 -0
  75. package/dist/cmd/cloud/sandbox/run.d.ts +3 -0
  76. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -0
  77. package/dist/cmd/cloud/sandbox/run.js +152 -0
  78. package/dist/cmd/cloud/sandbox/run.js.map +1 -0
  79. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts +3 -0
  80. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -0
  81. package/dist/cmd/cloud/sandbox/snapshot/create.js +65 -0
  82. package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -0
  83. package/dist/cmd/cloud/sandbox/snapshot/delete.d.ts +3 -0
  84. package/dist/cmd/cloud/sandbox/snapshot/delete.d.ts.map +1 -0
  85. package/dist/cmd/cloud/sandbox/snapshot/delete.js +66 -0
  86. package/dist/cmd/cloud/sandbox/snapshot/delete.js.map +1 -0
  87. package/dist/cmd/cloud/sandbox/snapshot/get.d.ts +3 -0
  88. package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -0
  89. package/dist/cmd/cloud/sandbox/snapshot/get.js +154 -0
  90. package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -0
  91. package/dist/cmd/cloud/sandbox/snapshot/index.d.ts +3 -0
  92. package/dist/cmd/cloud/sandbox/snapshot/index.d.ts.map +1 -0
  93. package/dist/cmd/cloud/sandbox/snapshot/index.js +27 -0
  94. package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -0
  95. package/dist/cmd/cloud/sandbox/snapshot/list.d.ts +3 -0
  96. package/dist/cmd/cloud/sandbox/snapshot/list.d.ts.map +1 -0
  97. package/dist/cmd/cloud/sandbox/snapshot/list.js +83 -0
  98. package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -0
  99. package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts +3 -0
  100. package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts.map +1 -0
  101. package/dist/cmd/cloud/sandbox/snapshot/tag.js +63 -0
  102. package/dist/cmd/cloud/sandbox/snapshot/tag.js.map +1 -0
  103. package/dist/cmd/cloud/sandbox/util.d.ts +15 -0
  104. package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -0
  105. package/dist/cmd/cloud/sandbox/util.js +50 -0
  106. package/dist/cmd/cloud/sandbox/util.js.map +1 -0
  107. package/dist/cmd/cloud/secret/delete.d.ts.map +1 -1
  108. package/dist/cmd/cloud/secret/delete.js +3 -3
  109. package/dist/cmd/cloud/secret/delete.js.map +1 -1
  110. package/dist/cmd/cloud/secret/import.js +6 -6
  111. package/dist/cmd/cloud/secret/import.js.map +1 -1
  112. package/dist/cmd/cloud/secret/index.d.ts.map +1 -1
  113. package/dist/cmd/cloud/secret/index.js +1 -0
  114. package/dist/cmd/cloud/secret/index.js.map +1 -1
  115. package/dist/cmd/cloud/secret/pull.d.ts.map +1 -1
  116. package/dist/cmd/cloud/secret/pull.js +7 -9
  117. package/dist/cmd/cloud/secret/pull.js.map +1 -1
  118. package/dist/cmd/cloud/secret/push.js +3 -3
  119. package/dist/cmd/cloud/secret/push.js.map +1 -1
  120. package/dist/cmd/cloud/secret/set.d.ts.map +1 -1
  121. package/dist/cmd/cloud/secret/set.js +3 -3
  122. package/dist/cmd/cloud/secret/set.js.map +1 -1
  123. package/dist/cmd/cloud/storage/create.d.ts.map +1 -1
  124. package/dist/cmd/cloud/storage/create.js +13 -2
  125. package/dist/cmd/cloud/storage/create.js.map +1 -1
  126. package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
  127. package/dist/cmd/cloud/storage/delete.js +13 -2
  128. package/dist/cmd/cloud/storage/delete.js.map +1 -1
  129. package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
  130. package/dist/cmd/cloud/stream/list.js +2 -13
  131. package/dist/cmd/cloud/stream/list.js.map +1 -1
  132. package/dist/cmd/dev/index.d.ts.map +1 -1
  133. package/dist/cmd/dev/index.js +1 -0
  134. package/dist/cmd/dev/index.js.map +1 -1
  135. package/dist/cmd/profile/create.d.ts.map +1 -1
  136. package/dist/cmd/profile/create.js +1 -0
  137. package/dist/cmd/profile/create.js.map +1 -1
  138. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  139. package/dist/cmd/project/template-flow.js +27 -10
  140. package/dist/cmd/project/template-flow.js.map +1 -1
  141. package/dist/config.d.ts +0 -2
  142. package/dist/config.d.ts.map +1 -1
  143. package/dist/config.js +3 -0
  144. package/dist/config.js.map +1 -1
  145. package/dist/env-util.d.ts +16 -8
  146. package/dist/env-util.d.ts.map +1 -1
  147. package/dist/env-util.js +46 -18
  148. package/dist/env-util.js.map +1 -1
  149. package/dist/tui.d.ts +20 -3
  150. package/dist/tui.d.ts.map +1 -1
  151. package/dist/tui.js +82 -23
  152. package/dist/tui.js.map +1 -1
  153. package/dist/types.d.ts +18 -4
  154. package/dist/types.d.ts.map +1 -1
  155. package/dist/types.js +1 -0
  156. package/dist/types.js.map +1 -1
  157. package/package.json +4 -4
  158. package/src/cli.ts +99 -21
  159. package/src/cmd/build/ast.ts +163 -4
  160. package/src/cmd/build/entry-generator.ts +8 -2
  161. package/src/cmd/build/vite/registry-generator.ts +8 -11
  162. package/src/cmd/cloud/db/create.ts +13 -2
  163. package/src/cmd/cloud/db/delete.ts +15 -2
  164. package/src/cmd/cloud/deploy.ts +3 -3
  165. package/src/cmd/cloud/env/delete.ts +1 -1
  166. package/src/cmd/cloud/env/import.ts +4 -4
  167. package/src/cmd/cloud/env/pull.ts +7 -16
  168. package/src/cmd/cloud/env/push.ts +2 -2
  169. package/src/cmd/cloud/env/set.ts +3 -3
  170. package/src/cmd/cloud/index.ts +2 -0
  171. package/src/cmd/cloud/sandbox/cp.ts +531 -0
  172. package/src/cmd/cloud/sandbox/create.ts +114 -0
  173. package/src/cmd/cloud/sandbox/delete.ts +80 -0
  174. package/src/cmd/cloud/sandbox/exec.ts +254 -0
  175. package/src/cmd/cloud/sandbox/execution/get.ts +106 -0
  176. package/src/cmd/cloud/sandbox/execution/index.ts +25 -0
  177. package/src/cmd/cloud/sandbox/execution/list.ts +111 -0
  178. package/src/cmd/cloud/sandbox/get.ts +104 -0
  179. package/src/cmd/cloud/sandbox/index.ts +46 -0
  180. package/src/cmd/cloud/sandbox/list.ts +129 -0
  181. package/src/cmd/cloud/sandbox/run.ts +170 -0
  182. package/src/cmd/cloud/sandbox/snapshot/create.ts +71 -0
  183. package/src/cmd/cloud/sandbox/snapshot/delete.ts +74 -0
  184. package/src/cmd/cloud/sandbox/snapshot/get.ts +188 -0
  185. package/src/cmd/cloud/sandbox/snapshot/index.ts +28 -0
  186. package/src/cmd/cloud/sandbox/snapshot/list.ts +90 -0
  187. package/src/cmd/cloud/sandbox/snapshot/tag.ts +70 -0
  188. package/src/cmd/cloud/sandbox/util.ts +59 -0
  189. package/src/cmd/cloud/secret/delete.ts +8 -3
  190. package/src/cmd/cloud/secret/import.ts +6 -6
  191. package/src/cmd/cloud/secret/index.ts +1 -0
  192. package/src/cmd/cloud/secret/pull.ts +7 -16
  193. package/src/cmd/cloud/secret/push.ts +3 -3
  194. package/src/cmd/cloud/secret/set.ts +8 -3
  195. package/src/cmd/cloud/storage/create.ts +15 -2
  196. package/src/cmd/cloud/storage/delete.ts +15 -2
  197. package/src/cmd/cloud/stream/list.ts +2 -9
  198. package/src/cmd/dev/index.ts +1 -0
  199. package/src/cmd/profile/create.ts +1 -0
  200. package/src/cmd/project/template-flow.ts +29 -13
  201. package/src/config.ts +3 -0
  202. package/src/env-util.ts +52 -21
  203. package/src/tui.ts +131 -39
  204. package/src/types.ts +18 -16
@@ -0,0 +1,211 @@
1
+ import { z } from 'zod';
2
+ import { Writable } from 'node:stream';
3
+ import { createCommand } from '../../../types';
4
+ import * as tui from '../../../tui';
5
+ import { createSandboxClient } from './util';
6
+ import { getCommand } from '../../../command-prefix';
7
+ import { sandboxExecute, executionGet, writeAndDrain } from '@agentuity/server';
8
+ const POLL_INTERVAL_MS = 500;
9
+ const MAX_POLL_ATTEMPTS = 7200;
10
+ const SandboxExecResponseSchema = z.object({
11
+ executionId: z.string().describe('Unique execution identifier'),
12
+ status: z.string().describe('Execution status'),
13
+ exitCode: z.number().optional().describe('Exit code (if completed)'),
14
+ durationMs: z.number().optional().describe('Duration in milliseconds (if completed)'),
15
+ output: z.string().optional().describe('Combined stdout/stderr output'),
16
+ });
17
+ export const execSubcommand = createCommand({
18
+ name: 'exec',
19
+ aliases: ['execute'],
20
+ description: 'Execute a command in a running sandbox',
21
+ tags: ['slow', 'requires-auth'],
22
+ requires: { auth: true, region: true, org: true },
23
+ examples: [
24
+ {
25
+ command: getCommand('cloud sandbox exec abc123 -- echo "hello"'),
26
+ description: 'Execute a command in a sandbox',
27
+ },
28
+ {
29
+ command: getCommand('cloud sandbox exec abc123 --timeout 5m -- bun run build'),
30
+ description: 'Execute with timeout',
31
+ },
32
+ ],
33
+ schema: {
34
+ args: z.object({
35
+ sandboxId: z.string().describe('Sandbox ID'),
36
+ command: z.array(z.string()).describe('Command and arguments to execute'),
37
+ }),
38
+ options: z.object({
39
+ timeout: z.string().optional().describe('Execution timeout (e.g., "5m", "1h")'),
40
+ timestamps: z
41
+ .boolean()
42
+ .default(false)
43
+ .optional()
44
+ .describe('Include timestamps in output (default: false)'),
45
+ }),
46
+ response: SandboxExecResponseSchema,
47
+ },
48
+ async handler(ctx) {
49
+ const { args, opts, options, auth, region, logger, orgId } = ctx;
50
+ const client = createSandboxClient(logger, auth, region);
51
+ const started = Date.now();
52
+ const abortController = new AbortController();
53
+ const handleSignal = () => {
54
+ abortController.abort();
55
+ };
56
+ process.on('SIGINT', handleSignal);
57
+ process.on('SIGTERM', handleSignal);
58
+ const outputChunks = [];
59
+ // For JSON output, capture to buffer; otherwise stream to process
60
+ const stdout = options.json
61
+ ? createCaptureStream((chunk) => outputChunks.push(chunk))
62
+ : process.stdout;
63
+ const stderr = options.json
64
+ ? createCaptureStream((chunk) => outputChunks.push(chunk))
65
+ : process.stderr;
66
+ try {
67
+ const execution = await sandboxExecute(client, {
68
+ sandboxId: args.sandboxId,
69
+ options: {
70
+ command: args.command,
71
+ timeout: opts.timeout,
72
+ stream: opts.timestamps !== undefined ? { timestamps: opts.timestamps } : undefined,
73
+ },
74
+ orgId,
75
+ });
76
+ const stdoutStreamUrl = execution.stdoutStreamUrl;
77
+ const stderrStreamUrl = execution.stderrStreamUrl;
78
+ const streamAbortController = new AbortController();
79
+ const streamPromises = [];
80
+ // Check if stdout and stderr are the same stream (combined output)
81
+ const isCombinedOutput = stdoutStreamUrl && stderrStreamUrl && stdoutStreamUrl === stderrStreamUrl;
82
+ if (isCombinedOutput) {
83
+ // Stream combined output to stdout only to avoid duplicates
84
+ logger.debug('using combined output stream (stdout === stderr): %s', stdoutStreamUrl);
85
+ streamPromises.push(streamUrlToWritable(stdoutStreamUrl, stdout, streamAbortController.signal, logger));
86
+ }
87
+ else {
88
+ if (stdoutStreamUrl) {
89
+ logger.debug('starting stdout stream from: %s', stdoutStreamUrl);
90
+ streamPromises.push(streamUrlToWritable(stdoutStreamUrl, stdout, streamAbortController.signal, logger));
91
+ }
92
+ if (stderrStreamUrl) {
93
+ logger.debug('starting stderr stream from: %s', stderrStreamUrl);
94
+ streamPromises.push(streamUrlToWritable(stderrStreamUrl, stderr, streamAbortController.signal, logger));
95
+ }
96
+ }
97
+ let attempts = 0;
98
+ let finalExecution = execution;
99
+ while (attempts < MAX_POLL_ATTEMPTS) {
100
+ if (abortController.signal.aborted) {
101
+ throw new Error('Execution cancelled');
102
+ }
103
+ await sleep(POLL_INTERVAL_MS);
104
+ attempts++;
105
+ try {
106
+ const execInfo = await executionGet(client, {
107
+ executionId: execution.executionId,
108
+ orgId,
109
+ });
110
+ if (execInfo.status === 'completed' ||
111
+ execInfo.status === 'failed' ||
112
+ execInfo.status === 'timeout' ||
113
+ execInfo.status === 'cancelled') {
114
+ finalExecution = {
115
+ executionId: execInfo.executionId,
116
+ status: execInfo.status,
117
+ exitCode: execInfo.exitCode,
118
+ durationMs: execInfo.durationMs,
119
+ };
120
+ break;
121
+ }
122
+ }
123
+ catch {
124
+ continue;
125
+ }
126
+ }
127
+ // Wait for all streams to reach EOF (Pulse blocks until true EOF)
128
+ await Promise.all(streamPromises);
129
+ // Ensure stdout is fully flushed before continuing
130
+ if (!options.json && process.stdout.writable) {
131
+ await new Promise((resolve) => {
132
+ if (process.stdout.writableNeedDrain) {
133
+ process.stdout.once('drain', () => resolve());
134
+ }
135
+ else {
136
+ resolve();
137
+ }
138
+ });
139
+ }
140
+ const duration = Date.now() - started;
141
+ const output = outputChunks.join('');
142
+ if (!options.json) {
143
+ if (finalExecution.exitCode === 0) {
144
+ // no op
145
+ }
146
+ else if (finalExecution.exitCode !== undefined) {
147
+ tui.error(`failed with exit code ${finalExecution.exitCode} in ${duration}ms`);
148
+ }
149
+ else {
150
+ tui.info(`Execution ${tui.bold(finalExecution.executionId)} - Status: ${finalExecution.status}`);
151
+ }
152
+ }
153
+ return {
154
+ executionId: finalExecution.executionId,
155
+ status: finalExecution.status,
156
+ exitCode: finalExecution.exitCode,
157
+ durationMs: finalExecution.durationMs,
158
+ output: options.json ? output : undefined,
159
+ };
160
+ }
161
+ finally {
162
+ process.off('SIGINT', handleSignal);
163
+ process.off('SIGTERM', handleSignal);
164
+ }
165
+ },
166
+ });
167
+ async function streamUrlToWritable(url, writable, signal, logger) {
168
+ try {
169
+ logger.debug('fetching stream: %s', url);
170
+ const response = await fetch(url, { signal });
171
+ logger.debug('stream response status: %d', response.status);
172
+ if (!response.ok || !response.body) {
173
+ logger.debug('stream response not ok or no body');
174
+ return;
175
+ }
176
+ const reader = response.body.getReader();
177
+ // Read until EOF - Pulse will block until data is available
178
+ while (true) {
179
+ const { done, value } = await reader.read();
180
+ if (done) {
181
+ logger.debug('stream EOF');
182
+ break;
183
+ }
184
+ if (value) {
185
+ logger.debug('stream chunk: %d bytes', value.length);
186
+ await writeAndDrain(writable, value);
187
+ }
188
+ }
189
+ }
190
+ catch (err) {
191
+ if (err instanceof Error && err.name === 'AbortError') {
192
+ logger.debug('stream aborted');
193
+ return;
194
+ }
195
+ logger.debug('stream error: %s', err);
196
+ }
197
+ }
198
+ function createCaptureStream(onChunk) {
199
+ return new Writable({
200
+ write(chunk, _encoding, callback) {
201
+ const text = typeof chunk === 'string' ? chunk : chunk.toString('utf-8');
202
+ onChunk(text);
203
+ callback();
204
+ },
205
+ });
206
+ }
207
+ function sleep(ms) {
208
+ return new Promise((resolve) => setTimeout(resolve, ms));
209
+ }
210
+ export default execSubcommand;
211
+ //# sourceMappingURL=exec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/sandbox/exec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const getSubcommand: import("../../../..").CommandDefinition;
2
+ export default getSubcommand;
3
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/get.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,aAAa,yCAkFxB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../../types';
3
+ import * as tui from '../../../../tui';
4
+ import { createSandboxClient } from '../util';
5
+ import { getCommand } from '../../../../command-prefix';
6
+ import { executionGet } from '@agentuity/server';
7
+ const ExecutionGetResponseSchema = z.object({
8
+ executionId: z.string().describe('Execution ID'),
9
+ sandboxId: z.string().describe('Sandbox ID'),
10
+ status: z.string().describe('Current status'),
11
+ command: z.array(z.string()).optional().describe('Command that was executed'),
12
+ exitCode: z.number().optional().describe('Exit code'),
13
+ durationMs: z.number().optional().describe('Duration in milliseconds'),
14
+ startedAt: z.string().optional().describe('Start timestamp'),
15
+ completedAt: z.string().optional().describe('Completion timestamp'),
16
+ error: z.string().optional().describe('Error message if failed'),
17
+ stdoutStreamUrl: z.string().optional().describe('URL to stream stdout'),
18
+ stderrStreamUrl: z.string().optional().describe('URL to stream stderr'),
19
+ });
20
+ export const getSubcommand = createCommand({
21
+ name: 'get',
22
+ aliases: ['info', 'show'],
23
+ description: 'Get information about a specific execution',
24
+ tags: ['read-only', 'fast', 'requires-auth'],
25
+ requires: { auth: true, region: true, org: true },
26
+ idempotent: true,
27
+ examples: [
28
+ {
29
+ command: getCommand('cloud sandbox execution get exec_abc123'),
30
+ description: 'Get execution information',
31
+ },
32
+ ],
33
+ schema: {
34
+ args: z.object({
35
+ executionId: z.string().describe('Execution ID'),
36
+ }),
37
+ response: ExecutionGetResponseSchema,
38
+ },
39
+ async handler(ctx) {
40
+ const { args, options, auth, region, logger, orgId } = ctx;
41
+ const client = createSandboxClient(logger, auth, region);
42
+ const result = await executionGet(client, { executionId: args.executionId, orgId });
43
+ if (!options.json) {
44
+ const statusColor = result.status === 'completed'
45
+ ? tui.colorSuccess
46
+ : result.status === 'running'
47
+ ? tui.colorWarning
48
+ : result.status === 'failed' || result.status === 'timeout'
49
+ ? tui.colorError
50
+ : tui.colorMuted;
51
+ console.log(`${tui.muted('Execution:')} ${tui.bold(result.executionId)}`);
52
+ console.log(`${tui.muted('Sandbox:')} ${result.sandboxId}`);
53
+ console.log(`${tui.muted('Status:')} ${statusColor(result.status)}`);
54
+ if (result.exitCode !== undefined) {
55
+ const exitCodeColor = result.exitCode === 0 ? tui.colorSuccess : tui.colorError;
56
+ console.log(`${tui.muted('Exit Code:')} ${exitCodeColor(String(result.exitCode))}`);
57
+ }
58
+ if (result.durationMs !== undefined) {
59
+ console.log(`${tui.muted('Duration:')} ${result.durationMs}ms`);
60
+ }
61
+ if (result.startedAt) {
62
+ console.log(`${tui.muted('Started:')} ${result.startedAt}`);
63
+ }
64
+ if (result.completedAt) {
65
+ console.log(`${tui.muted('Completed:')} ${result.completedAt}`);
66
+ }
67
+ if (result.error) {
68
+ console.log(`${tui.muted('Error:')} ${tui.colorError(result.error)}`);
69
+ }
70
+ if (result.stdoutStreamUrl) {
71
+ console.log(`${tui.muted('Stdout:')} ${result.stdoutStreamUrl}`);
72
+ }
73
+ if (result.stderrStreamUrl) {
74
+ console.log(`${tui.muted('Stderr:')} ${result.stderrStreamUrl}`);
75
+ }
76
+ if (result.command && result.command.length > 0) {
77
+ console.log(`${tui.muted('Command:')} ${result.command.join(' ')}`);
78
+ }
79
+ }
80
+ return {
81
+ executionId: result.executionId,
82
+ sandboxId: result.sandboxId,
83
+ status: result.status,
84
+ command: result.command,
85
+ exitCode: result.exitCode,
86
+ durationMs: result.durationMs,
87
+ startedAt: result.startedAt,
88
+ completedAt: result.completedAt,
89
+ error: result.error,
90
+ stdoutStreamUrl: result.stdoutStreamUrl,
91
+ stderrStreamUrl: result.stderrStreamUrl,
92
+ };
93
+ },
94
+ });
95
+ export default getSubcommand;
96
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const command: import("../../../..").CommandDefinition;
2
+ export default command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,yCAiBlB,CAAC;AAEH,eAAe,OAAO,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { createCommand } from '../../../../types';
2
+ import { getSubcommand } from './get';
3
+ import { listSubcommand } from './list';
4
+ import { getCommand } from '../../../../command-prefix';
5
+ export const command = createCommand({
6
+ name: 'execution',
7
+ aliases: ['executions'],
8
+ description: 'Manage sandbox executions',
9
+ tags: ['read-only', 'requires-auth'],
10
+ examples: [
11
+ {
12
+ command: getCommand('cloud sandbox execution list snbx_abc123'),
13
+ description: 'List executions for a sandbox',
14
+ },
15
+ {
16
+ command: getCommand('cloud sandbox execution get exec_abc123'),
17
+ description: 'Get details of a specific execution',
18
+ },
19
+ ],
20
+ subcommands: [getSubcommand, listSubcommand],
21
+ requires: { auth: true, region: true, org: true },
22
+ });
23
+ export default command;
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,CAAC,YAAY,CAAC;IACvB,WAAW,EAAE,2BAA2B;IACxC,IAAI,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC;IACpC,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,0CAA0C,CAAC;YAC/D,WAAW,EAAE,+BAA+B;SAC5C;QACD;YACC,OAAO,EAAE,UAAU,CAAC,yCAAyC,CAAC;YAC9D,WAAW,EAAE,qCAAqC;SAClD;KACD;IACD,WAAW,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;IAC5C,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;CACjD,CAAC,CAAC;AAEH,eAAe,OAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const listSubcommand: import("../../../..").CommandDefinition;
2
+ export default listSubcommand;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/list.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,cAAc,yCAsFzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -0,0 +1,100 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../../types';
3
+ import * as tui from '../../../../tui';
4
+ import { createSandboxClient } from '../util';
5
+ import { getCommand } from '../../../../command-prefix';
6
+ import { executionList } from '@agentuity/server';
7
+ const ExecutionInfoSchema = z.object({
8
+ executionId: z.string().describe('Execution ID'),
9
+ sandboxId: z.string().describe('Sandbox ID'),
10
+ status: z.string().describe('Current status'),
11
+ exitCode: z.number().optional().describe('Exit code'),
12
+ durationMs: z.number().optional().describe('Duration in milliseconds'),
13
+ startedAt: z.string().optional().describe('Start timestamp'),
14
+ completedAt: z.string().optional().describe('Completion timestamp'),
15
+ error: z.string().optional().describe('Error message if failed'),
16
+ });
17
+ const ExecutionListResponseSchema = z.object({
18
+ executions: z.array(ExecutionInfoSchema).describe('List of executions'),
19
+ });
20
+ export const listSubcommand = createCommand({
21
+ name: 'list',
22
+ aliases: ['ls'],
23
+ description: 'List executions for a sandbox',
24
+ tags: ['read-only', 'fast', 'requires-auth'],
25
+ requires: { auth: true, region: true, org: true },
26
+ idempotent: true,
27
+ examples: [
28
+ {
29
+ command: getCommand('cloud sandbox execution list snbx_abc123'),
30
+ description: 'List executions for a sandbox',
31
+ },
32
+ {
33
+ command: getCommand('cloud sandbox execution list snbx_abc123 --limit 10'),
34
+ description: 'List with a limit',
35
+ },
36
+ ],
37
+ schema: {
38
+ args: z.object({
39
+ sandboxId: z.string().describe('Sandbox ID'),
40
+ }),
41
+ options: z.object({
42
+ limit: z.number().optional().describe('Maximum number of results (default: 50, max: 100)'),
43
+ }),
44
+ response: ExecutionListResponseSchema,
45
+ },
46
+ async handler(ctx) {
47
+ const { args, opts, options, auth, region, logger, orgId } = ctx;
48
+ const client = createSandboxClient(logger, auth, region);
49
+ const result = await executionList(client, {
50
+ sandboxId: args.sandboxId,
51
+ orgId,
52
+ limit: opts.limit,
53
+ });
54
+ if (!options.json) {
55
+ if (result.executions.length === 0) {
56
+ tui.info('No executions found');
57
+ }
58
+ else {
59
+ const tableData = result.executions.map((exec) => {
60
+ const statusColor = exec.status === 'completed'
61
+ ? tui.colorSuccess
62
+ : exec.status === 'running'
63
+ ? tui.colorWarning
64
+ : exec.status === 'failed' || exec.status === 'timeout'
65
+ ? tui.colorError
66
+ : tui.colorMuted;
67
+ return {
68
+ ID: exec.executionId,
69
+ Status: statusColor(exec.status),
70
+ 'Exit Code': exec.exitCode !== undefined ? String(exec.exitCode) : '-',
71
+ Duration: exec.durationMs !== undefined ? `${exec.durationMs}ms` : '-',
72
+ Started: exec.startedAt || '-',
73
+ };
74
+ });
75
+ tui.table(tableData, [
76
+ { name: 'ID', alignment: 'left' },
77
+ { name: 'Status', alignment: 'left' },
78
+ { name: 'Exit Code', alignment: 'right' },
79
+ { name: 'Duration', alignment: 'right' },
80
+ { name: 'Started', alignment: 'left' },
81
+ ]);
82
+ tui.info(`Total: ${result.executions.length} ${tui.plural(result.executions.length, 'execution', 'executions')}`);
83
+ }
84
+ }
85
+ return {
86
+ executions: result.executions.map((e) => ({
87
+ executionId: e.executionId,
88
+ sandboxId: e.sandboxId,
89
+ status: e.status,
90
+ exitCode: e.exitCode,
91
+ durationMs: e.durationMs,
92
+ startedAt: e.startedAt,
93
+ completedAt: e.completedAt,
94
+ error: e.error,
95
+ })),
96
+ };
97
+ },
98
+ });
99
+ export default listSubcommand;
100
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const getSubcommand: import("../../..").CommandDefinition;
2
+ export default getSubcommand;
3
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/sandbox/get.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,aAAa,sCAiFxB,CAAC;AAEH,eAAe,aAAa,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { z } from 'zod';
2
+ import { createCommand } from '../../../types';
3
+ import * as tui from '../../../tui';
4
+ import { createSandboxClient } from './util';
5
+ import { getCommand } from '../../../command-prefix';
6
+ import { sandboxGet } from '@agentuity/server';
7
+ const SandboxGetResponseSchema = z.object({
8
+ sandboxId: z.string().describe('Sandbox ID'),
9
+ status: z.string().describe('Current status'),
10
+ createdAt: z.string().describe('Creation timestamp'),
11
+ region: z.string().optional().describe('Region where sandbox is running'),
12
+ snapshotId: z.string().optional().describe('Snapshot ID sandbox was created from'),
13
+ snapshotTag: z.string().optional().describe('Snapshot tag sandbox was created from'),
14
+ executions: z.number().describe('Number of executions'),
15
+ stdoutStreamUrl: z.string().optional().describe('URL to stdout output stream'),
16
+ stderrStreamUrl: z.string().optional().describe('URL to stderr output stream'),
17
+ dependencies: z.array(z.string()).optional().describe('Apt packages installed'),
18
+ });
19
+ export const getSubcommand = createCommand({
20
+ name: 'get',
21
+ aliases: ['info', 'show'],
22
+ description: 'Get information about a sandbox',
23
+ tags: ['read-only', 'fast', 'requires-auth'],
24
+ requires: { auth: true, region: true, org: true },
25
+ idempotent: true,
26
+ examples: [
27
+ {
28
+ command: getCommand('cloud sandbox get abc123'),
29
+ description: 'Get sandbox information',
30
+ },
31
+ ],
32
+ schema: {
33
+ args: z.object({
34
+ sandboxId: z.string().describe('Sandbox ID'),
35
+ }),
36
+ response: SandboxGetResponseSchema,
37
+ },
38
+ async handler(ctx) {
39
+ const { args, options, auth, region, logger, orgId } = ctx;
40
+ const client = createSandboxClient(logger, auth, region);
41
+ const result = await sandboxGet(client, { sandboxId: args.sandboxId, orgId });
42
+ if (!options.json) {
43
+ const statusColor = result.status === 'running'
44
+ ? tui.colorSuccess
45
+ : result.status === 'idle'
46
+ ? tui.colorWarning
47
+ : result.status === 'failed'
48
+ ? tui.colorError
49
+ : tui.colorMuted;
50
+ console.log(`${tui.muted('Sandbox:')} ${tui.bold(result.sandboxId)}`);
51
+ console.log(`${tui.muted('Status:')} ${statusColor(result.status)}`);
52
+ console.log(`${tui.muted('Created:')} ${result.createdAt}`);
53
+ if (result.region) {
54
+ console.log(`${tui.muted('Region:')} ${result.region}`);
55
+ }
56
+ if (result.snapshotId || result.snapshotTag) {
57
+ const snapshotDisplay = result.snapshotTag
58
+ ? `${result.snapshotTag} ${tui.muted('(' + result.snapshotId + ')')}`
59
+ : result.snapshotId;
60
+ console.log(`${tui.muted('Snapshot:')} ${snapshotDisplay}`);
61
+ }
62
+ console.log(`${tui.muted('Executions:')} ${result.executions}`);
63
+ if (result.stdoutStreamUrl &&
64
+ result.stderrStreamUrl &&
65
+ result.stdoutStreamUrl === result.stderrStreamUrl) {
66
+ console.log(`${tui.muted('Stream:')} ${tui.link(result.stdoutStreamUrl)}`);
67
+ }
68
+ else {
69
+ if (result.stdoutStreamUrl) {
70
+ console.log(`${tui.muted('Stream (stdout):')} ${tui.link(result.stdoutStreamUrl)}`);
71
+ }
72
+ if (result.stderrStreamUrl) {
73
+ console.log(`${tui.muted('Stream (stderr):')} ${tui.link(result.stderrStreamUrl)}`);
74
+ }
75
+ }
76
+ if (result.dependencies && result.dependencies.length > 0) {
77
+ console.log(`${tui.muted('Dependencies:')} ${result.dependencies.join(', ')}`);
78
+ }
79
+ }
80
+ return {
81
+ sandboxId: result.sandboxId,
82
+ status: result.status,
83
+ createdAt: result.createdAt,
84
+ region: result.region,
85
+ snapshotId: result.snapshotId,
86
+ snapshotTag: result.snapshotTag,
87
+ executions: result.executions,
88
+ stdoutStreamUrl: result.stdoutStreamUrl,
89
+ stderrStreamUrl: result.stderrStreamUrl,
90
+ dependencies: result.dependencies,
91
+ };
92
+ },
93
+ });
94
+ export default getSubcommand;
95
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/sandbox/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const command: import("../../..").CommandDefinition;
2
+ export default command;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/sandbox/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,OAAO,sCA+BlB,CAAC;AAEH,eAAe,OAAO,CAAC"}