@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.
Files changed (128) hide show
  1. package/README.md +21 -19
  2. package/dist/core/config/content_loader.js +3 -1
  3. package/dist/core/config/content_loader.js.map +1 -1
  4. package/dist/core/config/index.js +1 -1
  5. package/dist/core/config/index.js.map +1 -1
  6. package/dist/core/config/runtime.js +5 -1
  7. package/dist/core/config/runtime.js.map +1 -1
  8. package/dist/core/config/runtime_config_snapshot.js +5 -1
  9. package/dist/core/config/runtime_config_snapshot.js.map +1 -1
  10. package/dist/core/config/schema.js +3 -3
  11. package/dist/core/config/schema.js.map +1 -1
  12. package/dist/core/diff_review/snapshot.js +3 -3
  13. package/dist/core/diff_review/snapshot.js.map +1 -1
  14. package/dist/core/index.js +0 -4
  15. package/dist/core/index.js.map +1 -1
  16. package/dist/core/personas.js +2 -1
  17. package/dist/core/personas.js.map +1 -1
  18. package/dist/core/runtime/runtime_bootstrap.js +5 -1
  19. package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
  20. package/dist/core/session/direct_bash.js +1 -0
  21. package/dist/core/session/direct_bash.js.map +1 -1
  22. package/dist/core/session/runner.js +2 -0
  23. package/dist/core/session/runner.js.map +1 -1
  24. package/dist/core/session/session_engine.js +48 -12
  25. package/dist/core/session/session_engine.js.map +1 -1
  26. package/dist/core/static/code_mode/web/documentation.md +236 -0
  27. package/dist/core/static/code_mode/web/sandbox_runner.mjs +112 -0
  28. package/dist/core/subagents/control_plane.js +0 -37
  29. package/dist/core/subagents/control_plane.js.map +1 -1
  30. package/dist/core/subagents/registry.js +2 -3
  31. package/dist/core/subagents/registry.js.map +1 -1
  32. package/dist/core/subagents/subagent_engine.js +6 -19
  33. package/dist/core/subagents/subagent_engine.js.map +1 -1
  34. package/dist/core/subagents/types.js +2 -3
  35. package/dist/core/subagents/types.js.map +1 -1
  36. package/dist/core/telegram/adapter.js +103 -21
  37. package/dist/core/telegram/adapter.js.map +1 -1
  38. package/dist/core/telegram/config.js +0 -8
  39. package/dist/core/telegram/config.js.map +1 -1
  40. package/dist/core/telegram/runtime.js +20 -2
  41. package/dist/core/telegram/runtime.js.map +1 -1
  42. package/dist/core/telegram/session_manager.js +116 -42
  43. package/dist/core/telegram/session_manager.js.map +1 -1
  44. package/dist/core/telegram/workspace.js +18 -76
  45. package/dist/core/telegram/workspace.js.map +1 -1
  46. package/dist/core/tools/bash.js +16 -8
  47. package/dist/core/tools/bash.js.map +1 -1
  48. package/dist/core/tools/catalog.js +7 -14
  49. package/dist/core/tools/catalog.js.map +1 -1
  50. package/dist/core/tools/code_mode.js +105 -0
  51. package/dist/core/tools/code_mode.js.map +1 -0
  52. package/dist/core/tools/execution_backend.js +81 -153
  53. package/dist/core/tools/execution_backend.js.map +1 -1
  54. package/dist/core/tools/registry.js +0 -3
  55. package/dist/core/tools/registry.js.map +1 -1
  56. package/dist/core/tools/spawn_agent.js +1 -1
  57. package/dist/core/tools/spawn_agent.js.map +1 -1
  58. package/dist/core/tools/terminate_agent.js +5 -11
  59. package/dist/core/tools/terminate_agent.js.map +1 -1
  60. package/dist/core/tools/tool_names.js +2 -12
  61. package/dist/core/tools/tool_names.js.map +1 -1
  62. package/dist/core/tools/wait_for_agents.js +3 -11
  63. package/dist/core/tools/wait_for_agents.js.map +1 -1
  64. package/dist/core/tools/web.js +537 -0
  65. package/dist/core/tools/web.js.map +1 -0
  66. package/dist/core/tools/web_discovery.js +201 -0
  67. package/dist/core/tools/web_discovery.js.map +1 -0
  68. package/dist/core/utils/compact.js +53 -11
  69. package/dist/core/utils/compact.js.map +1 -1
  70. package/dist/core/utils/project_files.js +14 -1
  71. package/dist/core/utils/project_files.js.map +1 -1
  72. package/dist/core/utils/subagent_utils.js +8 -8
  73. package/dist/core/utils/subagent_utils.js.map +1 -1
  74. package/dist/core/utils/user_metadata.js +14 -0
  75. package/dist/core/utils/user_metadata.js.map +1 -1
  76. package/dist/core/version.js +1 -1
  77. package/dist/execution/cloudflare_sandbox_execution_environment.js +155 -112
  78. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  79. package/dist/execution/fly_sprite_execution_environment.js +109 -91
  80. package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
  81. package/dist/execution/sandbox_tool_helpers.js +0 -25
  82. package/dist/execution/sandbox_tool_helpers.js.map +1 -1
  83. package/dist/execution/tool_backend_execution_environment.js +4 -1
  84. package/dist/execution/tool_backend_execution_environment.js.map +1 -1
  85. package/dist/host/hosted_ephemeral_agent_session.js +1 -1
  86. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  87. package/dist/host/local_session_host.js +40 -7
  88. package/dist/host/local_session_host.js.map +1 -1
  89. package/dist/host/session_host.js +5 -0
  90. package/dist/host/session_host.js.map +1 -1
  91. package/dist/host/session_protocol_handler.js +55 -6
  92. package/dist/host/session_protocol_handler.js.map +1 -1
  93. package/dist/protocol/index.d.ts +2 -2
  94. package/dist/protocol/index.js +1 -1
  95. package/dist/protocol/index.js.map +1 -1
  96. package/dist/protocol/session_protocol.d.ts +22 -3
  97. package/dist/protocol/session_protocol.js +115 -30
  98. package/dist/protocol/session_protocol.js.map +1 -1
  99. package/dist/sdk/session.js +51 -2
  100. package/dist/sdk/session.js.map +1 -1
  101. package/dist/sdk/types.d.ts +5 -0
  102. package/dist/tui/session_chat_controller.js +5 -50
  103. package/dist/tui/session_chat_controller.js.map +1 -1
  104. package/dist/tui/session_tool_execution_backend.js +76 -98
  105. package/dist/tui/session_tool_execution_backend.js.map +1 -1
  106. package/dist/tui/ui/agent_activity_format.js +6 -15
  107. package/dist/tui/ui/agent_activity_format.js.map +1 -1
  108. package/dist/tui/ui/subagent_panel.js +0 -13
  109. package/dist/tui/ui/subagent_panel.js.map +1 -1
  110. package/dist/tui/ui/tool_ui_registry.js +83 -19
  111. package/dist/tui/ui/tool_ui_registry.js.map +1 -1
  112. package/package.json +3 -2
  113. package/dist/core/tools/emit_output.js +0 -58
  114. package/dist/core/tools/emit_output.js.map +0 -1
  115. package/dist/core/tools/grep.js +0 -250
  116. package/dist/core/tools/grep.js.map +0 -1
  117. package/dist/core/tools/list.js +0 -131
  118. package/dist/core/tools/list.js.map +0 -1
  119. package/dist/core/tools/read.js +0 -171
  120. package/dist/core/tools/read.js.map +0 -1
  121. package/dist/core/tools/web_fetch.js +0 -259
  122. package/dist/core/tools/web_fetch.js.map +0 -1
  123. package/dist/core/tools/web_search.js +0 -242
  124. package/dist/core/tools/web_search.js.map +0 -1
  125. package/dist/core/utils/parallel_api.js +0 -26
  126. package/dist/core/utils/parallel_api.js.map +0 -1
  127. package/dist/tui/ui/restricted_execution.js +0 -203
  128. 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 { assertFileWithinMaxBytes, buildSandboxGrepDryRunResult, buildSandboxGrepErrorResult, buildWriteFileResult, NODE_LIST_DIR_SCRIPT, resolveSandboxGrepPaths, shellQuote, } from "./sandbox_tool_helpers.js";
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 ensureCommandSession = async (cwd) => {
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.deleteSession(sandboxId, session.id).catch(() => { });
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.deleteSession(sandboxId, session.id).catch(() => { });
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 exec = async (command, runOptions = {}) => {
153
+ const runCommand = async (argv, runOptions = {}) => {
154
+ assertActive();
139
155
  const cwd = runOptions.cwd ?? options.cwd;
140
- const signal = runOptions.signal
141
- ? AbortSignal.any([runOptions.signal, disposeAbortController.signal])
142
- : disposeAbortController.signal;
143
- return await runQueued(cwd, signal, async () => {
144
- const sessionId = await ensureCommandSession(cwd);
145
- try {
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: ["sh", "-lc", command],
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
- catch (err) {
156
- if (isAbortError(err)) {
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: exec,
174
- async runNodeScript(script, args = [], runOptions = {}) {
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(`mkdir -p ${shellQuote(dir)}`);
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(`mkdir -p ${shellQuote(dir)}`);
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 exec(`node -e ${shellQuote(NODE_LIST_DIR_SCRIPT)} ${shellQuote(path)}`);
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.output);
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
- return Buffer.from(await response.arrayBuffer());
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
- async function parseExecSse(body, maxCaptureBytes = BASH_MAX_CAPTURE_BYTES) {
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").toString("utf-8"));
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
- let nextValue = value;
468
- if (this.maxBytes !== null && Buffer.byteLength(nextValue, "utf-8") > this.maxBytes) {
469
- truncated = true;
470
- while (Buffer.byteLength(nextValue, "utf-8") > this.maxBytes) {
471
- nextValue = nextValue.slice(Math.max(1, Math.floor(nextValue.length / 10)));
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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"}