@agentuity/cli 2.0.10 → 2.0.12
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.
- package/dist/cache/resource-region.d.ts.map +1 -1
- package/dist/cache/resource-region.js +48 -25
- package/dist/cache/resource-region.js.map +1 -1
- package/dist/cmd/build/vite/agent-discovery.js +4 -4
- package/dist/cmd/build/vite/agent-discovery.js.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts +20 -0
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.js +62 -4
- package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
- package/dist/cmd/build/vite/index.d.ts +0 -1
- package/dist/cmd/build/vite/index.d.ts.map +1 -1
- package/dist/cmd/build/vite/index.js +0 -1
- package/dist/cmd/build/vite/index.js.map +1 -1
- package/dist/cmd/build/vite/static-renderer.d.ts +17 -0
- package/dist/cmd/build/vite/static-renderer.d.ts.map +1 -1
- package/dist/cmd/build/vite/static-renderer.js +18 -6
- package/dist/cmd/build/vite/static-renderer.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +34 -27
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts +9 -0
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +5 -1
- package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +12 -1
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/build/vite/ws-proxy.d.ts +15 -1
- package/dist/cmd/build/vite/ws-proxy.d.ts.map +1 -1
- package/dist/cmd/build/vite/ws-proxy.js +33 -0
- package/dist/cmd/build/vite/ws-proxy.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +98 -39
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/create.js +3 -4
- package/dist/cmd/cloud/sandbox/checkpoint/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/delete.js +3 -4
- package/dist/cmd/cloud/sandbox/checkpoint/delete.js.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/list.js +3 -4
- package/dist/cmd/cloud/sandbox/checkpoint/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/restore.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/checkpoint/restore.js +3 -4
- package/dist/cmd/cloud/sandbox/checkpoint/restore.js.map +1 -1
- package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/create.js +13 -4
- package/dist/cmd/cloud/sandbox/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.js +3 -4
- package/dist/cmd/cloud/sandbox/delete.js.map +1 -1
- package/dist/cmd/cloud/sandbox/env.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/env.js +3 -5
- package/dist/cmd/cloud/sandbox/env.js.map +1 -1
- package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/exec.js +114 -41
- package/dist/cmd/cloud/sandbox/exec.js.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/list.js +3 -5
- package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/cp.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/cp.js +61 -113
- package/dist/cmd/cloud/sandbox/fs/cp.js.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/download.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/download.js +11 -22
- package/dist/cmd/cloud/sandbox/fs/download.js.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/ls.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/ls.js +3 -5
- package/dist/cmd/cloud/sandbox/fs/ls.js.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/mkdir.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/mkdir.js +3 -5
- package/dist/cmd/cloud/sandbox/fs/mkdir.js.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/rm.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/rm.js +3 -5
- package/dist/cmd/cloud/sandbox/fs/rm.js.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/rmdir.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/rmdir.js +3 -5
- package/dist/cmd/cloud/sandbox/fs/rmdir.js.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/upload.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/fs/upload.js +7 -8
- package/dist/cmd/cloud/sandbox/fs/upload.js.map +1 -1
- package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/get.js +21 -7
- package/dist/cmd/cloud/sandbox/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/job/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/job/create.js +3 -4
- package/dist/cmd/cloud/sandbox/job/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/job/destroy.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/job/destroy.js +3 -4
- package/dist/cmd/cloud/sandbox/job/destroy.js.map +1 -1
- package/dist/cmd/cloud/sandbox/job/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/job/get.js +3 -4
- package/dist/cmd/cloud/sandbox/job/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/job/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/job/list.js +3 -4
- package/dist/cmd/cloud/sandbox/job/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/job/logs.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/job/logs.js +4 -4
- package/dist/cmd/cloud/sandbox/job/logs.js.map +1 -1
- package/dist/cmd/cloud/sandbox/pause.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/pause.js +21 -5
- package/dist/cmd/cloud/sandbox/pause.js.map +1 -1
- package/dist/cmd/cloud/sandbox/resume.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/resume.js +3 -4
- package/dist/cmd/cloud/sandbox/resume.js.map +1 -1
- package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/run.js +36 -7
- package/dist/cmd/cloud/sandbox/run.js.map +1 -1
- package/dist/cmd/cloud/sandbox/util.d.ts +19 -0
- package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/util.js +40 -2
- package/dist/cmd/cloud/sandbox/util.js.map +1 -1
- package/dist/cmd/coder/create.d.ts.map +1 -1
- package/dist/cmd/coder/create.js +18 -0
- package/dist/cmd/coder/create.js.map +1 -1
- package/dist/cmd/coder/index.d.ts.map +1 -1
- package/dist/cmd/coder/index.js +4 -0
- package/dist/cmd/coder/index.js.map +1 -1
- package/dist/cmd/coder/start.d.ts.map +1 -1
- package/dist/cmd/coder/start.js +52 -1
- package/dist/cmd/coder/start.js.map +1 -1
- package/dist/cmd/coder/tui-init.js +1 -1
- package/dist/cmd/coder/tui-init.js.map +1 -1
- package/dist/cmd/coder/update.d.ts.map +1 -1
- package/dist/cmd/coder/update.js +21 -1
- package/dist/cmd/coder/update.js.map +1 -1
- package/dist/cmd/coder/workspace/create.d.ts.map +1 -1
- package/dist/cmd/coder/workspace/create.js +57 -13
- package/dist/cmd/coder/workspace/create.js.map +1 -1
- package/dist/cmd/coder/workspace/index.d.ts.map +1 -1
- package/dist/cmd/coder/workspace/index.js +1 -1
- package/dist/cmd/coder/workspace/index.js.map +1 -1
- package/dist/cmd/coder/workspace/list.js +2 -2
- package/dist/cmd/coder/workspace/list.js.map +1 -1
- package/dist/cmd/dev/dev-lock.d.ts.map +1 -1
- package/dist/cmd/dev/dev-lock.js +43 -17
- package/dist/cmd/dev/dev-lock.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +211 -125
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/dev/process-manager.d.ts +41 -1
- package/dist/cmd/dev/process-manager.d.ts.map +1 -1
- package/dist/cmd/dev/process-manager.js +160 -31
- package/dist/cmd/dev/process-manager.js.map +1 -1
- package/dist/cmd/project/create.d.ts.map +1 -1
- package/dist/cmd/project/create.js +0 -2
- package/dist/cmd/project/create.js.map +1 -1
- package/dist/cmd/project/index.d.ts.map +1 -1
- package/dist/cmd/project/index.js +0 -3
- package/dist/cmd/project/index.js.map +1 -1
- package/dist/cmd/project/template-flow.d.ts +0 -1
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +1 -124
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +7 -7
- package/src/cache/resource-region.ts +68 -44
- package/src/cmd/ai/prompt/web.md +43 -17
- package/src/cmd/build/vite/agent-discovery.ts +4 -4
- package/src/cmd/build/vite/bun-dev-server.ts +92 -6
- package/src/cmd/build/vite/index.ts +0 -1
- package/src/cmd/build/vite/static-renderer.ts +18 -7
- package/src/cmd/build/vite/vite-asset-server-config.ts +37 -27
- package/src/cmd/build/vite/vite-asset-server.ts +5 -1
- package/src/cmd/build/vite/vite-builder.ts +12 -1
- package/src/cmd/build/vite/ws-proxy.ts +52 -3
- package/src/cmd/cloud/deploy.ts +117 -49
- package/src/cmd/cloud/sandbox/checkpoint/create.ts +10 -4
- package/src/cmd/cloud/sandbox/checkpoint/delete.ts +10 -4
- package/src/cmd/cloud/sandbox/checkpoint/list.ts +10 -4
- package/src/cmd/cloud/sandbox/checkpoint/restore.ts +10 -4
- package/src/cmd/cloud/sandbox/create.ts +14 -4
- package/src/cmd/cloud/sandbox/delete.ts +10 -4
- package/src/cmd/cloud/sandbox/env.ts +10 -5
- package/src/cmd/cloud/sandbox/exec.ts +157 -42
- package/src/cmd/cloud/sandbox/execution/list.ts +10 -5
- package/src/cmd/cloud/sandbox/fs/cp.ts +94 -126
- package/src/cmd/cloud/sandbox/fs/download.ts +18 -25
- package/src/cmd/cloud/sandbox/fs/ls.ts +10 -5
- package/src/cmd/cloud/sandbox/fs/mkdir.ts +10 -5
- package/src/cmd/cloud/sandbox/fs/rm.ts +10 -5
- package/src/cmd/cloud/sandbox/fs/rmdir.ts +10 -5
- package/src/cmd/cloud/sandbox/fs/upload.ts +14 -8
- package/src/cmd/cloud/sandbox/get.ts +28 -7
- package/src/cmd/cloud/sandbox/job/create.ts +10 -4
- package/src/cmd/cloud/sandbox/job/destroy.ts +10 -4
- package/src/cmd/cloud/sandbox/job/get.ts +10 -4
- package/src/cmd/cloud/sandbox/job/list.ts +10 -4
- package/src/cmd/cloud/sandbox/job/logs.ts +11 -4
- package/src/cmd/cloud/sandbox/pause.ts +31 -5
- package/src/cmd/cloud/sandbox/resume.ts +10 -4
- package/src/cmd/cloud/sandbox/run.ts +49 -11
- package/src/cmd/cloud/sandbox/util.ts +63 -2
- package/src/cmd/coder/create.ts +24 -1
- package/src/cmd/coder/index.ts +4 -0
- package/src/cmd/coder/start.ts +63 -1
- package/src/cmd/coder/tui-init.ts +1 -1
- package/src/cmd/coder/update.ts +18 -1
- package/src/cmd/coder/workspace/create.ts +84 -15
- package/src/cmd/coder/workspace/index.ts +3 -1
- package/src/cmd/coder/workspace/list.ts +2 -2
- package/src/cmd/dev/dev-lock.ts +50 -16
- package/src/cmd/dev/index.ts +249 -134
- package/src/cmd/dev/process-manager.ts +173 -33
- package/src/cmd/project/create.ts +0 -2
- package/src/cmd/project/index.ts +0 -3
- package/src/cmd/project/template-flow.ts +0 -147
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
- package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
- package/dist/cmd/project/auth/generate.d.ts +0 -5
- package/dist/cmd/project/auth/generate.d.ts.map +0 -1
- package/dist/cmd/project/auth/generate.js +0 -102
- package/dist/cmd/project/auth/generate.js.map +0 -1
- package/dist/cmd/project/auth/index.d.ts +0 -2
- package/dist/cmd/project/auth/index.d.ts.map +0 -1
- package/dist/cmd/project/auth/index.js +0 -21
- package/dist/cmd/project/auth/index.js.map +0 -1
- package/dist/cmd/project/auth/init.d.ts +0 -2
- package/dist/cmd/project/auth/init.d.ts.map +0 -1
- package/dist/cmd/project/auth/init.js +0 -213
- package/dist/cmd/project/auth/init.js.map +0 -1
- package/dist/cmd/project/auth/shared.d.ts +0 -93
- package/dist/cmd/project/auth/shared.d.ts.map +0 -1
- package/dist/cmd/project/auth/shared.js +0 -475
- package/dist/cmd/project/auth/shared.js.map +0 -1
- package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
- package/src/cmd/project/auth/generate.ts +0 -116
- package/src/cmd/project/auth/index.ts +0 -21
- package/src/cmd/project/auth/init.ts +0 -256
- package/src/cmd/project/auth/shared.ts +0 -591
|
@@ -3,11 +3,13 @@ import { Writable } from 'node:stream';
|
|
|
3
3
|
import { ErrorCode } from '../../../errors';
|
|
4
4
|
import { createCommand } from '../../../types';
|
|
5
5
|
import * as tui from '../../../tui';
|
|
6
|
-
import { createSandboxClient } from './util';
|
|
6
|
+
import { createSandboxClient, detectNullStream, resolveSandboxTarget } from './util';
|
|
7
7
|
import { getCommand } from '../../../command-prefix';
|
|
8
|
-
import { sandboxExecute, executionGet
|
|
8
|
+
import { sandboxExecute, executionGet } from '@agentuity/server';
|
|
9
9
|
import { streamUrlToWritable } from '../../../utils/stream-url';
|
|
10
10
|
const EXECUTION_WAIT_DURATION = '5m';
|
|
11
|
+
const EMPTY_STREAM_FAST_POLL_MS = 100;
|
|
12
|
+
const EMPTY_STREAM_FAST_TIMEOUT_MS = 2000;
|
|
11
13
|
const SandboxExecResponseSchema = z.object({
|
|
12
14
|
executionId: z.string().describe('Unique execution identifier'),
|
|
13
15
|
status: z.string().describe('Execution status'),
|
|
@@ -59,6 +61,11 @@ export const execSubcommand = createCommand({
|
|
|
59
61
|
.default(false)
|
|
60
62
|
.optional()
|
|
61
63
|
.describe('Include timestamps in output (default: false)'),
|
|
64
|
+
quiet: z
|
|
65
|
+
.boolean()
|
|
66
|
+
.default(false)
|
|
67
|
+
.optional()
|
|
68
|
+
.describe('Suppress output (do not create stdout/stderr streams)'),
|
|
62
69
|
}),
|
|
63
70
|
response: SandboxExecResponseSchema,
|
|
64
71
|
},
|
|
@@ -69,10 +76,31 @@ export const execSubcommand = createCommand({
|
|
|
69
76
|
tui.fatal(`Invalid timeout format '${opts.timeout}': expected duration like '5s', '1m', '1h', '300ms'`, ErrorCode.INVALID_ARGUMENT);
|
|
70
77
|
}
|
|
71
78
|
}
|
|
72
|
-
const
|
|
73
|
-
const { region, orgId } = sandboxInfo;
|
|
79
|
+
const { region, orgId } = await resolveSandboxTarget(logger, auth, apiClient, args.sandboxId, ctx.config?.name ?? 'production', ctx.config);
|
|
74
80
|
const client = createSandboxClient(logger, auth, region);
|
|
75
81
|
const started = Date.now();
|
|
82
|
+
// Detect if stdout/stderr are redirected to /dev/null
|
|
83
|
+
const stdoutIsNull = detectNullStream(1);
|
|
84
|
+
const stderrIsNull = detectNullStream(2);
|
|
85
|
+
// Build stream configuration
|
|
86
|
+
const streamConfig = {
|
|
87
|
+
timestamps: opts.timestamps,
|
|
88
|
+
};
|
|
89
|
+
// --quiet: suppress all output streams (no server streams, no local capture)
|
|
90
|
+
if (opts.quiet) {
|
|
91
|
+
streamConfig.stdout = 'ignore';
|
|
92
|
+
streamConfig.stderr = 'ignore';
|
|
93
|
+
}
|
|
94
|
+
else if (!options.json) {
|
|
95
|
+
// Auto-detect /dev/null redirection (only when not in JSON mode)
|
|
96
|
+
// In JSON mode we need output for the response, so keep streams even if redirected
|
|
97
|
+
if (stdoutIsNull) {
|
|
98
|
+
streamConfig.stdout = 'ignore';
|
|
99
|
+
}
|
|
100
|
+
if (stderrIsNull) {
|
|
101
|
+
streamConfig.stderr = 'ignore';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
76
104
|
const abortController = new AbortController();
|
|
77
105
|
const handleSignal = () => {
|
|
78
106
|
abortController.abort();
|
|
@@ -87,7 +115,7 @@ export const execSubcommand = createCommand({
|
|
|
87
115
|
options: {
|
|
88
116
|
command: args.command,
|
|
89
117
|
timeout: opts.timeout,
|
|
90
|
-
stream:
|
|
118
|
+
stream: streamConfig,
|
|
91
119
|
},
|
|
92
120
|
orgId,
|
|
93
121
|
});
|
|
@@ -105,28 +133,18 @@ export const execSubcommand = createCommand({
|
|
|
105
133
|
const outputChunks = [];
|
|
106
134
|
const stdoutChunks = [];
|
|
107
135
|
const stderrChunks = [];
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
stderrWritable = createCaptureStream((chunk) => {
|
|
121
|
-
stderrChunks.push(chunk);
|
|
122
|
-
outputChunks.push(chunk);
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
stdoutWritable = process.stdout;
|
|
128
|
-
stderrWritable = process.stderr;
|
|
129
|
-
}
|
|
136
|
+
const stdoutWritable = options.json || stdoutIsNull
|
|
137
|
+
? createCaptureStream((chunk) => {
|
|
138
|
+
stdoutChunks.push(chunk);
|
|
139
|
+
outputChunks.push(chunk);
|
|
140
|
+
})
|
|
141
|
+
: process.stdout;
|
|
142
|
+
const stderrWritable = options.json || stderrIsNull
|
|
143
|
+
? createCaptureStream((chunk) => {
|
|
144
|
+
stderrChunks.push(chunk);
|
|
145
|
+
outputChunks.push(chunk);
|
|
146
|
+
})
|
|
147
|
+
: process.stderr;
|
|
130
148
|
if (isCombinedOutput) {
|
|
131
149
|
logger.debug('[exec] starting combined stream: %s', stdoutStreamUrl);
|
|
132
150
|
streamLabels.push('combined');
|
|
@@ -135,7 +153,7 @@ export const execSubcommand = createCommand({
|
|
|
135
153
|
label: 'combined',
|
|
136
154
|
raw: true,
|
|
137
155
|
v2: true,
|
|
138
|
-
})
|
|
156
|
+
}));
|
|
139
157
|
}
|
|
140
158
|
else {
|
|
141
159
|
if (stdoutStreamUrl) {
|
|
@@ -146,7 +164,7 @@ export const execSubcommand = createCommand({
|
|
|
146
164
|
label: 'stdout',
|
|
147
165
|
raw: true,
|
|
148
166
|
v2: true,
|
|
149
|
-
})
|
|
167
|
+
}));
|
|
150
168
|
}
|
|
151
169
|
if (stderrStreamUrl) {
|
|
152
170
|
logger.debug('[exec] starting stderr stream: %s', stderrStreamUrl);
|
|
@@ -156,18 +174,49 @@ export const execSubcommand = createCommand({
|
|
|
156
174
|
label: 'stderr',
|
|
157
175
|
raw: true,
|
|
158
176
|
v2: true,
|
|
159
|
-
})
|
|
177
|
+
}));
|
|
160
178
|
}
|
|
161
179
|
}
|
|
162
180
|
logger.debug('[exec] %d stream(s) started [%s], now long-polling executionGet', streamPromises.length, streamLabels.join(', '));
|
|
163
181
|
let finalExecution;
|
|
182
|
+
let streamResults;
|
|
164
183
|
const pollStart = Date.now();
|
|
184
|
+
const executionWaitAbortController = new AbortController();
|
|
165
185
|
try {
|
|
166
|
-
|
|
186
|
+
const executionWaitPromise = executionGet(client, {
|
|
167
187
|
executionId: execution.executionId,
|
|
168
188
|
orgId,
|
|
169
189
|
wait: EXECUTION_WAIT_DURATION,
|
|
190
|
+
signal: executionWaitAbortController.signal,
|
|
170
191
|
});
|
|
192
|
+
if (streamPromises.length > 0) {
|
|
193
|
+
const winner = await Promise.race([
|
|
194
|
+
executionWaitPromise.then((result) => ({ type: 'execution', result })),
|
|
195
|
+
Promise.all(streamPromises).then((results) => ({
|
|
196
|
+
type: 'streams',
|
|
197
|
+
results,
|
|
198
|
+
})),
|
|
199
|
+
]);
|
|
200
|
+
if (winner.type === 'execution') {
|
|
201
|
+
finalExecution = winner.result;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
streamResults = winner.results;
|
|
205
|
+
const bytesRead = streamResults.reduce((sum, result) => sum + result.bytesRead, 0);
|
|
206
|
+
if (bytesRead === 0) {
|
|
207
|
+
logger.debug('[exec] all streams EOF with 0 bytes before executionGet completed — switching to fast terminal poll');
|
|
208
|
+
void executionWaitPromise.catch(() => undefined);
|
|
209
|
+
executionWaitAbortController.abort();
|
|
210
|
+
finalExecution = await waitForTerminalExecutionFast(client, execution.executionId, orgId, logger);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
finalExecution = await executionWaitPromise;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
finalExecution = await executionWaitPromise;
|
|
219
|
+
}
|
|
171
220
|
}
|
|
172
221
|
catch (err) {
|
|
173
222
|
streamAbortController.abort();
|
|
@@ -178,16 +227,19 @@ export const execSubcommand = createCommand({
|
|
|
178
227
|
logger.debug('[exec] waiting for %d stream(s) to EOF', streamPromises.length);
|
|
179
228
|
const streamWaitStart = Date.now();
|
|
180
229
|
let graceTriggered = false;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
230
|
+
if (!streamResults) {
|
|
231
|
+
const streamGraceMs = 500;
|
|
232
|
+
const streamGrace = setTimeout(() => {
|
|
233
|
+
graceTriggered = true;
|
|
234
|
+
logger.debug('[exec] stream grace period (%dms) expired after execution complete — aborting streams', streamGraceMs);
|
|
235
|
+
streamAbortController.abort();
|
|
236
|
+
}, streamGraceMs);
|
|
237
|
+
try {
|
|
238
|
+
streamResults = await Promise.all(streamPromises);
|
|
239
|
+
}
|
|
240
|
+
finally {
|
|
241
|
+
clearTimeout(streamGrace);
|
|
242
|
+
}
|
|
191
243
|
}
|
|
192
244
|
logger.debug('[exec] all streams done in %dms (graceTriggered=%s)', Date.now() - streamWaitStart, graceTriggered);
|
|
193
245
|
}
|
|
@@ -250,5 +302,26 @@ function createCaptureStream(onChunk) {
|
|
|
250
302
|
},
|
|
251
303
|
});
|
|
252
304
|
}
|
|
305
|
+
const TERMINAL_EXECUTION_STATUSES = new Set([
|
|
306
|
+
'completed',
|
|
307
|
+
'failed',
|
|
308
|
+
'error',
|
|
309
|
+
'timeout',
|
|
310
|
+
'killed',
|
|
311
|
+
'cancelled',
|
|
312
|
+
]);
|
|
313
|
+
async function waitForTerminalExecutionFast(client, executionId, orgId, logger) {
|
|
314
|
+
const deadline = Date.now() + EMPTY_STREAM_FAST_TIMEOUT_MS;
|
|
315
|
+
while (Date.now() < deadline) {
|
|
316
|
+
const info = await executionGet(client, { executionId, orgId });
|
|
317
|
+
if (TERMINAL_EXECUTION_STATUSES.has(info.status)) {
|
|
318
|
+
logger.debug('[exec] fast terminal poll observed status=%s for executionId=%s', info.status, executionId);
|
|
319
|
+
return info;
|
|
320
|
+
}
|
|
321
|
+
await new Promise((resolve) => setTimeout(resolve, EMPTY_STREAM_FAST_POLL_MS));
|
|
322
|
+
}
|
|
323
|
+
logger.debug('[exec] fast terminal poll timed out after %dms for executionId=%s, falling back to long-poll', EMPTY_STREAM_FAST_TIMEOUT_MS, executionId);
|
|
324
|
+
return executionGet(client, { executionId, orgId, wait: EXECUTION_WAIT_DURATION });
|
|
325
|
+
}
|
|
253
326
|
export default execSubcommand;
|
|
254
327
|
//# sourceMappingURL=exec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/sandbox/exec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/sandbox/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,uBAAuB,GAAG,IAAI,CAAC;AACrC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC/C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACpE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACrF,MAAM,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;IACxE,MAAM,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kEAAkE,CAAC;IAC9E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACvE,eAAe,EAAE,CAAC;SAChB,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC1E,WAAW,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;CAClF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;IAC3C,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,2CAA2C,CAAC;YAChE,WAAW,EAAE,gCAAgC;SAC7C;QACD;YACC,OAAO,EAAE,UAAU,CAAC,yDAAyD,CAAC;YAC9E,WAAW,EAAE,sBAAsB;SACnC;KACD;IAED,MAAM,EAAE;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SACzE,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC/E,UAAU,EAAE,CAAC;iBACX,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;YAC3D,KAAK,EAAE,CAAC;iBACN,OAAO,EAAE;iBACT,OAAO,CAAC,KAAK,CAAC;iBACd,QAAQ,EAAE;iBACV,QAAQ,CAAC,uDAAuD,CAAC;SACnE,CAAC;QACF,QAAQ,EAAE,yBAAyB;KACnC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;QAE7D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,KAAK,CACR,2BAA2B,IAAI,CAAC,OAAO,qDAAqD,EAC5F,SAAS,CAAC,gBAAgB,CAC1B,CAAC;YACH,CAAC;QACF,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CACnD,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,CAAC,SAAS,EACd,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,YAAY,EAChC,GAAG,CAAC,MAAM,CACV,CAAC;QAEF,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE3B,sDAAsD;QACtD,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEzC,6BAA6B;QAC7B,MAAM,YAAY,GAId;YACH,UAAU,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC;QAEF,6EAA6E;QAC7E,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC;YAC/B,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC;QAChC,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1B,iEAAiE;YACjE,mFAAmF;YACnF,IAAI,YAAY,EAAE,CAAC;gBAClB,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC;YAChC,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBAClB,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC;YAChC,CAAC;QACF,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,GAAG,EAAE;YACzB,eAAe,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEpC,IAAI,CAAC;YACJ,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrE,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE;gBAC9C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE;oBACR,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,YAAY;iBACpB;gBACD,KAAK;aACL,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CACX,oFAAoF,EACpF,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EACzB,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,eAAe,IAAI,MAAM,EACnC,SAAS,CAAC,eAAe,IAAI,MAAM,CACnC,CAAC;YAEF,IAAI,SAAS,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5C,GAAG,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;YAClD,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;YAClD,MAAM,qBAAqB,GAAG,IAAI,eAAe,EAAE,CAAC;YACpD,MAAM,cAAc,GAAqD,EAAE,CAAC;YAC5E,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,MAAM,gBAAgB,GACrB,eAAe,IAAI,eAAe,IAAI,eAAe,KAAK,eAAe,CAAC;YAC3E,MAAM,CAAC,KAAK,CACX,6DAA6D,EAC7D,gBAAgB,EAChB,eAAe,IAAI,MAAM,EACzB,eAAe,IAAI,MAAM,CACzB,CAAC;YAEF,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,MAAM,cAAc,GACnB,OAAO,CAAC,IAAI,IAAI,YAAY;gBAC3B,CAAC,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBACH,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YACnB,MAAM,cAAc,GACnB,OAAO,CAAC,IAAI,IAAI,YAAY;gBAC3B,CAAC,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,CAAC;gBACH,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;YAEnB,IAAI,gBAAgB,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,eAAe,CAAC,CAAC;gBACrE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC9B,cAAc,CAAC,IAAI,CAClB,mBAAmB,CAAC,eAAgB,EAAE,cAAc,EAAE,MAAM,EAAE;oBAC7D,MAAM,EAAE,qBAAqB,CAAC,MAAM;oBACpC,KAAK,EAAE,UAAU;oBACjB,GAAG,EAAE,IAAI;oBACT,EAAE,EAAE,IAAI;iBACR,CAAC,CACF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,IAAI,eAAe,EAAE,CAAC;oBACrB,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,eAAe,CAAC,CAAC;oBACnE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,cAAc,CAAC,IAAI,CAClB,mBAAmB,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE;wBAC5D,MAAM,EAAE,qBAAqB,CAAC,MAAM;wBACpC,KAAK,EAAE,QAAQ;wBACf,GAAG,EAAE,IAAI;wBACT,EAAE,EAAE,IAAI;qBACR,CAAC,CACF,CAAC;gBACH,CAAC;gBAED,IAAI,eAAe,EAAE,CAAC;oBACrB,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,eAAe,CAAC,CAAC;oBACnE,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,cAAc,CAAC,IAAI,CAClB,mBAAmB,CAAC,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE;wBAC5D,MAAM,EAAE,qBAAqB,CAAC,MAAM;wBACpC,KAAK,EAAE,QAAQ;wBACf,GAAG,EAAE,IAAI;wBACT,EAAE,EAAE,IAAI;qBACR,CAAC,CACF,CAAC;gBACH,CAAC;YACF,CAAC;YAED,MAAM,CAAC,KAAK,CACX,iEAAiE,EACjE,cAAc,CAAC,MAAM,EACrB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CACvB,CAAC;YAEF,IAAI,cAAwD,CAAC;YAC7D,IAAI,aAAkE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,4BAA4B,GAAG,IAAI,eAAe,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACJ,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,EAAE;oBACjD,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,KAAK;oBACL,IAAI,EAAE,uBAAuB;oBAC7B,MAAM,EAAE,4BAA4B,CAAC,MAAM;iBAC3C,CAAC,CAAC;gBAEH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;wBACjC,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAoB,EAAE,MAAM,EAAE,CAAC,CAAC;wBAC/E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;4BAC9C,IAAI,EAAE,SAAkB;4BACxB,OAAO;yBACP,CAAC,CAAC;qBACH,CAAC,CAAC;oBAEH,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACjC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;oBAChC,CAAC;yBAAM,CAAC;wBACP,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;wBAC/B,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,EACvC,CAAC,CACD,CAAC;wBACF,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;4BACrB,MAAM,CAAC,KAAK,CACX,qGAAqG,CACrG,CAAC;4BACF,KAAK,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;4BACjD,4BAA4B,CAAC,KAAK,EAAE,CAAC;4BACrC,cAAc,GAAG,MAAM,4BAA4B,CAClD,MAAM,EACN,SAAS,CAAC,WAAW,EACrB,KAAK,EACL,MAAM,CACN,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACP,cAAc,GAAG,MAAM,oBAAoB,CAAC;wBAC7C,CAAC;oBACF,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,cAAc,GAAG,MAAM,oBAAoB,CAAC;gBAC7C,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,qBAAqB,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,GAAG,CAAC;YACX,CAAC;YACD,MAAM,CAAC,KAAK,CACX,8DAA8D,EAC9D,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EACtB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,QAAQ,IAAI,WAAW,CACtC,CAAC;YAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,IAAI,cAAc,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;oBACpB,MAAM,aAAa,GAAG,GAAG,CAAC;oBAC1B,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;wBACnC,cAAc,GAAG,IAAI,CAAC;wBACtB,MAAM,CAAC,KAAK,CACX,uFAAuF,EACvF,aAAa,CACb,CAAC;wBACF,qBAAqB,CAAC,KAAK,EAAE,CAAC;oBAC/B,CAAC,EAAE,aAAa,CAAC,CAAC;oBAClB,IAAI,CAAC;wBACJ,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;oBACnD,CAAC;4BAAS,CAAC;wBACV,YAAY,CAAC,WAAW,CAAC,CAAC;oBAC3B,CAAC;gBACF,CAAC;gBACD,MAAM,CAAC,KAAK,CACX,qDAAqD,EACrD,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,EAC5B,cAAc,CACd,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC9C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnC,IAAI,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;wBACtC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC/C,CAAC;yBAAM,CAAC;wBACP,OAAO,EAAE,CAAC;oBACX,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACtC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,MAAM,YAAY,GACjB,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1E,MAAM,YAAY,GACjB,CAAC,gBAAgB,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE1E,IAAI,cAAc,CAAC,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC5E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACnB,GAAG,CAAC,KAAK,CAAC,yBAAyB,cAAc,CAAC,QAAQ,OAAO,QAAQ,IAAI,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;YAC5C,CAAC;iBAAM,IAAI,cAAc,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC9D,IAAI,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACnB,GAAG,CAAC,KAAK,CACR,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,MAAM,OAAO,QAAQ,IAAI,CAC7F,CAAC;oBACH,CAAC;oBACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACtB,CAAC;qBAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC1B,GAAG,CAAC,IAAI,CACP,aAAa,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,cAAc,cAAc,CAAC,MAAM,EAAE,CACtF,CAAC;gBACH,CAAC;YACF,CAAC;YAED,OAAO;gBACN,WAAW,EAAE,cAAc,CAAC,WAAW;gBACvC,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;gBAC/C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;gBAC/C,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACzC,eAAe,EAAE,cAAc,CAAC,eAAe,IAAI,SAAS;gBAC5D,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,SAAS;aAC/C,CAAC;QACH,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;CACD,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAAC,OAAgC;IAC5D,OAAO,IAAI,QAAQ,CAAC;QACnB,KAAK,CACJ,KAAsB,EACtB,SAAiB,EACjB,QAAwC;YAExC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,QAAQ,EAAE,CAAC;QACZ,CAAC;KACD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC3C,WAAW;IACX,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,WAAW;CACX,CAAC,CAAC;AAEH,KAAK,UAAU,4BAA4B,CAC1C,MAA0C,EAC1C,WAAmB,EACnB,KAAa,EACb,MAAiD;IAEjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,4BAA4B,CAAC;IAC3D,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,CACX,iEAAiE,EACjE,IAAI,CAAC,MAAM,EACX,WAAW,CACX,CAAC;YACF,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,KAAK,CACX,8FAA8F,EAC9F,4BAA4B,EAC5B,WAAW,CACX,CAAC;IACF,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/list.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/list.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,cAAc,yCAoGzB,CAAC;AAEH,eAAe,cAAc,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { executionList
|
|
1
|
+
import { executionList } from '@agentuity/server';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
import { getCommand } from '../../../../command-prefix';
|
|
4
4
|
import * as tui from '../../../../tui';
|
|
5
5
|
import { createCommand } from '../../../../types';
|
|
6
|
-
import { createSandboxClient } from '../util';
|
|
6
|
+
import { createSandboxClient, resolveSandboxTarget } from '../util';
|
|
7
7
|
const ExecutionInfoSchema = z.object({
|
|
8
8
|
executionId: z.string().describe('Execution ID'),
|
|
9
9
|
sandboxId: z.string().describe('Sandbox ID'),
|
|
@@ -49,9 +49,7 @@ export const listSubcommand = createCommand({
|
|
|
49
49
|
},
|
|
50
50
|
async handler(ctx) {
|
|
51
51
|
const { args, opts, options, auth, logger, apiClient } = ctx;
|
|
52
|
-
|
|
53
|
-
const sandboxInfo = await sandboxResolve(apiClient, args.sandboxId);
|
|
54
|
-
const { region, orgId: resolvedOrgId } = sandboxInfo;
|
|
52
|
+
const { region, orgId: resolvedOrgId } = await resolveSandboxTarget(logger, auth, apiClient, args.sandboxId, ctx.config?.name ?? 'production', ctx.config);
|
|
55
53
|
const effectiveOrgId = opts?.orgId || resolvedOrgId;
|
|
56
54
|
const client = createSandboxClient(logger, auth, region);
|
|
57
55
|
const result = await executionList(client, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/execution/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cp.d.ts","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/fs/cp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cp.d.ts","sourceRoot":"","sources":["../../../../../src/cmd/cloud/sandbox/fs/cp.ts"],"names":[],"mappings":"AAiEA,eAAO,MAAM,YAAY,yCAmHvB,CAAC;AAibH,eAAe,YAAY,CAAC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { readFileSync,
|
|
2
|
+
import { readFileSync, mkdirSync, statSync, readdirSync, createWriteStream, mkdtempSync, rmSync, } from 'node:fs';
|
|
3
3
|
import { dirname, resolve, basename, join, relative } from 'node:path';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { pipeline } from 'node:stream/promises';
|
|
6
|
+
import { Readable } from 'node:stream';
|
|
7
|
+
import * as tar from 'tar';
|
|
4
8
|
import { createCommand } from '../../../../types';
|
|
5
9
|
import { toForwardSlash } from '../../../../utils/normalize-path';
|
|
6
10
|
import * as tui from '../../../../tui';
|
|
7
|
-
import { createSandboxClient } from '../util';
|
|
11
|
+
import { createSandboxClient, resolveSandboxTarget } from '../util';
|
|
8
12
|
import { getCommand } from '../../../../command-prefix';
|
|
9
|
-
import { sandboxWriteFiles, sandboxReadFile, sandboxExecute, executionGet,
|
|
13
|
+
import { sandboxWriteFiles, sandboxReadFile, sandboxExecute, executionGet, sandboxDownloadArchive, sandboxUploadArchive, } from '@agentuity/server';
|
|
10
14
|
const POLL_INTERVAL_MS = 500;
|
|
11
15
|
const MAX_POLL_ATTEMPTS = 600;
|
|
12
16
|
function parsePath(pathArg) {
|
|
@@ -91,9 +95,7 @@ export const cpSubcommand = createCommand({
|
|
|
91
95
|
logger.fatal('At least one path must include a sandbox ID (e.g., sbx_abc123:/path/to/file)');
|
|
92
96
|
}
|
|
93
97
|
const sandboxId = source.sandboxId ?? destination.sandboxId;
|
|
94
|
-
|
|
95
|
-
const sandboxInfo = await sandboxResolve(apiClient, sandboxId);
|
|
96
|
-
const { region, orgId } = sandboxInfo;
|
|
98
|
+
const { region, orgId } = await resolveSandboxTarget(logger, auth, apiClient, sandboxId, ctx.config?.name ?? 'production', ctx.config);
|
|
97
99
|
const client = createSandboxClient(logger, auth, region);
|
|
98
100
|
const recursive = opts.recursive ?? false;
|
|
99
101
|
const strict = opts.strict ?? false;
|
|
@@ -208,7 +210,6 @@ async function uploadDirectory(client, logger, orgId, sandboxId, localDir, remot
|
|
|
208
210
|
if (allFiles.length === 0) {
|
|
209
211
|
logger.fatal(`Directory is empty: ${localDir}`);
|
|
210
212
|
}
|
|
211
|
-
const files = [];
|
|
212
213
|
let totalBytes = 0;
|
|
213
214
|
const effectiveRemotePath = remotePath || basename(localDir);
|
|
214
215
|
const baseRemotePath = effectiveRemotePath.endsWith('/')
|
|
@@ -238,17 +239,27 @@ async function uploadDirectory(client, logger, orgId, sandboxId, localDir, remot
|
|
|
238
239
|
}
|
|
239
240
|
}
|
|
240
241
|
for (const filePath of allFiles) {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
totalBytes += statSync(filePath).size;
|
|
243
|
+
}
|
|
244
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'agentuity-fs-cp-'));
|
|
245
|
+
const archivePath = join(tempDir, 'upload.tar.gz');
|
|
246
|
+
try {
|
|
247
|
+
await createTarGzArchive(localDir, allFiles, archivePath);
|
|
248
|
+
await sandboxUploadArchive(client, {
|
|
249
|
+
sandboxId,
|
|
250
|
+
archive: Bun.file(archivePath).stream(),
|
|
251
|
+
path: baseRemotePath,
|
|
252
|
+
format: 'tar.gz',
|
|
253
|
+
orgId,
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
246
258
|
}
|
|
247
|
-
await sandboxWriteFiles(client, { sandboxId, files, orgId });
|
|
248
259
|
if (!jsonOutput) {
|
|
249
260
|
tui.success(`Copied ${localDir} → ${sandboxId}:${baseRemotePath} (${allFiles.length} files, ${totalBytes} bytes)`);
|
|
250
261
|
}
|
|
251
|
-
const implicitDirs = getImplicitDirectories(
|
|
262
|
+
const implicitDirs = getImplicitDirectories(allFiles.map((filePath) => `${baseRemotePath}/${toForwardSlash(relative(localDir, filePath))}`));
|
|
252
263
|
return {
|
|
253
264
|
source: localDir,
|
|
254
265
|
destination: `${sandboxId}:${baseRemotePath}`,
|
|
@@ -265,16 +276,6 @@ async function downloadFromSandbox(client, logger, orgId, sandboxId, remotePath,
|
|
|
265
276
|
}
|
|
266
277
|
async function downloadSingleFile(client, _logger, orgId, sandboxId, remotePath, localPath, _timeout, jsonOutput) {
|
|
267
278
|
const stream = await sandboxReadFile(client, { sandboxId, path: remotePath, orgId });
|
|
268
|
-
const chunks = [];
|
|
269
|
-
const reader = stream.getReader();
|
|
270
|
-
while (true) {
|
|
271
|
-
const { done, value } = await reader.read();
|
|
272
|
-
if (done)
|
|
273
|
-
break;
|
|
274
|
-
if (value)
|
|
275
|
-
chunks.push(value);
|
|
276
|
-
}
|
|
277
|
-
const buffer = Buffer.concat(chunks);
|
|
278
279
|
let targetPath = localPath;
|
|
279
280
|
if (localPath.endsWith('/') || localPath === '.') {
|
|
280
281
|
targetPath = resolve(localPath, basename(remotePath));
|
|
@@ -284,77 +285,48 @@ async function downloadSingleFile(client, _logger, orgId, sandboxId, remotePath,
|
|
|
284
285
|
}
|
|
285
286
|
const dir = dirname(targetPath);
|
|
286
287
|
mkdirSync(dir, { recursive: true });
|
|
287
|
-
|
|
288
|
+
await pipeline(Readable.fromWeb(stream), createWriteStream(targetPath));
|
|
289
|
+
const buffer = Bun.file(targetPath);
|
|
288
290
|
if (!jsonOutput) {
|
|
289
|
-
tui.success(`Copied ${sandboxId}:${remotePath} → ${targetPath} (${buffer.
|
|
291
|
+
tui.success(`Copied ${sandboxId}:${remotePath} → ${targetPath} (${buffer.size} bytes)`);
|
|
290
292
|
}
|
|
291
293
|
return {
|
|
292
294
|
source: `${sandboxId}:${remotePath}`,
|
|
293
295
|
destination: targetPath,
|
|
294
|
-
bytesTransferred: buffer.
|
|
296
|
+
bytesTransferred: buffer.size,
|
|
295
297
|
filesTransferred: 1,
|
|
296
298
|
};
|
|
297
299
|
}
|
|
298
|
-
async function downloadDirectory(client,
|
|
299
|
-
const listExecution = await sandboxExecute(client, {
|
|
300
|
-
sandboxId,
|
|
301
|
-
options: {
|
|
302
|
-
command: ['find', remotePath, '-type', 'f'],
|
|
303
|
-
timeout,
|
|
304
|
-
},
|
|
305
|
-
orgId,
|
|
306
|
-
});
|
|
307
|
-
const listChunks = [];
|
|
308
|
-
if (listExecution.stdoutStreamUrl) {
|
|
309
|
-
await streamToBuffer(listExecution.stdoutStreamUrl, listChunks, logger);
|
|
310
|
-
}
|
|
311
|
-
await waitForExecution(client, orgId, listExecution.executionId, logger);
|
|
312
|
-
const fileList = Buffer.concat(listChunks)
|
|
313
|
-
.toString('utf-8')
|
|
314
|
-
.trim()
|
|
315
|
-
.split('\n')
|
|
316
|
-
.filter((f) => f.length > 0);
|
|
317
|
-
if (fileList.length === 0) {
|
|
318
|
-
logger.fatal(`No files found in directory: ${remotePath}`);
|
|
319
|
-
}
|
|
320
|
-
const baseRemotePath = remotePath.endsWith('/') ? remotePath.slice(0, -1) : remotePath;
|
|
300
|
+
async function downloadDirectory(client, _logger, orgId, sandboxId, remotePath, localPath, _timeout, jsonOutput) {
|
|
321
301
|
const baseLocalPath = resolve(localPath);
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
mkdirSync(dir, { recursive: true });
|
|
343
|
-
writeFileSync(localFilePath, buffer);
|
|
344
|
-
if (!jsonOutput) {
|
|
345
|
-
logger.info(`Downloaded ${remoteFile} (${buffer.length} bytes)`);
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
catch (err) {
|
|
349
|
-
logger.warn(`Failed to read file: ${remoteFile}, skipping: ${err}`);
|
|
350
|
-
continue;
|
|
351
|
-
}
|
|
302
|
+
mkdirSync(baseLocalPath, { recursive: true });
|
|
303
|
+
const tempDir = mkdtempSync(join(tmpdir(), 'agentuity-fs-cp-'));
|
|
304
|
+
const archivePath = join(tempDir, 'download.tar.gz');
|
|
305
|
+
try {
|
|
306
|
+
const archiveStream = await sandboxDownloadArchive(client, {
|
|
307
|
+
sandboxId,
|
|
308
|
+
path: remotePath,
|
|
309
|
+
format: 'tar.gz',
|
|
310
|
+
orgId,
|
|
311
|
+
});
|
|
312
|
+
await pipeline(Readable.fromWeb(archiveStream), createWriteStream(archivePath));
|
|
313
|
+
await tar.extract({
|
|
314
|
+
file: archivePath,
|
|
315
|
+
cwd: baseLocalPath,
|
|
316
|
+
preservePaths: false,
|
|
317
|
+
strict: true,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
finally {
|
|
321
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
352
322
|
}
|
|
323
|
+
const fileList = getAllFiles(baseLocalPath);
|
|
324
|
+
const totalBytes = fileList.reduce((sum, filePath) => sum + statSync(filePath).size, 0);
|
|
353
325
|
if (!jsonOutput) {
|
|
354
|
-
tui.success(`Copied ${sandboxId}:${
|
|
326
|
+
tui.success(`Copied ${sandboxId}:${remotePath} → ${baseLocalPath} (${fileList.length} files, ${totalBytes} bytes)`);
|
|
355
327
|
}
|
|
356
328
|
return {
|
|
357
|
-
source: `${sandboxId}:${
|
|
329
|
+
source: `${sandboxId}:${remotePath}`,
|
|
358
330
|
destination: baseLocalPath,
|
|
359
331
|
bytesTransferred: totalBytes,
|
|
360
332
|
filesTransferred: fileList.length,
|
|
@@ -387,37 +359,13 @@ async function waitForExecution(client, orgId, executionId, logger) {
|
|
|
387
359
|
}
|
|
388
360
|
logger.fatal('Execution timed out waiting for completion');
|
|
389
361
|
}
|
|
390
|
-
async function
|
|
391
|
-
const
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
await sleep(retryDelay);
|
|
398
|
-
}
|
|
399
|
-
const response = await fetch(url);
|
|
400
|
-
if (!response.ok || !response.body) {
|
|
401
|
-
continue;
|
|
402
|
-
}
|
|
403
|
-
const reader = response.body.getReader();
|
|
404
|
-
while (true) {
|
|
405
|
-
const { done, value } = await reader.read();
|
|
406
|
-
if (done) {
|
|
407
|
-
return;
|
|
408
|
-
}
|
|
409
|
-
if (value) {
|
|
410
|
-
chunks.push(Buffer.from(value));
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
catch (err) {
|
|
415
|
-
if (err instanceof Error && err.name === 'AbortError') {
|
|
416
|
-
throw err;
|
|
417
|
-
}
|
|
418
|
-
logger.debug('stream error: %s', err);
|
|
419
|
-
}
|
|
420
|
-
}
|
|
362
|
+
async function createTarGzArchive(localDir, allFiles, archivePath) {
|
|
363
|
+
const relativePaths = allFiles.map((filePath) => toForwardSlash(relative(localDir, filePath)));
|
|
364
|
+
await tar.create({
|
|
365
|
+
gzip: true,
|
|
366
|
+
file: archivePath,
|
|
367
|
+
cwd: localDir,
|
|
368
|
+
}, relativePaths);
|
|
421
369
|
}
|
|
422
370
|
function sleep(ms) {
|
|
423
371
|
return new Promise((resolve) => setTimeout(resolve, ms));
|