@markusylisiurunen/tau 0.3.27 → 0.3.29
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 +10 -8
- 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.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/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 +1 -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/subagents/control_plane.js +0 -37
- package/dist/core/subagents/control_plane.js.map +1 -1
- package/dist/core/subagents/subagent_engine.js +5 -8
- package/dist/core/subagents/subagent_engine.js.map +1 -1
- package/dist/core/telegram/adapter.js +51 -1
- 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/session_manager.js +128 -49
- 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 +1 -5
- package/dist/core/tools/catalog.js.map +1 -1
- 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 +0 -8
- 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/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/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/local_session_host.js +68 -53
- 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 +108 -103
- 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 +21 -2
- package/dist/protocol/session_protocol.js +114 -28
- 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/subagent_panel.js +0 -13
- package/dist/tui/ui/subagent_panel.js.map +1 -1
- package/package.json +1 -1
- 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/tui/ui/restricted_execution.js +0 -203
- package/dist/tui/ui/restricted_execution.js.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { StringDecoder } from "node:string_decoder";
|
|
1
2
|
import { SpritesClient } from "@fly/sprites";
|
|
2
|
-
import {
|
|
3
|
+
import { applyBashEnvironment, DEFAULT_COMMAND_CAPTURE_BYTES, } from "../core/tools/execution_backend.js";
|
|
4
|
+
import { assertFileWithinMaxBytes } from "./sandbox_tool_helpers.js";
|
|
3
5
|
import { ToolBackendExecutionEnvironment } from "./tool_backend_execution_environment.js";
|
|
4
|
-
const BASH_MAX_CAPTURE_BYTES = 1024 * 1024;
|
|
5
6
|
const DEFAULT_BASE_URL = "https://api.sprites.dev";
|
|
6
7
|
const DEFAULT_HOME = "/home/sprite";
|
|
7
8
|
const HELPER_COMMAND_TIMEOUT_MS = 30_000;
|
|
@@ -71,23 +72,22 @@ export class FlySpriteExecutionEnvironmentResolver {
|
|
|
71
72
|
}
|
|
72
73
|
export function createFlySpriteToolExecutionBackend(options) {
|
|
73
74
|
const worker = new FlySpriteWorker(options.sprite, options.cwd);
|
|
75
|
+
const runBash = async (command, runOptions = {}) => await worker.request("exec", {
|
|
76
|
+
command,
|
|
77
|
+
args: runOptions.args,
|
|
78
|
+
stdinBase64: runOptions.stdin?.toString("base64"),
|
|
79
|
+
cwd: runOptions.cwd ?? options.cwd,
|
|
80
|
+
timeoutMs: runOptions.timeoutMs,
|
|
81
|
+
env: applyBashEnvironment(runOptions.env),
|
|
82
|
+
maxCaptureBytes: runOptions.maxCaptureBytes,
|
|
83
|
+
}, { signal: runOptions.signal });
|
|
84
|
+
const runNodeScript = (script, args = [], runOptions = {}) => runBash('exec "$0" "$@"', {
|
|
85
|
+
...runOptions,
|
|
86
|
+
args: ["node", "-e", script, ...args],
|
|
87
|
+
});
|
|
74
88
|
return {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
command,
|
|
78
|
-
cwd: runOptions.cwd ?? options.cwd,
|
|
79
|
-
timeoutMs: runOptions.timeoutMs,
|
|
80
|
-
}, { signal: runOptions.signal });
|
|
81
|
-
},
|
|
82
|
-
async runNodeScript(script, args = [], runOptions = {}) {
|
|
83
|
-
return await worker.request("nodeScript", {
|
|
84
|
-
script,
|
|
85
|
-
args,
|
|
86
|
-
cwd: runOptions.cwd ?? options.cwd,
|
|
87
|
-
timeoutMs: runOptions.timeoutMs,
|
|
88
|
-
maxCaptureBytes: runOptions.maxCaptureBytes,
|
|
89
|
-
}, { signal: runOptions.signal });
|
|
90
|
-
},
|
|
89
|
+
runBash,
|
|
90
|
+
runNodeScript,
|
|
91
91
|
async readFile(path) {
|
|
92
92
|
const result = await worker.request("readFile", {
|
|
93
93
|
path,
|
|
@@ -99,6 +99,7 @@ export function createFlySpriteToolExecutionBackend(options) {
|
|
|
99
99
|
const result = await worker.request("readFileBinary", {
|
|
100
100
|
path,
|
|
101
101
|
timeoutMs: HELPER_COMMAND_TIMEOUT_MS,
|
|
102
|
+
maxBytes: readOptions.maxBytes,
|
|
102
103
|
});
|
|
103
104
|
const content = Buffer.from(result.contentBase64, "base64");
|
|
104
105
|
const bytes = result.bytes;
|
|
@@ -127,27 +128,6 @@ export function createFlySpriteToolExecutionBackend(options) {
|
|
|
127
128
|
});
|
|
128
129
|
return { path, entries: result.entries };
|
|
129
130
|
},
|
|
130
|
-
async grep(grepOptions) {
|
|
131
|
-
const resolvedPaths = resolveSandboxGrepPaths(grepOptions.paths);
|
|
132
|
-
if (grepOptions.dryRun) {
|
|
133
|
-
return buildSandboxGrepDryRunResult(resolvedPaths);
|
|
134
|
-
}
|
|
135
|
-
const result = await worker
|
|
136
|
-
.request("grep", {
|
|
137
|
-
cwd: options.cwd,
|
|
138
|
-
baseArgs: grepOptions.baseArgs,
|
|
139
|
-
pattern: grepOptions.pattern,
|
|
140
|
-
paths: resolvedPaths,
|
|
141
|
-
timeoutMs: grepOptions.timeoutMs,
|
|
142
|
-
}, { signal: grepOptions.signal })
|
|
143
|
-
.catch((err) => buildSandboxGrepErrorResult(err, resolvedPaths));
|
|
144
|
-
return {
|
|
145
|
-
output: result.output,
|
|
146
|
-
exitCode: result.exitCode,
|
|
147
|
-
captureTruncated: "truncated" in result ? result.truncated : result.captureTruncated,
|
|
148
|
-
resolvedPaths,
|
|
149
|
-
};
|
|
150
|
-
},
|
|
151
131
|
async dispose() {
|
|
152
132
|
await worker.dispose();
|
|
153
133
|
},
|
|
@@ -159,15 +139,17 @@ class FlySpriteWorker {
|
|
|
159
139
|
command;
|
|
160
140
|
readyPromise;
|
|
161
141
|
stdoutBuffer = new LineBuffer();
|
|
142
|
+
stdoutDecoder = new StringDecoder("utf8");
|
|
162
143
|
nextRequestId = 1;
|
|
163
144
|
pendingRequests = new Map();
|
|
145
|
+
disposePromise;
|
|
164
146
|
closed = false;
|
|
165
147
|
constructor(sprite, cwd) {
|
|
166
148
|
this.sprite = sprite;
|
|
167
149
|
this.cwd = cwd;
|
|
168
150
|
}
|
|
169
151
|
async request(method, params, options = {}) {
|
|
170
|
-
if (this.closed) {
|
|
152
|
+
if (this.closed && method !== "shutdown") {
|
|
171
153
|
throw new Error("Fly Sprite worker is closed");
|
|
172
154
|
}
|
|
173
155
|
await this.ensureStarted();
|
|
@@ -208,15 +190,21 @@ class FlySpriteWorker {
|
|
|
208
190
|
});
|
|
209
191
|
}
|
|
210
192
|
async dispose() {
|
|
211
|
-
if (this.
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
if (this.command) {
|
|
215
|
-
await this.request("shutdown", {}).catch(() => undefined);
|
|
216
|
-
this.command.kill();
|
|
217
|
-
this.command = undefined;
|
|
193
|
+
if (!this.disposePromise) {
|
|
194
|
+
this.disposePromise = this.disposeNow();
|
|
218
195
|
}
|
|
196
|
+
return await this.disposePromise;
|
|
197
|
+
}
|
|
198
|
+
async disposeNow() {
|
|
219
199
|
this.closed = true;
|
|
200
|
+
const command = this.command;
|
|
201
|
+
if (command) {
|
|
202
|
+
await this.request("shutdown", { timeoutMs: HELPER_COMMAND_TIMEOUT_MS }).catch(() => undefined);
|
|
203
|
+
command.kill();
|
|
204
|
+
if (this.command === command) {
|
|
205
|
+
this.command = undefined;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
220
208
|
this.rejectAllPending(new Error("Fly Sprite worker was disposed"));
|
|
221
209
|
}
|
|
222
210
|
async ensureStarted() {
|
|
@@ -233,6 +221,7 @@ class FlySpriteWorker {
|
|
|
233
221
|
});
|
|
234
222
|
this.command = command;
|
|
235
223
|
this.stdoutBuffer.clear();
|
|
224
|
+
this.stdoutDecoder = new StringDecoder("utf8");
|
|
236
225
|
return await new Promise((resolve, reject) => {
|
|
237
226
|
let settled = false;
|
|
238
227
|
const timer = setTimeout(() => {
|
|
@@ -278,7 +267,7 @@ class FlySpriteWorker {
|
|
|
278
267
|
});
|
|
279
268
|
}
|
|
280
269
|
handleStdoutChunk(chunk, onReady) {
|
|
281
|
-
for (const line of this.stdoutBuffer.push(
|
|
270
|
+
for (const line of this.stdoutBuffer.push(this.stdoutDecoder.write(chunk))) {
|
|
282
271
|
this.handleStdoutLine(line, onReady);
|
|
283
272
|
}
|
|
284
273
|
}
|
|
@@ -384,7 +373,7 @@ const path = require("node:path");
|
|
|
384
373
|
const readline = require("node:readline");
|
|
385
374
|
const { spawn } = require("node:child_process");
|
|
386
375
|
|
|
387
|
-
const
|
|
376
|
+
const DEFAULT_COMMAND_CAPTURE_BYTES = ${DEFAULT_COMMAND_CAPTURE_BYTES};
|
|
388
377
|
const COMMAND_STOP_GRACE_MS = ${COMMAND_STOP_GRACE_MS};
|
|
389
378
|
const running = new Map();
|
|
390
379
|
const rl = readline.createInterface({ input: process.stdin });
|
|
@@ -405,6 +394,11 @@ async function handleLine(line) {
|
|
|
405
394
|
|
|
406
395
|
try {
|
|
407
396
|
if (request.method === "shutdown") {
|
|
397
|
+
const active = [...running.values()];
|
|
398
|
+
for (const runningRequest of active) {
|
|
399
|
+
runningRequest.cancel("abort");
|
|
400
|
+
}
|
|
401
|
+
await Promise.all(active.map((runningRequest) => runningRequest.stopped));
|
|
408
402
|
respond(request.id, { exitCode: 0 });
|
|
409
403
|
process.exit(0);
|
|
410
404
|
return;
|
|
@@ -420,30 +414,17 @@ async function handleLine(line) {
|
|
|
420
414
|
}
|
|
421
415
|
|
|
422
416
|
if (request.method === "exec") {
|
|
423
|
-
const result = await runCommand(request.id, "sh", ["-lc", request.command], {
|
|
424
|
-
cwd: request.cwd,
|
|
425
|
-
timeoutMs: request.timeoutMs,
|
|
426
|
-
});
|
|
427
|
-
respond(request.id, result);
|
|
428
|
-
return;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
if (request.method === "nodeScript") {
|
|
432
|
-
const result = await runCommand(request.id, "node", ["-e", request.script, ...request.args], {
|
|
433
|
-
cwd: request.cwd,
|
|
434
|
-
timeoutMs: request.timeoutMs,
|
|
435
|
-
maxCaptureBytes: request.maxCaptureBytes,
|
|
436
|
-
});
|
|
437
|
-
respond(request.id, result);
|
|
438
|
-
return;
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
if (request.method === "grep") {
|
|
442
417
|
const result = await runCommand(
|
|
443
418
|
request.id,
|
|
444
|
-
"
|
|
445
|
-
[
|
|
446
|
-
{
|
|
419
|
+
"bash",
|
|
420
|
+
["-lc", request.command, ...(request.args ?? [])],
|
|
421
|
+
{
|
|
422
|
+
cwd: request.cwd,
|
|
423
|
+
timeoutMs: request.timeoutMs,
|
|
424
|
+
env: request.env,
|
|
425
|
+
maxCaptureBytes: request.maxCaptureBytes,
|
|
426
|
+
stdinBase64: request.stdinBase64,
|
|
427
|
+
},
|
|
447
428
|
);
|
|
448
429
|
respond(request.id, result);
|
|
449
430
|
return;
|
|
@@ -456,7 +437,18 @@ async function handleLine(line) {
|
|
|
456
437
|
}
|
|
457
438
|
|
|
458
439
|
if (request.method === "readFileBinary") {
|
|
440
|
+
const stats = await fs.promises.stat(request.path);
|
|
441
|
+
if (request.maxBytes !== undefined && stats.size > request.maxBytes) {
|
|
442
|
+
throw new Error(
|
|
443
|
+
"file exceeds maximum size of " + request.maxBytes + " bytes (got " + stats.size + " bytes).",
|
|
444
|
+
);
|
|
445
|
+
}
|
|
459
446
|
const content = await fs.promises.readFile(request.path);
|
|
447
|
+
if (request.maxBytes !== undefined && content.byteLength > request.maxBytes) {
|
|
448
|
+
throw new Error(
|
|
449
|
+
"file exceeds maximum size of " + request.maxBytes + " bytes (got " + content.byteLength + " bytes).",
|
|
450
|
+
);
|
|
451
|
+
}
|
|
460
452
|
respond(request.id, {
|
|
461
453
|
contentBase64: content.toString("base64"),
|
|
462
454
|
bytes: content.byteLength,
|
|
@@ -506,24 +498,34 @@ function runCommand(id, command, args, options) {
|
|
|
506
498
|
let settled = false;
|
|
507
499
|
let timer;
|
|
508
500
|
let stopTimer;
|
|
509
|
-
|
|
510
|
-
|
|
501
|
+
let markStopped = () => {};
|
|
502
|
+
const stopped = new Promise((resolveStopped) => {
|
|
503
|
+
markStopped = resolveStopped;
|
|
504
|
+
});
|
|
505
|
+
const maxCaptureBytes = options.maxCaptureBytes ?? DEFAULT_COMMAND_CAPTURE_BYTES;
|
|
511
506
|
|
|
512
507
|
const child = spawn(command, args, {
|
|
513
508
|
cwd: options.cwd,
|
|
509
|
+
env: { ...process.env, ...options.env },
|
|
514
510
|
detached: true,
|
|
515
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
511
|
+
stdio: [options.stdinBase64 === undefined ? "ignore" : "pipe", "pipe", "pipe"],
|
|
516
512
|
});
|
|
513
|
+
if (options.stdinBase64 !== undefined) {
|
|
514
|
+
child.stdin.end(Buffer.from(options.stdinBase64, "base64"));
|
|
515
|
+
}
|
|
517
516
|
|
|
518
517
|
const trimChunks = (targetChunks, targetBytes) => {
|
|
519
518
|
let nextBytes = targetBytes;
|
|
520
|
-
while (
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
519
|
+
while (nextBytes > maxCaptureBytes && targetChunks.length > 0) {
|
|
520
|
+
const excessBytes = nextBytes - maxCaptureBytes;
|
|
521
|
+
const first = targetChunks[0];
|
|
522
|
+
if (first.byteLength <= excessBytes) {
|
|
523
|
+
targetChunks.shift();
|
|
524
|
+
nextBytes -= first.byteLength;
|
|
525
|
+
} else {
|
|
526
|
+
targetChunks[0] = first.subarray(excessBytes);
|
|
527
|
+
nextBytes -= excessBytes;
|
|
528
|
+
}
|
|
527
529
|
truncated = true;
|
|
528
530
|
}
|
|
529
531
|
return nextBytes;
|
|
@@ -552,10 +554,11 @@ function runCommand(id, command, args, options) {
|
|
|
552
554
|
if (stopTimer) clearTimeout(stopTimer);
|
|
553
555
|
};
|
|
554
556
|
|
|
555
|
-
const finish = (exitCode) => {
|
|
557
|
+
const finish = (exitCode, closeSignal = null) => {
|
|
556
558
|
if (settled) return;
|
|
557
559
|
settled = true;
|
|
558
560
|
cleanup();
|
|
561
|
+
markStopped();
|
|
559
562
|
let output = Buffer.concat(chunks).toString("utf-8");
|
|
560
563
|
let stdout = Buffer.concat(stdoutChunks).toString("utf-8");
|
|
561
564
|
let stderr = Buffer.concat(stderrChunks).toString("utf-8");
|
|
@@ -568,21 +571,36 @@ function runCommand(id, command, args, options) {
|
|
|
568
571
|
output += note;
|
|
569
572
|
stderr += note;
|
|
570
573
|
}
|
|
571
|
-
resolve({
|
|
574
|
+
resolve({
|
|
575
|
+
output,
|
|
576
|
+
stdout,
|
|
577
|
+
stderr,
|
|
578
|
+
exitCode,
|
|
579
|
+
truncated,
|
|
580
|
+
timedOut,
|
|
581
|
+
aborted,
|
|
582
|
+
closeSignal,
|
|
583
|
+
});
|
|
572
584
|
};
|
|
573
585
|
|
|
574
|
-
const
|
|
575
|
-
if (reason === "timeout") timedOut = true;
|
|
576
|
-
if (reason === "abort") aborted = true;
|
|
586
|
+
const killProcessGroup = (signal) => {
|
|
577
587
|
try {
|
|
578
|
-
process.kill(-child.pid);
|
|
588
|
+
process.kill(-child.pid, signal);
|
|
579
589
|
} catch {
|
|
580
|
-
child.kill();
|
|
590
|
+
child.kill(signal);
|
|
581
591
|
}
|
|
582
|
-
stopTimer = setTimeout(() => finish(null), COMMAND_STOP_GRACE_MS);
|
|
583
592
|
};
|
|
584
593
|
|
|
585
|
-
|
|
594
|
+
const cancel = (reason) => {
|
|
595
|
+
if (settled) return;
|
|
596
|
+
if (reason === "timeout") timedOut = true;
|
|
597
|
+
if (reason === "abort") aborted = true;
|
|
598
|
+
killProcessGroup("SIGTERM");
|
|
599
|
+
if (stopTimer) clearTimeout(stopTimer);
|
|
600
|
+
stopTimer = setTimeout(() => killProcessGroup("SIGKILL"), COMMAND_STOP_GRACE_MS);
|
|
601
|
+
};
|
|
602
|
+
|
|
603
|
+
running.set(id, { cancel, stopped });
|
|
586
604
|
|
|
587
605
|
if (options.timeoutMs && Number.isFinite(options.timeoutMs) && options.timeoutMs > 0) {
|
|
588
606
|
timer = setTimeout(() => cancel("timeout"), options.timeoutMs);
|
|
@@ -594,7 +612,7 @@ function runCommand(id, command, args, options) {
|
|
|
594
612
|
append(Buffer.from(err.message), "stderr");
|
|
595
613
|
finish(1);
|
|
596
614
|
});
|
|
597
|
-
child.on("close", finish);
|
|
615
|
+
child.on("close", (exitCode, closeSignal) => finish(exitCode, closeSignal));
|
|
598
616
|
});
|
|
599
617
|
}
|
|
600
618
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fly_sprite_execution_environment.js","sourceRoot":"","sources":["../../src/execution/fly_sprite_execution_environment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fly_sprite_execution_environment.js","sourceRoot":"","sources":["../../src/execution/fly_sprite_execution_environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAe,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,oBAAoB,EAEpB,6BAA6B,GAG9B,MAAM,oCAAoC,CAAC;AAQ5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACnD,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AACzC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAuBpC,MAAM,OAAO,6BAA8B,SAAQ,+BAAqF;IAC7H,IAAI,GAAG,YAAqB,CAAC;IAEtC,YAAY,OAMX;QACC,KAAK,CAAC;YACJ,QAAQ,EAAE;gBACR,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB;YACD,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,qCAAqC;IAC/B,IAAI,CAAsC;IAC1C,GAAG,CAAqC;IACxC,YAAY,CAAqE;IAElG,YAAY,OAAqD;QAC/D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,YAAY;YACf,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA+C;QAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,QAAqD;QAC9D,OAAO,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAqD;QACjE,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEO,iBAAiB,CACvB,KAEwD;QAExD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,KAAK,sBAAsB,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,mCAAmC,CAAC;YAClD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACvC,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAC;QAEH,OAAO,IAAI,6BAA6B,CAAC;YACvC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,YAAY,CAAC;YAC/D,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,mCAAmC,CAAC,OAGnD;IACC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,OAAO,GAAoC,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE,EAAE,CAClF,MAAM,MAAM,CAAC,OAAO,CAClB,MAAM,EACN;QACE,OAAO;QACP,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC;QACjD,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;QAClC,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,GAAG,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,CAAC;QACzC,eAAe,EAAE,UAAU,CAAC,eAAe;KAC5C,EACD,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAC9B,CAAC;IACJ,MAAM,aAAa,GAA0C,CAC3D,MAAM,EACN,IAAI,GAAG,EAAE,EACT,UAAU,GAAG,EAAE,EACf,EAAE,CACF,OAAO,CAAC,gBAAgB,EAAE;QACxB,GAAG,UAAU;QACb,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;KACtC,CAAC,CAAC;IAEL,OAAO;QACL,OAAO;QACP,aAAa;QAEb,KAAK,CAAC,QAAQ,CAAC,IAAI;YACjB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC9C,IAAI;gBACJ,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,EAAE;YACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE;gBACpD,IAAI;gBACJ,SAAS,EAAE,yBAAyB;gBACpC,QAAQ,EAAE,WAAW,CAAC,QAAQ;aAC/B,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,wBAAwB,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO;YAC3B,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;gBACvC,IAAI;gBACJ,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC/D,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO;YACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE;gBAC/C,IAAI;gBACJ,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACzC,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACpD,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC7C,IAAI;gBACJ,SAAS,EAAE,yBAAyB;aACrC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,OAAO;YACX,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAqFD,MAAM,eAAe;IAWA;IACA;IAXX,OAAO,CAAwB;IAC/B,YAAY,CAAiB;IACpB,YAAY,GAAG,IAAI,UAAU,EAAE,CAAC;IACzC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,aAAa,GAAG,CAAC,CAAC;IAClB,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC7D,cAAc,CAAiB;IAC/B,MAAM,GAAG,KAAK,CAAC;IAEvB,YACmB,MAAkB,EAClB,GAAW;QADX,WAAM,GAAN,MAAM,CAAY;QAClB,QAAG,GAAH,GAAG,CAAQ;IAC3B,CAAC;IAEJ,KAAK,CAAC,OAAO,CACX,MAAS,EACT,MAAyC,EACzC,UAAoC,EAAE;QAEtC,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAE1D,OAAO,MAAM,IAAI,OAAO,CAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7E,MAAM,SAAS,GAAG,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;YAC3B,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,MAAM,OAAO,GAA4B;gBACvC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAyC,CAAC;gBACtE,MAAM;gBACN,MAAM;aACP,CAAC;YAEF,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAC3E,OAAO,CAAC,KAAK,GAAG,UAAU,CACxB,GAAG,EAAE;oBACH,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBACpB,IAAI,CAAC,oBAAoB,CACvB,EAAE,EACF,IAAI,KAAK,CAAC,8BAA8B,MAAM,qBAAqB,SAAS,IAAI,CAAC,CAClF,CAAC;gBACJ,CAAC,EACD,SAAS,GAAG,qBAAqB,GAAG,KAAK,CAC1C,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,GAAG,GAAG,EAAE;oBACnB,YAAY,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC,CAAC;gBACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,IAAI,CAAC,OAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;gBAC1C,IAAI,YAAY,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,yBAAyB,EAAE,CAAC,CAAC,KAAK,CAC5E,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;YACF,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,YAAY,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE;YAC/D,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QAE/C,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;YAC/D,CAAC,EAAE,yBAAyB,CAAC,CAAC;YAE9B,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChC,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;gBAC/B,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC1C,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAgB,EAAE,EAAE;gBACtC,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACnF,CAAC;gBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACrF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,KAAa,EAAE,OAAoB;QAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,OAAoB;QACzD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,OAAoD,CAAC;QACzD,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgD,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClD,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,UAAU,CAAC,QAAgB;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,KAAK,CACjB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,CAChF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,EAAU,EAAE,MAAe;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAEO,gBAAgB,CAAC,MAAe;QACtC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,OAAgC;QAC5D,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU;IACG,MAAM,GAAa,EAAE,CAAC;IAEvC,IAAI,CAAC,KAAa;QAChB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBACxB,MAAM;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC7B,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAEO,SAAS;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,aAAa,GAAG;;;;;;wCAMkB,6BAA6B;gCACrC,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyPpD,CAAC"}
|
|
@@ -27,29 +27,4 @@ export function buildWriteFileResult(path, content) {
|
|
|
27
27
|
lines: content.split("\n").length,
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
-
export function resolveSandboxGrepPaths(paths) {
|
|
31
|
-
return paths.map((path) => {
|
|
32
|
-
const cleaned = path.trim();
|
|
33
|
-
if (!cleaned) {
|
|
34
|
-
throw new Error("invalid grep path: empty path.");
|
|
35
|
-
}
|
|
36
|
-
return cleaned;
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
export function buildSandboxGrepDryRunResult(resolvedPaths) {
|
|
40
|
-
return {
|
|
41
|
-
output: "",
|
|
42
|
-
exitCode: 0,
|
|
43
|
-
captureTruncated: false,
|
|
44
|
-
resolvedPaths,
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
export function buildSandboxGrepErrorResult(err, resolvedPaths) {
|
|
48
|
-
return {
|
|
49
|
-
output: err instanceof Error ? err.message : String(err),
|
|
50
|
-
exitCode: 2,
|
|
51
|
-
captureTruncated: false,
|
|
52
|
-
resolvedPaths,
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
30
|
//# sourceMappingURL=sandbox_tool_helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox_tool_helpers.js","sourceRoot":"","sources":["../../src/execution/sandbox_tool_helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,2BAA2B;IAC3B,+BAA+B;IAC/B,iFAAiF;IACjF,mBAAmB;IACnB,mCAAmC;IACnC,oCAAoC;IACpC,MAAM;IACN,uCAAuC;CACxC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,QAA4B;IAClF,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,KAAK,CAAC,IAAI,CACrF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAAe;IAChE,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;KAClC,CAAC;AACJ,CAAC
|
|
1
|
+
{"version":3,"file":"sandbox_tool_helpers.js","sourceRoot":"","sources":["../../src/execution/sandbox_tool_helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,2BAA2B;IAC3B,+BAA+B;IAC/B,iFAAiF;IACjF,mBAAmB;IACnB,mCAAmC;IACnC,oCAAoC;IACpC,MAAM;IACN,uCAAuC;CACxC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAa,EAAE,QAA4B;IAClF,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,CAAC,QAAQ,CAAC,SAAS,WAAW,CAAC,KAAK,CAAC,IAAI,CACrF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,OAAe;IAChE,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;KAClC,CAAC;AACJ,CAAC"}
|
|
@@ -14,7 +14,10 @@ export class ToolBackendExecutionEnvironment {
|
|
|
14
14
|
this.cwd = options.snapshot.cwd;
|
|
15
15
|
this.home = options.snapshot.home;
|
|
16
16
|
this.backend = options.backend;
|
|
17
|
-
this.scopedBackend = scopeToolExecutionBackend(options.backend, this.cwd,
|
|
17
|
+
this.scopedBackend = scopeToolExecutionBackend(options.backend, this.cwd, {
|
|
18
|
+
...options.env,
|
|
19
|
+
HOME: this.home,
|
|
20
|
+
});
|
|
18
21
|
this.toolRegistry = ToolCatalog.createRegistry(this.scopedBackend);
|
|
19
22
|
}
|
|
20
23
|
async resolveRuntimeConfig(cwd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_backend_execution_environment.js","sourceRoot":"","sources":["../../src/execution/tool_backend_execution_environment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EAEL,6BAA6B,GAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,yBAAyB,GAE1B,MAAM,oCAAoC,CAAC;AAc5C,MAAM,OAAO,+BAA+B;IAGjC,GAAG,CAAS;IACZ,IAAI,CAAS;IACL,mBAAmB,CAAY;IAC/B,OAAO,CAAuB;IAC9B,aAAa,CAAuB;IACpC,YAAY,CAAe;IAE5C,YAAY,OAIX;QACC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tool_backend_execution_environment.js","sourceRoot":"","sources":["../../src/execution/tool_backend_execution_environment.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EAEL,6BAA6B,GAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,yBAAyB,GAE1B,MAAM,oCAAoC,CAAC;AAc5C,MAAM,OAAO,+BAA+B;IAGjC,GAAG,CAAS;IACZ,IAAI,CAAS;IACL,mBAAmB,CAAY;IAC/B,OAAO,CAAuB;IAC9B,aAAa,CAAuB;IACpC,YAAY,CAAe;IAE5C,YAAY,OAIX;QACC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACxE,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,GAAW;QACpC,OAAO,MAAM,gCAAgC,CAAC;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,OAA8C;QAE9C,MAAM,eAAe,GAA2B,MAAM,6BAA6B,CAAC;YAClF,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,eAAe;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -8,6 +8,7 @@ import { applySessionProtocolDelta, createSessionProtocolDeltaMessage, createSes
|
|
|
8
8
|
import { ClientToolBroker } from "./client_tool_broker.js";
|
|
9
9
|
import { createExecutionEnvironmentSubagentRuntimeResolver } from "./execution_runtime.js";
|
|
10
10
|
import { HostedEphemeralAgentSession } from "./hosted_ephemeral_agent_session.js";
|
|
11
|
+
import { SessionExecBusyError, } from "./session_host.js";
|
|
11
12
|
const PATH_AUTOCOMPLETE_CACHE_TTL_MS = 5_000;
|
|
12
13
|
export class LocalSessionHost {
|
|
13
14
|
sessions = new Set();
|
|
@@ -249,9 +250,7 @@ export class LocalSessionHost {
|
|
|
249
250
|
}
|
|
250
251
|
}
|
|
251
252
|
for (const session of this.sessions) {
|
|
252
|
-
session.
|
|
253
|
-
session.interruptMaintenance();
|
|
254
|
-
session.interruptSamples();
|
|
253
|
+
session.interruptActiveWork();
|
|
255
254
|
}
|
|
256
255
|
const settlementResults = await Promise.allSettled([...this.sessions].map((session) => session.waitForActiveWork()));
|
|
257
256
|
for (const result of settlementResults) {
|
|
@@ -329,10 +328,9 @@ class LocalHostedSessionHandle {
|
|
|
329
328
|
runtimeEventQueue = Promise.resolve();
|
|
330
329
|
snapshotQueue = Promise.resolve();
|
|
331
330
|
snapshotGeneration = 0;
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
samplePromises = new Set();
|
|
331
|
+
activeWorkAbortControllers = new Set();
|
|
332
|
+
activeWorkPromises = new Set();
|
|
333
|
+
activeExecAbortControllers = new Map();
|
|
336
334
|
activeTurnPromise;
|
|
337
335
|
disposePromise;
|
|
338
336
|
disposing = false;
|
|
@@ -446,19 +444,9 @@ class LocalHostedSessionHandle {
|
|
|
446
444
|
this.assertActive();
|
|
447
445
|
return this.runtime.interruptTurn();
|
|
448
446
|
}
|
|
449
|
-
|
|
450
|
-
let interrupted =
|
|
451
|
-
for (const abortController of this.
|
|
452
|
-
if (!abortController.signal.aborted) {
|
|
453
|
-
abortController.abort();
|
|
454
|
-
interrupted = true;
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
return interrupted;
|
|
458
|
-
}
|
|
459
|
-
interruptSamples() {
|
|
460
|
-
let interrupted = false;
|
|
461
|
-
for (const abortController of this.sampleAbortControllers) {
|
|
447
|
+
interruptActiveWork() {
|
|
448
|
+
let interrupted = this.runtime.interruptTurn();
|
|
449
|
+
for (const abortController of this.activeWorkAbortControllers) {
|
|
462
450
|
if (!abortController.signal.aborted) {
|
|
463
451
|
abortController.abort();
|
|
464
452
|
interrupted = true;
|
|
@@ -469,8 +457,7 @@ class LocalHostedSessionHandle {
|
|
|
469
457
|
async waitForActiveWork() {
|
|
470
458
|
await Promise.allSettled([
|
|
471
459
|
...(this.activeTurnPromise ? [this.activeTurnPromise] : []),
|
|
472
|
-
...this.
|
|
473
|
-
...this.samplePromises,
|
|
460
|
+
...this.activeWorkPromises,
|
|
474
461
|
]);
|
|
475
462
|
await this.runtimeEventQueue;
|
|
476
463
|
}
|
|
@@ -483,30 +470,38 @@ class LocalHostedSessionHandle {
|
|
|
483
470
|
return this.runtime.cancelTurnBoundaryStop();
|
|
484
471
|
}
|
|
485
472
|
async exec(options) {
|
|
486
|
-
this.
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
473
|
+
return await this.runExec(options.execId, options.signal, async (signal) => {
|
|
474
|
+
const backend = this.executionEnvironment.getToolExecutionBackend();
|
|
475
|
+
const result = await backend.runBash(options.command, {
|
|
476
|
+
...(options.args !== undefined ? { args: options.args } : {}),
|
|
477
|
+
...(options.env !== undefined ? { env: options.env } : {}),
|
|
478
|
+
...(options.stdinBase64 !== undefined
|
|
479
|
+
? { stdin: Buffer.from(options.stdinBase64, "base64") }
|
|
480
|
+
: {}),
|
|
481
|
+
...(options.cwd !== undefined ? { cwd: options.cwd } : {}),
|
|
482
|
+
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
|
|
483
|
+
...(options.maxCaptureBytes !== undefined
|
|
484
|
+
? { maxCaptureBytes: options.maxCaptureBytes }
|
|
485
|
+
: {}),
|
|
486
|
+
signal,
|
|
487
|
+
});
|
|
488
|
+
signal.throwIfAborted();
|
|
489
|
+
return result;
|
|
492
490
|
});
|
|
493
491
|
}
|
|
492
|
+
cancelExec(execId) {
|
|
493
|
+
const controller = this.activeExecAbortControllers.get(execId);
|
|
494
|
+
if (!controller || controller.signal.aborted) {
|
|
495
|
+
return false;
|
|
496
|
+
}
|
|
497
|
+
controller.abort();
|
|
498
|
+
return true;
|
|
499
|
+
}
|
|
494
500
|
async sample(options) {
|
|
495
501
|
this.assertActive();
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
: abortController.signal;
|
|
500
|
-
this.sampleAbortControllers.add(abortController);
|
|
501
|
-
const promise = this.session.sample({ ...options, signal }).then((message) => ({ message }));
|
|
502
|
-
this.samplePromises.add(promise);
|
|
503
|
-
try {
|
|
504
|
-
return await promise;
|
|
505
|
-
}
|
|
506
|
-
finally {
|
|
507
|
-
this.sampleAbortControllers.delete(abortController);
|
|
508
|
-
this.samplePromises.delete(promise);
|
|
509
|
-
}
|
|
502
|
+
return await this.runActiveWork(async (signal) => ({
|
|
503
|
+
message: await this.session.sample({ ...options, signal }),
|
|
504
|
+
}), options.signal);
|
|
510
505
|
}
|
|
511
506
|
async setReasoning(reasoning) {
|
|
512
507
|
this.assertActive();
|
|
@@ -695,16 +690,41 @@ class LocalHostedSessionHandle {
|
|
|
695
690
|
}
|
|
696
691
|
async runMaintenance(operation) {
|
|
697
692
|
this.assertActive();
|
|
693
|
+
return await this.runActiveWork(operation);
|
|
694
|
+
}
|
|
695
|
+
async runExec(execId, externalSignal, operation) {
|
|
696
|
+
this.assertActive();
|
|
697
|
+
if (this.activeExecAbortControllers.has(execId)) {
|
|
698
|
+
throw new SessionExecBusyError(execId);
|
|
699
|
+
}
|
|
700
|
+
const abortController = new AbortController();
|
|
701
|
+
this.activeExecAbortControllers.set(execId, abortController);
|
|
702
|
+
const signal = externalSignal
|
|
703
|
+
? AbortSignal.any([externalSignal, abortController.signal])
|
|
704
|
+
: abortController.signal;
|
|
705
|
+
try {
|
|
706
|
+
return await this.runActiveWork(operation, signal);
|
|
707
|
+
}
|
|
708
|
+
finally {
|
|
709
|
+
if (this.activeExecAbortControllers.get(execId) === abortController) {
|
|
710
|
+
this.activeExecAbortControllers.delete(execId);
|
|
711
|
+
}
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
async runActiveWork(operation, externalSignal) {
|
|
698
715
|
const abortController = new AbortController();
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
716
|
+
const signal = externalSignal
|
|
717
|
+
? AbortSignal.any([externalSignal, abortController.signal])
|
|
718
|
+
: abortController.signal;
|
|
719
|
+
this.activeWorkAbortControllers.add(abortController);
|
|
720
|
+
const promise = operation(signal);
|
|
721
|
+
this.activeWorkPromises.add(promise);
|
|
702
722
|
try {
|
|
703
723
|
return await promise;
|
|
704
724
|
}
|
|
705
725
|
finally {
|
|
706
|
-
this.
|
|
707
|
-
this.
|
|
726
|
+
this.activeWorkAbortControllers.delete(abortController);
|
|
727
|
+
this.activeWorkPromises.delete(promise);
|
|
708
728
|
}
|
|
709
729
|
}
|
|
710
730
|
async rewindToHistoryEntryId(historyEntryId) {
|
|
@@ -787,9 +807,7 @@ class LocalHostedSessionHandle {
|
|
|
787
807
|
return;
|
|
788
808
|
}
|
|
789
809
|
const errors = [];
|
|
790
|
-
this.
|
|
791
|
-
this.interruptMaintenance();
|
|
792
|
-
this.interruptSamples();
|
|
810
|
+
this.interruptActiveWork();
|
|
793
811
|
try {
|
|
794
812
|
await this.waitForActiveWork();
|
|
795
813
|
}
|
|
@@ -1794,9 +1812,6 @@ function agentRunFromSubagentEvent(event, existing) {
|
|
|
1794
1812
|
if (event.type === "subagent_abort_requested" && existing) {
|
|
1795
1813
|
return { ...existing, abortRequested: true };
|
|
1796
1814
|
}
|
|
1797
|
-
if (event.type === "subagent_emit_output" && existing) {
|
|
1798
|
-
return { ...existing, progress: event.text };
|
|
1799
|
-
}
|
|
1800
1815
|
if (!state) {
|
|
1801
1816
|
return undefined;
|
|
1802
1817
|
}
|