@markusylisiurunen/tau 0.3.28 → 0.3.30
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/README.md +21 -19
- package/dist/core/config/content_loader.js +3 -1
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/runtime.js +5 -1
- package/dist/core/config/runtime.js.map +1 -1
- package/dist/core/config/runtime_config_snapshot.js +5 -1
- package/dist/core/config/runtime_config_snapshot.js.map +1 -1
- package/dist/core/config/schema.js +3 -3
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/diff_review/snapshot.js +3 -3
- package/dist/core/diff_review/snapshot.js.map +1 -1
- package/dist/core/index.js +0 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/personas.js +2 -1
- package/dist/core/personas.js.map +1 -1
- package/dist/core/runtime/runtime_bootstrap.js +5 -1
- package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
- package/dist/core/session/direct_bash.js +1 -0
- package/dist/core/session/direct_bash.js.map +1 -1
- package/dist/core/session/runner.js +2 -0
- package/dist/core/session/runner.js.map +1 -1
- package/dist/core/session/session_engine.js +48 -12
- package/dist/core/session/session_engine.js.map +1 -1
- package/dist/core/static/code_mode/web/documentation.md +236 -0
- package/dist/core/static/code_mode/web/sandbox_runner.mjs +112 -0
- package/dist/core/subagents/control_plane.js +0 -37
- package/dist/core/subagents/control_plane.js.map +1 -1
- package/dist/core/subagents/registry.js +2 -3
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/subagents/subagent_engine.js +6 -19
- package/dist/core/subagents/subagent_engine.js.map +1 -1
- package/dist/core/subagents/types.js +2 -3
- package/dist/core/subagents/types.js.map +1 -1
- package/dist/core/telegram/adapter.js +103 -21
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/config.js +0 -8
- package/dist/core/telegram/config.js.map +1 -1
- package/dist/core/telegram/runtime.js +20 -2
- package/dist/core/telegram/runtime.js.map +1 -1
- package/dist/core/telegram/session_manager.js +116 -42
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/telegram/workspace.js +18 -76
- package/dist/core/telegram/workspace.js.map +1 -1
- package/dist/core/tools/bash.js +16 -8
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/catalog.js +7 -14
- package/dist/core/tools/catalog.js.map +1 -1
- package/dist/core/tools/code_mode.js +105 -0
- package/dist/core/tools/code_mode.js.map +1 -0
- package/dist/core/tools/execution_backend.js +81 -153
- package/dist/core/tools/execution_backend.js.map +1 -1
- package/dist/core/tools/registry.js +0 -3
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +1 -1
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/tools/terminate_agent.js +5 -11
- package/dist/core/tools/terminate_agent.js.map +1 -1
- package/dist/core/tools/tool_names.js +2 -12
- package/dist/core/tools/tool_names.js.map +1 -1
- package/dist/core/tools/wait_for_agents.js +3 -11
- package/dist/core/tools/wait_for_agents.js.map +1 -1
- package/dist/core/tools/web.js +537 -0
- package/dist/core/tools/web.js.map +1 -0
- package/dist/core/tools/web_discovery.js +201 -0
- package/dist/core/tools/web_discovery.js.map +1 -0
- package/dist/core/utils/compact.js +53 -11
- package/dist/core/utils/compact.js.map +1 -1
- package/dist/core/utils/project_files.js +14 -1
- package/dist/core/utils/project_files.js.map +1 -1
- package/dist/core/utils/subagent_utils.js +8 -8
- package/dist/core/utils/subagent_utils.js.map +1 -1
- package/dist/core/utils/user_metadata.js +14 -0
- package/dist/core/utils/user_metadata.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/execution/cloudflare_sandbox_execution_environment.js +155 -112
- package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
- package/dist/execution/fly_sprite_execution_environment.js +109 -91
- package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
- package/dist/execution/sandbox_tool_helpers.js +0 -25
- package/dist/execution/sandbox_tool_helpers.js.map +1 -1
- package/dist/execution/tool_backend_execution_environment.js +4 -1
- package/dist/execution/tool_backend_execution_environment.js.map +1 -1
- package/dist/host/hosted_ephemeral_agent_session.js +1 -1
- package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
- package/dist/host/local_session_host.js +40 -7
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/host/session_host.js +5 -0
- package/dist/host/session_host.js.map +1 -1
- package/dist/host/session_protocol_handler.js +55 -6
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/protocol/index.d.ts +2 -2
- package/dist/protocol/index.js +1 -1
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/session_protocol.d.ts +22 -3
- package/dist/protocol/session_protocol.js +115 -30
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/session.js +51 -2
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +5 -0
- package/dist/tui/session_chat_controller.js +5 -50
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/session_tool_execution_backend.js +76 -98
- package/dist/tui/session_tool_execution_backend.js.map +1 -1
- package/dist/tui/ui/agent_activity_format.js +6 -15
- package/dist/tui/ui/agent_activity_format.js.map +1 -1
- package/dist/tui/ui/subagent_panel.js +0 -13
- package/dist/tui/ui/subagent_panel.js.map +1 -1
- package/dist/tui/ui/tool_ui_registry.js +83 -19
- package/dist/tui/ui/tool_ui_registry.js.map +1 -1
- package/package.json +3 -2
- package/dist/core/tools/emit_output.js +0 -58
- package/dist/core/tools/emit_output.js.map +0 -1
- package/dist/core/tools/grep.js +0 -250
- package/dist/core/tools/grep.js.map +0 -1
- package/dist/core/tools/list.js +0 -131
- package/dist/core/tools/list.js.map +0 -1
- package/dist/core/tools/read.js +0 -171
- package/dist/core/tools/read.js.map +0 -1
- package/dist/core/tools/web_fetch.js +0 -259
- package/dist/core/tools/web_fetch.js.map +0 -1
- package/dist/core/tools/web_search.js +0 -242
- package/dist/core/tools/web_search.js.map +0 -1
- package/dist/core/utils/parallel_api.js +0 -26
- package/dist/core/utils/parallel_api.js.map +0 -1
- package/dist/tui/ui/restricted_execution.js +0 -203
- package/dist/tui/ui/restricted_execution.js.map +0 -1
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { dirname } from "node:path/posix";
|
|
3
|
-
import {
|
|
3
|
+
import { applyBashEnvironment, applyCommandEnvironment, DEFAULT_COMMAND_CAPTURE_BYTES, } from "../core/tools/execution_backend.js";
|
|
4
|
+
import { assertFileWithinMaxBytes, buildWriteFileResult, NODE_LIST_DIR_SCRIPT, } from "./sandbox_tool_helpers.js";
|
|
4
5
|
import { ToolBackendExecutionEnvironment } from "./tool_backend_execution_environment.js";
|
|
5
|
-
const BASH_MAX_CAPTURE_BYTES = 1024 * 1024;
|
|
6
6
|
const DEFAULT_HOME = "/home/sandbox";
|
|
7
|
+
const HELPER_OPERATION_TIMEOUT_MS = 30_000;
|
|
7
8
|
export class CloudflareSandboxExecutionEnvironment extends ToolBackendExecutionEnvironment {
|
|
8
9
|
kind = "cloudflare-sandbox";
|
|
9
10
|
constructor(options) {
|
|
@@ -73,6 +74,7 @@ export function createCloudflareSandboxToolExecutionBackend(options) {
|
|
|
73
74
|
const { client, sandboxId } = options;
|
|
74
75
|
const commandSessions = new Map();
|
|
75
76
|
const commandQueues = new Map();
|
|
77
|
+
const cleanupPromises = new Set();
|
|
76
78
|
const disposeAbortController = new AbortController();
|
|
77
79
|
let disposed = false;
|
|
78
80
|
const assertActive = () => {
|
|
@@ -80,13 +82,17 @@ export function createCloudflareSandboxToolExecutionBackend(options) {
|
|
|
80
82
|
throw new Error("Cloudflare Sandbox execution backend is disposed");
|
|
81
83
|
}
|
|
82
84
|
};
|
|
83
|
-
const
|
|
85
|
+
const createHelperSignal = () => AbortSignal.any([
|
|
86
|
+
disposeAbortController.signal,
|
|
87
|
+
AbortSignal.timeout(HELPER_OPERATION_TIMEOUT_MS),
|
|
88
|
+
]);
|
|
89
|
+
const ensureCommandSession = async (cwd, signal) => {
|
|
84
90
|
const existing = commandSessions.get(cwd);
|
|
85
91
|
if (existing) {
|
|
86
92
|
return (await existing).id;
|
|
87
93
|
}
|
|
88
94
|
const sessionPromise = client
|
|
89
|
-
.createSession(sandboxId, { cwd })
|
|
95
|
+
.createSession(sandboxId, { cwd, signal })
|
|
90
96
|
.then((id) => ({ id, cwd }))
|
|
91
97
|
.catch((err) => {
|
|
92
98
|
if (commandSessions.get(cwd) === sessionPromise) {
|
|
@@ -102,16 +108,25 @@ export function createCloudflareSandboxToolExecutionBackend(options) {
|
|
|
102
108
|
commandSessions.delete(cwd);
|
|
103
109
|
const session = await sessionPromise?.catch(() => undefined);
|
|
104
110
|
if (session) {
|
|
105
|
-
await client
|
|
111
|
+
await client
|
|
112
|
+
.deleteSession(sandboxId, session.id, AbortSignal.timeout(HELPER_OPERATION_TIMEOUT_MS))
|
|
113
|
+
.catch(() => { });
|
|
106
114
|
}
|
|
107
115
|
};
|
|
116
|
+
const scheduleCommandSessionReset = (cwd) => {
|
|
117
|
+
const cleanup = resetCommandSession(cwd);
|
|
118
|
+
cleanupPromises.add(cleanup);
|
|
119
|
+
void cleanup.then(() => cleanupPromises.delete(cleanup), () => cleanupPromises.delete(cleanup));
|
|
120
|
+
};
|
|
108
121
|
const resetAllCommandSessions = async () => {
|
|
109
122
|
const sessionPromises = [...commandSessions.values()];
|
|
110
123
|
commandSessions.clear();
|
|
111
124
|
await Promise.all(sessionPromises.map(async (sessionPromise) => {
|
|
112
125
|
const session = await sessionPromise.catch(() => undefined);
|
|
113
126
|
if (session) {
|
|
114
|
-
await client
|
|
127
|
+
await client
|
|
128
|
+
.deleteSession(sandboxId, session.id, AbortSignal.timeout(HELPER_OPERATION_TIMEOUT_MS))
|
|
129
|
+
.catch(() => { });
|
|
115
130
|
}
|
|
116
131
|
}));
|
|
117
132
|
};
|
|
@@ -135,31 +150,71 @@ export function createCloudflareSandboxToolExecutionBackend(options) {
|
|
|
135
150
|
}
|
|
136
151
|
}
|
|
137
152
|
};
|
|
138
|
-
const
|
|
153
|
+
const runCommand = async (argv, runOptions = {}) => {
|
|
154
|
+
assertActive();
|
|
139
155
|
const cwd = runOptions.cwd ?? options.cwd;
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
156
|
+
const timeoutSignal = runOptions.timeoutMs !== undefined &&
|
|
157
|
+
Number.isFinite(runOptions.timeoutMs) &&
|
|
158
|
+
runOptions.timeoutMs > 0
|
|
159
|
+
? AbortSignal.timeout(runOptions.timeoutMs)
|
|
160
|
+
: undefined;
|
|
161
|
+
const signal = AbortSignal.any([disposeAbortController.signal, runOptions.signal, timeoutSignal].filter((candidate) => candidate !== undefined));
|
|
162
|
+
const stdinPath = runOptions.stdin !== undefined ? `/tmp/tau-exec-${randomUUID()}.stdin` : undefined;
|
|
163
|
+
let sessionAcquired = false;
|
|
164
|
+
try {
|
|
165
|
+
return await runQueued(cwd, signal, async () => {
|
|
166
|
+
if (stdinPath && runOptions.stdin) {
|
|
167
|
+
await client.writeFile(sandboxId, stdinPath, runOptions.stdin, signal);
|
|
168
|
+
}
|
|
169
|
+
const sessionId = await ensureCommandSession(cwd, signal);
|
|
170
|
+
sessionAcquired = true;
|
|
171
|
+
const executionArgv = stdinPath
|
|
172
|
+
? ["bash", "-c", 'exec "$@" < "$0"', stdinPath, ...argv]
|
|
173
|
+
: argv;
|
|
146
174
|
return await client.exec(sandboxId, {
|
|
147
|
-
argv:
|
|
175
|
+
argv: applyCommandEnvironment(executionArgv, runOptions.env),
|
|
148
176
|
cwd,
|
|
149
177
|
timeoutMs: runOptions.timeoutMs,
|
|
150
178
|
signal,
|
|
179
|
+
maxCaptureBytes: runOptions.maxCaptureBytes,
|
|
151
180
|
sessionId,
|
|
152
|
-
onAbort: () => resetCommandSession(cwd),
|
|
153
181
|
});
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
if (sessionAcquired && (signal.aborted || isAbortError(error))) {
|
|
186
|
+
scheduleCommandSessionReset(cwd);
|
|
154
187
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
await resetCommandSession(cwd);
|
|
158
|
-
}
|
|
159
|
-
throw err;
|
|
188
|
+
if (timeoutSignal?.aborted) {
|
|
189
|
+
return terminatedExecutionResult(`(tau) timed out after ${runOptions.timeoutMs}ms`, "timeout");
|
|
160
190
|
}
|
|
161
|
-
|
|
191
|
+
if (runOptions.signal?.aborted || disposeAbortController.signal.aborted) {
|
|
192
|
+
return terminatedExecutionResult("(tau) aborted", "abort");
|
|
193
|
+
}
|
|
194
|
+
throw error;
|
|
195
|
+
}
|
|
196
|
+
finally {
|
|
197
|
+
if (stdinPath) {
|
|
198
|
+
await client
|
|
199
|
+
.exec(sandboxId, {
|
|
200
|
+
argv: ["rm", "-f", "--", stdinPath],
|
|
201
|
+
cwd,
|
|
202
|
+
timeoutMs: HELPER_OPERATION_TIMEOUT_MS,
|
|
203
|
+
signal: AbortSignal.timeout(HELPER_OPERATION_TIMEOUT_MS),
|
|
204
|
+
maxCaptureBytes: 1024,
|
|
205
|
+
})
|
|
206
|
+
.catch(() => { });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
162
209
|
};
|
|
210
|
+
const runBash = (command, runOptions = {}) => runCommand(["bash", "-lc", command, ...(runOptions.args ?? [])], {
|
|
211
|
+
...runOptions,
|
|
212
|
+
env: applyBashEnvironment(runOptions.env),
|
|
213
|
+
});
|
|
214
|
+
const runNodeScript = (script, args = [], runOptions = {}) => runBash('exec "$0" "$@"', {
|
|
215
|
+
...runOptions,
|
|
216
|
+
args: ["node", "-e", script, ...args],
|
|
217
|
+
});
|
|
163
218
|
return {
|
|
164
219
|
async dispose() {
|
|
165
220
|
if (disposed) {
|
|
@@ -169,42 +224,18 @@ export function createCloudflareSandboxToolExecutionBackend(options) {
|
|
|
169
224
|
disposeAbortController.abort();
|
|
170
225
|
await Promise.allSettled(commandQueues.values());
|
|
171
226
|
await resetAllCommandSessions();
|
|
227
|
+
await Promise.allSettled(cleanupPromises);
|
|
172
228
|
},
|
|
173
|
-
runBash
|
|
174
|
-
|
|
175
|
-
const cwd = runOptions.cwd ?? options.cwd;
|
|
176
|
-
const signal = runOptions.signal
|
|
177
|
-
? AbortSignal.any([runOptions.signal, disposeAbortController.signal])
|
|
178
|
-
: disposeAbortController.signal;
|
|
179
|
-
return await runQueued(cwd, signal, async () => {
|
|
180
|
-
const sessionId = await ensureCommandSession(cwd);
|
|
181
|
-
try {
|
|
182
|
-
return await client.exec(sandboxId, {
|
|
183
|
-
argv: ["node", "-e", script, ...args],
|
|
184
|
-
cwd,
|
|
185
|
-
timeoutMs: runOptions.timeoutMs,
|
|
186
|
-
signal,
|
|
187
|
-
maxCaptureBytes: runOptions.maxCaptureBytes,
|
|
188
|
-
sessionId,
|
|
189
|
-
onAbort: () => resetCommandSession(cwd),
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
catch (err) {
|
|
193
|
-
if (isAbortError(err)) {
|
|
194
|
-
await resetCommandSession(cwd);
|
|
195
|
-
}
|
|
196
|
-
throw err;
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
},
|
|
229
|
+
runBash,
|
|
230
|
+
runNodeScript,
|
|
200
231
|
async readFile(path) {
|
|
201
232
|
assertActive();
|
|
202
|
-
const content = await client.readFile(sandboxId, path);
|
|
233
|
+
const content = await client.readFile(sandboxId, path, undefined, createHelperSignal());
|
|
203
234
|
return { path, content: content.toString("utf-8") };
|
|
204
235
|
},
|
|
205
236
|
async readFileBinary(path, readOptions = {}) {
|
|
206
237
|
assertActive();
|
|
207
|
-
const content = await client.readFile(sandboxId, path);
|
|
238
|
+
const content = await client.readFile(sandboxId, path, readOptions.maxBytes, createHelperSignal());
|
|
208
239
|
const bytes = content.byteLength;
|
|
209
240
|
assertFileWithinMaxBytes(bytes, readOptions.maxBytes);
|
|
210
241
|
return { path, content, bytes };
|
|
@@ -213,54 +244,29 @@ export function createCloudflareSandboxToolExecutionBackend(options) {
|
|
|
213
244
|
assertActive();
|
|
214
245
|
const dir = dirname(path);
|
|
215
246
|
if (dir && dir !== ".") {
|
|
216
|
-
await exec
|
|
247
|
+
await runBash('exec "$0" "$@"', { args: ["mkdir", "-p", dir] });
|
|
217
248
|
}
|
|
218
|
-
await client.writeFile(sandboxId, path, Buffer.from(content, "utf-8"));
|
|
249
|
+
await client.writeFile(sandboxId, path, Buffer.from(content, "utf-8"), createHelperSignal());
|
|
219
250
|
return buildWriteFileResult(path, content);
|
|
220
251
|
},
|
|
221
252
|
async writeFileBinary(path, content) {
|
|
222
253
|
assertActive();
|
|
223
254
|
const dir = dirname(path);
|
|
224
255
|
if (dir && dir !== ".") {
|
|
225
|
-
await exec
|
|
256
|
+
await runBash('exec "$0" "$@"', { args: ["mkdir", "-p", dir] });
|
|
226
257
|
}
|
|
227
|
-
await client.writeFile(sandboxId, path, content);
|
|
258
|
+
await client.writeFile(sandboxId, path, content, createHelperSignal());
|
|
228
259
|
return { path, bytes: content.byteLength };
|
|
229
260
|
},
|
|
230
261
|
async listDir(path) {
|
|
231
262
|
assertActive();
|
|
232
|
-
const result = await
|
|
263
|
+
const result = await runNodeScript(NODE_LIST_DIR_SCRIPT, [path]);
|
|
233
264
|
if (result.exitCode !== 0) {
|
|
234
265
|
throw new Error(result.output.trim() || `list failed for ${path}`);
|
|
235
266
|
}
|
|
236
|
-
const entries = JSON.parse(result.
|
|
267
|
+
const entries = JSON.parse(result.stdout);
|
|
237
268
|
return { path, entries };
|
|
238
269
|
},
|
|
239
|
-
async grep(grepOptions) {
|
|
240
|
-
assertActive();
|
|
241
|
-
const resolvedPaths = resolveSandboxGrepPaths(grepOptions.paths);
|
|
242
|
-
if (grepOptions.dryRun) {
|
|
243
|
-
return buildSandboxGrepDryRunResult(resolvedPaths);
|
|
244
|
-
}
|
|
245
|
-
const command = ["rg", ...grepOptions.baseArgs, "--", grepOptions.pattern, ...resolvedPaths]
|
|
246
|
-
.map(shellQuote)
|
|
247
|
-
.join(" ");
|
|
248
|
-
try {
|
|
249
|
-
const result = await exec(command, {
|
|
250
|
-
timeoutMs: grepOptions.timeoutMs,
|
|
251
|
-
signal: grepOptions.signal,
|
|
252
|
-
});
|
|
253
|
-
return {
|
|
254
|
-
output: result.output,
|
|
255
|
-
exitCode: result.exitCode,
|
|
256
|
-
captureTruncated: result.truncated,
|
|
257
|
-
resolvedPaths,
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
catch (err) {
|
|
261
|
-
return buildSandboxGrepErrorResult(err, resolvedPaths);
|
|
262
|
-
}
|
|
263
|
-
},
|
|
264
270
|
};
|
|
265
271
|
}
|
|
266
272
|
async function waitForQueue(queue, signal) {
|
|
@@ -320,25 +326,50 @@ export class CloudflareSandboxBridgeClient {
|
|
|
320
326
|
}
|
|
321
327
|
return await parseExecSse(response.body, options.maxCaptureBytes);
|
|
322
328
|
}
|
|
323
|
-
catch (err) {
|
|
324
|
-
if (isAbortError(err) && options.onAbort) {
|
|
325
|
-
await options.onAbort();
|
|
326
|
-
}
|
|
327
|
-
throw err;
|
|
328
|
-
}
|
|
329
329
|
finally {
|
|
330
330
|
options.signal?.removeEventListener("abort", abort);
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
|
-
async readFile(sandboxId, path) {
|
|
334
|
-
const response = await this.request(`/v1/sandbox/${encodeURIComponent(sandboxId)}/file/${encodeBridgeFilePath(path)}`, { method: "GET" });
|
|
333
|
+
async readFile(sandboxId, path, maxBytes, signal) {
|
|
334
|
+
const response = await this.request(`/v1/sandbox/${encodeURIComponent(sandboxId)}/file/${encodeBridgeFilePath(path)}`, { method: "GET", signal });
|
|
335
335
|
if (!response.ok) {
|
|
336
336
|
throw await this.createHttpError(response);
|
|
337
337
|
}
|
|
338
|
-
|
|
338
|
+
const contentLength = Number(response.headers.get("Content-Length"));
|
|
339
|
+
if (Number.isFinite(contentLength)) {
|
|
340
|
+
try {
|
|
341
|
+
assertFileWithinMaxBytes(contentLength, maxBytes);
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
await response.body?.cancel().catch(() => { });
|
|
345
|
+
throw error;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (!response.body) {
|
|
349
|
+
return Buffer.alloc(0);
|
|
350
|
+
}
|
|
351
|
+
const reader = response.body.getReader();
|
|
352
|
+
const chunks = [];
|
|
353
|
+
let bytes = 0;
|
|
354
|
+
while (true) {
|
|
355
|
+
const { done, value } = await reader.read();
|
|
356
|
+
if (done)
|
|
357
|
+
break;
|
|
358
|
+
const chunk = Buffer.from(value);
|
|
359
|
+
bytes += chunk.byteLength;
|
|
360
|
+
try {
|
|
361
|
+
assertFileWithinMaxBytes(bytes, maxBytes);
|
|
362
|
+
}
|
|
363
|
+
catch (error) {
|
|
364
|
+
await reader.cancel().catch(() => { });
|
|
365
|
+
throw error;
|
|
366
|
+
}
|
|
367
|
+
chunks.push(chunk);
|
|
368
|
+
}
|
|
369
|
+
return Buffer.concat(chunks, bytes);
|
|
339
370
|
}
|
|
340
|
-
async writeFile(sandboxId, path, content) {
|
|
341
|
-
const response = await this.request(`/v1/sandbox/${encodeURIComponent(sandboxId)}/file/${encodeBridgeFilePath(path)}`, { method: "PUT", body: content });
|
|
371
|
+
async writeFile(sandboxId, path, content, signal) {
|
|
372
|
+
const response = await this.request(`/v1/sandbox/${encodeURIComponent(sandboxId)}/file/${encodeBridgeFilePath(path)}`, { method: "PUT", body: content, signal });
|
|
342
373
|
if (!response.ok) {
|
|
343
374
|
throw await this.createHttpError(response);
|
|
344
375
|
}
|
|
@@ -348,6 +379,7 @@ export class CloudflareSandboxBridgeClient {
|
|
|
348
379
|
method: "POST",
|
|
349
380
|
headers: { "Content-Type": "application/json" },
|
|
350
381
|
body: JSON.stringify({ id: randomUUID(), cwd: options.cwd }),
|
|
382
|
+
signal: options.signal,
|
|
351
383
|
});
|
|
352
384
|
if (!response.ok) {
|
|
353
385
|
throw await this.createHttpError(response);
|
|
@@ -358,8 +390,8 @@ export class CloudflareSandboxBridgeClient {
|
|
|
358
390
|
}
|
|
359
391
|
return body.id;
|
|
360
392
|
}
|
|
361
|
-
async deleteSession(sandboxId, sessionId) {
|
|
362
|
-
const response = await this.request(`/v1/sandbox/${encodeURIComponent(sandboxId)}/session/${encodeURIComponent(sessionId)}`, { method: "DELETE" });
|
|
393
|
+
async deleteSession(sandboxId, sessionId, signal) {
|
|
394
|
+
const response = await this.request(`/v1/sandbox/${encodeURIComponent(sandboxId)}/session/${encodeURIComponent(sessionId)}`, { method: "DELETE", signal });
|
|
363
395
|
if (!response.ok) {
|
|
364
396
|
throw await this.createHttpError(response);
|
|
365
397
|
}
|
|
@@ -385,7 +417,19 @@ export class CloudflareSandboxBridgeClient {
|
|
|
385
417
|
return new Error(`Cloudflare Sandbox bridge '${this.bridgeId}' request failed (${response.status})${detail ? `: ${detail}` : ""}`);
|
|
386
418
|
}
|
|
387
419
|
}
|
|
388
|
-
|
|
420
|
+
function terminatedExecutionResult(note, reason) {
|
|
421
|
+
return {
|
|
422
|
+
output: `${note}\n`,
|
|
423
|
+
stdout: "",
|
|
424
|
+
stderr: `${note}\n`,
|
|
425
|
+
exitCode: null,
|
|
426
|
+
truncated: false,
|
|
427
|
+
timedOut: reason === "timeout",
|
|
428
|
+
aborted: reason === "abort",
|
|
429
|
+
closeSignal: null,
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
async function parseExecSse(body, maxCaptureBytes = DEFAULT_COMMAND_CAPTURE_BYTES) {
|
|
389
433
|
const reader = body.getReader();
|
|
390
434
|
const decoder = new TextDecoder();
|
|
391
435
|
let buffer = "";
|
|
@@ -417,7 +461,7 @@ async function parseExecSse(body, maxCaptureBytes = BASH_MAX_CAPTURE_BYTES) {
|
|
|
417
461
|
}
|
|
418
462
|
const data = dataLines.join("\n");
|
|
419
463
|
if (event === "stdout" || event === "stderr") {
|
|
420
|
-
appendOutput(event, Buffer.from(data, "base64")
|
|
464
|
+
appendOutput(event, Buffer.from(data, "base64"));
|
|
421
465
|
}
|
|
422
466
|
else if (event === "exit") {
|
|
423
467
|
const parsed = JSON.parse(data);
|
|
@@ -453,6 +497,9 @@ async function parseExecSse(body, maxCaptureBytes = BASH_MAX_CAPTURE_BYTES) {
|
|
|
453
497
|
stderr: stderr.toString(),
|
|
454
498
|
exitCode,
|
|
455
499
|
truncated,
|
|
500
|
+
timedOut: false,
|
|
501
|
+
aborted: false,
|
|
502
|
+
closeSignal: null,
|
|
456
503
|
};
|
|
457
504
|
}
|
|
458
505
|
class ExecCaptureBuffer {
|
|
@@ -463,24 +510,20 @@ class ExecCaptureBuffer {
|
|
|
463
510
|
this.maxBytes = maxBytes;
|
|
464
511
|
}
|
|
465
512
|
append(value) {
|
|
513
|
+
this.chunks.push(value);
|
|
514
|
+
this.bytes += value.byteLength;
|
|
466
515
|
let truncated = false;
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
516
|
+
while (this.bytes > this.maxBytes && this.chunks.length > 0) {
|
|
517
|
+
const excessBytes = this.bytes - this.maxBytes;
|
|
518
|
+
const first = this.chunks[0];
|
|
519
|
+
if (first.byteLength <= excessBytes) {
|
|
520
|
+
this.chunks.shift();
|
|
521
|
+
this.bytes -= first.byteLength;
|
|
522
|
+
}
|
|
523
|
+
else {
|
|
524
|
+
this.chunks[0] = first.subarray(excessBytes);
|
|
525
|
+
this.bytes -= excessBytes;
|
|
472
526
|
}
|
|
473
|
-
}
|
|
474
|
-
let chunk = Buffer.from(nextValue, "utf-8");
|
|
475
|
-
if (this.maxBytes !== null && chunk.byteLength > this.maxBytes) {
|
|
476
|
-
chunk = chunk.subarray(chunk.byteLength - this.maxBytes);
|
|
477
|
-
truncated = true;
|
|
478
|
-
}
|
|
479
|
-
this.chunks.push(chunk);
|
|
480
|
-
this.bytes += chunk.byteLength;
|
|
481
|
-
while (this.maxBytes !== null && this.bytes > this.maxBytes && this.chunks.length > 0) {
|
|
482
|
-
const removed = this.chunks.shift();
|
|
483
|
-
this.bytes -= removed.byteLength;
|
|
484
527
|
truncated = true;
|
|
485
528
|
}
|
|
486
529
|
return truncated;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare_sandbox_execution_environment.js","sourceRoot":"","sources":["../../src/execution/cloudflare_sandbox_execution_environment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloudflare_sandbox_execution_environment.js","sourceRoot":"","sources":["../../src/execution/cloudflare_sandbox_execution_environment.ts"],"names":[],"mappings":"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"}
|