@agentuity/core 2.0.13 → 2.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/sandbox/getStatus.d.ts +1 -0
- package/dist/services/sandbox/getStatus.d.ts.map +1 -1
- package/dist/services/sandbox/getStatus.js +3 -2
- package/dist/services/sandbox/getStatus.js.map +1 -1
- package/dist/services/sandbox/run.d.ts.map +1 -1
- package/dist/services/sandbox/run.js +103 -3
- package/dist/services/sandbox/run.js.map +1 -1
- package/package.json +2 -2
- package/src/services/sandbox/getStatus.ts +4 -2
- package/src/services/sandbox/run.ts +156 -3
|
@@ -10,6 +10,7 @@ export declare const SandboxGetStatusParamsSchema: z.ZodObject<{
|
|
|
10
10
|
orgId: z.ZodOptional<z.ZodString>;
|
|
11
11
|
waitForStatus: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
12
12
|
waitMs: z.ZodOptional<z.ZodNumber>;
|
|
13
|
+
signal: z.ZodOptional<z.ZodCustom<AbortSignal, AbortSignal>>;
|
|
13
14
|
}, z.core.$strip>;
|
|
14
15
|
export type SandboxGetStatusParams = z.infer<typeof SandboxGetStatusParamsSchema>;
|
|
15
16
|
export type SandboxStatusResult = z.infer<typeof SandboxStatusDataSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStatus.d.ts","sourceRoot":"","sources":["../../../src/services/sandbox/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,WAAW,CAAC;AAG9D,QAAA,MAAM,uBAAuB;;;;iBAI3B,CAAC;AAIH,eAAO,MAAM,4BAA4B
|
|
1
|
+
{"version":3,"file":"getStatus.d.ts","sourceRoot":"","sources":["../../../src/services/sandbox/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,WAAW,CAAC;AAG9D,QAAA,MAAM,uBAAuB;;;;iBAI3B,CAAC;AAIH,eAAO,MAAM,4BAA4B;;;;;;iBAcvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE1E;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAiC9B"}
|
|
@@ -20,13 +20,14 @@ export const SandboxGetStatusParamsSchema = z.object({
|
|
|
20
20
|
.nonnegative()
|
|
21
21
|
.optional()
|
|
22
22
|
.describe('Maximum time in milliseconds to wait for the desired status'),
|
|
23
|
+
signal: z.custom().optional().describe('abort signal for cancellation'),
|
|
23
24
|
});
|
|
24
25
|
/**
|
|
25
26
|
* Retrieves lightweight sandbox status (status + exitCode only).
|
|
26
27
|
* Optimized for the sandbox run flow — backed by Redis for ~1ms response time.
|
|
27
28
|
*/
|
|
28
29
|
export async function sandboxGetStatus(client, params) {
|
|
29
|
-
const { sandboxId, orgId, waitForStatus, waitMs } = params;
|
|
30
|
+
const { sandboxId, orgId, waitForStatus, waitMs, signal } = params;
|
|
30
31
|
const queryParams = new URLSearchParams();
|
|
31
32
|
if (orgId) {
|
|
32
33
|
queryParams.set('orgId', orgId);
|
|
@@ -39,7 +40,7 @@ export async function sandboxGetStatus(client, params) {
|
|
|
39
40
|
}
|
|
40
41
|
const queryString = queryParams.toString();
|
|
41
42
|
const url = `/sandbox/status/${sandboxId}${queryString ? `?${queryString}` : ''}`;
|
|
42
|
-
const resp = await client.get(url, SandboxStatusResponseSchema);
|
|
43
|
+
const resp = await client.get(url, SandboxStatusResponseSchema, signal);
|
|
43
44
|
if (resp.success) {
|
|
44
45
|
return {
|
|
45
46
|
sandboxId: resp.data.sandboxId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../src/services/sandbox/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CAC7F,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC7E,aAAa,EAAE,CAAC;SACd,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAC/E,MAAM,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../src/services/sandbox/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACpE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;CAC7F,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC7E,aAAa,EAAE,CAAC;SACd,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACxC,QAAQ,EAAE;SACV,QAAQ,CAAC,mEAAmE,CAAC;IAC/E,MAAM,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,6DAA6D,CAAC;IACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CACpF,CAAC,CAAC;AAKH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,MAAiB,EACjB,MAA8B;IAE9B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACnE,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC;QACX,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QACnB,WAAW,CAAC,GAAG,CACd,eAAe,EACf,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CACtE,CAAC;IACH,CAAC;IACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACpB,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,mBAAmB,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAElF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAC5B,GAAG,EACH,2BAA2B,EAC3B,MAAM,CACN,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACN,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;SAC5B,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/services/sandbox/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAwB,MAAM,WAAW,CAAC;AAM5D,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/services/sandbox/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAwB,MAAM,WAAW,CAAC;AAM5D,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkC5E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAgT3B"}
|
|
@@ -11,6 +11,7 @@ import { SandboxRunOptionsSchema } from "./types.js";
|
|
|
11
11
|
import { getServiceUrls } from "../config.js";
|
|
12
12
|
const timingLogsEnabled = false;
|
|
13
13
|
const EXECUTION_WAIT_DURATION = '5m';
|
|
14
|
+
const EXIT_CODE_FAST_WAIT_DURATION = '250ms';
|
|
14
15
|
const TERMINAL_EXECUTION_STATUSES = new Set(['completed', 'failed', 'timeout', 'cancelled']);
|
|
15
16
|
/**
|
|
16
17
|
* Creates a Writable stream that captures all chunks to a buffer array
|
|
@@ -147,10 +148,10 @@ export async function sandboxRun(client, params) {
|
|
|
147
148
|
let finalExecution;
|
|
148
149
|
if (createResponse.executionId) {
|
|
149
150
|
logger?.debug('waiting for execution %s and %d stream(s) in parallel', createResponse.executionId, streamPromises.length);
|
|
150
|
-
const
|
|
151
|
+
const completionPromise = waitForRunCompletion(client, sandboxId, createResponse.executionId, orgId, signal, logger, started);
|
|
151
152
|
finalExecution = signal
|
|
152
|
-
? await raceWithAbort(
|
|
153
|
-
: await
|
|
153
|
+
? await raceWithAbort(completionPromise, signal, abortController, sandboxId)
|
|
154
|
+
: await completionPromise;
|
|
154
155
|
await waitForStreamsToDrain(streamPromises, signal, abortController, sandboxId);
|
|
155
156
|
}
|
|
156
157
|
else {
|
|
@@ -173,7 +174,32 @@ export async function sandboxRun(client, params) {
|
|
|
173
174
|
// drain + lifecycle propagation delay.
|
|
174
175
|
let exitCode = finalExecution?.exitCode ?? 0;
|
|
175
176
|
const statusPollStart = Date.now();
|
|
177
|
+
let shouldWaitForSandboxStatus = finalExecution?.exitCode == null;
|
|
178
|
+
let sandboxStatusReconciled = false;
|
|
176
179
|
if (finalExecution?.exitCode == null) {
|
|
180
|
+
if (createResponse.executionId && finalExecution?.status === 'completed') {
|
|
181
|
+
try {
|
|
182
|
+
const execution = await executionGet(client, {
|
|
183
|
+
executionId: createResponse.executionId,
|
|
184
|
+
orgId,
|
|
185
|
+
wait: EXIT_CODE_FAST_WAIT_DURATION,
|
|
186
|
+
signal,
|
|
187
|
+
});
|
|
188
|
+
if (execution.exitCode != null) {
|
|
189
|
+
exitCode = execution.exitCode;
|
|
190
|
+
finalExecution.exitCode = execution.exitCode;
|
|
191
|
+
shouldWaitForSandboxStatus = false;
|
|
192
|
+
logger?.debug('[run] exit code %d found from fast execution retry (+%dms)', exitCode, Date.now() - statusPollStart);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
if (!(err instanceof DOMException && err.name === 'AbortError')) {
|
|
197
|
+
logger?.debug('[run] fast execution exit code retry failed (+%dms): %s', Date.now() - statusPollStart, err);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (shouldWaitForSandboxStatus) {
|
|
177
203
|
try {
|
|
178
204
|
const sandboxStatus = await sandboxGetStatus(client, {
|
|
179
205
|
sandboxId,
|
|
@@ -183,13 +209,16 @@ export async function sandboxRun(client, params) {
|
|
|
183
209
|
});
|
|
184
210
|
if (sandboxStatus.exitCode != null) {
|
|
185
211
|
exitCode = sandboxStatus.exitCode;
|
|
212
|
+
sandboxStatusReconciled = true;
|
|
186
213
|
logger?.debug('[run] exit code %d found after server-side wait (+%dms)', exitCode, Date.now() - statusPollStart);
|
|
187
214
|
}
|
|
188
215
|
else if (sandboxStatus.status === 'failed') {
|
|
189
216
|
exitCode = 1;
|
|
217
|
+
sandboxStatusReconciled = true;
|
|
190
218
|
logger?.debug('[run] sandbox failed after server-side wait (+%dms)', Date.now() - statusPollStart);
|
|
191
219
|
}
|
|
192
220
|
else if (sandboxStatus.status === 'terminated') {
|
|
221
|
+
sandboxStatusReconciled = true;
|
|
193
222
|
logger?.debug('[run] sandbox terminated without exit code after server-side wait (+%dms)', Date.now() - statusPollStart);
|
|
194
223
|
}
|
|
195
224
|
else {
|
|
@@ -202,6 +231,13 @@ export async function sandboxRun(client, params) {
|
|
|
202
231
|
}
|
|
203
232
|
}
|
|
204
233
|
}
|
|
234
|
+
if (finalExecution &&
|
|
235
|
+
finalExecution?.exitCode == null &&
|
|
236
|
+
finalExecution?.status !== 'completed' &&
|
|
237
|
+
!sandboxStatusReconciled) {
|
|
238
|
+
exitCode = 1;
|
|
239
|
+
logger?.debug('[run] using fallback exit code 1 for terminal status=%s after sandbox status reconciliation failed', finalExecution?.status);
|
|
240
|
+
}
|
|
205
241
|
if (exitCode === 0) {
|
|
206
242
|
if (finalExecution?.exitCode != null) {
|
|
207
243
|
logger?.debug('[run] using execution exit code 0 from long-poll result');
|
|
@@ -236,6 +272,37 @@ export async function sandboxRun(client, params) {
|
|
|
236
272
|
throw error;
|
|
237
273
|
}
|
|
238
274
|
}
|
|
275
|
+
async function waitForRunCompletion(client, sandboxId, executionId, orgId, signal, logger, started) {
|
|
276
|
+
const completionAbortController = new AbortController();
|
|
277
|
+
let onAbort;
|
|
278
|
+
if (signal) {
|
|
279
|
+
onAbort = () => completionAbortController.abort(signal.reason);
|
|
280
|
+
if (signal.aborted) {
|
|
281
|
+
onAbort();
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
const completionSignal = completionAbortController.signal;
|
|
289
|
+
const executionPromise = waitForExecutionCompletion(client, executionId, orgId, completionSignal, logger, started);
|
|
290
|
+
const statusPromise = waitForSandboxStatusCompletion(client, sandboxId, orgId, completionSignal, logger, started).catch((err) => {
|
|
291
|
+
if (completionSignal.aborted) {
|
|
292
|
+
throw err;
|
|
293
|
+
}
|
|
294
|
+
logger?.debug('[run] sandbox status completion wait failed: %s', err);
|
|
295
|
+
return new Promise(() => { });
|
|
296
|
+
});
|
|
297
|
+
const result = await Promise.race([executionPromise, statusPromise]);
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
finally {
|
|
301
|
+
if (onAbort && signal) {
|
|
302
|
+
signal.removeEventListener('abort', onAbort);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
239
306
|
async function waitForExecutionCompletion(client, executionId, orgId, signal, logger, started) {
|
|
240
307
|
while (true) {
|
|
241
308
|
if (signal?.aborted) {
|
|
@@ -256,6 +323,39 @@ async function waitForExecutionCompletion(client, executionId, orgId, signal, lo
|
|
|
256
323
|
}
|
|
257
324
|
}
|
|
258
325
|
}
|
|
326
|
+
async function waitForSandboxStatusCompletion(client, sandboxId, orgId, signal, logger, started) {
|
|
327
|
+
while (true) {
|
|
328
|
+
if (signal?.aborted) {
|
|
329
|
+
throw new DOMException('Aborted', 'AbortError');
|
|
330
|
+
}
|
|
331
|
+
const result = await sandboxGetStatus(client, {
|
|
332
|
+
sandboxId,
|
|
333
|
+
orgId,
|
|
334
|
+
waitForStatus: ['idle', 'terminated', 'failed'],
|
|
335
|
+
waitMs: 300000,
|
|
336
|
+
signal,
|
|
337
|
+
});
|
|
338
|
+
logger?.debug('[run] sandbox status wait: sandbox=%s status=%s exit=%s +%dms', sandboxId, result.status, result.exitCode ?? 'undefined', Date.now() - started);
|
|
339
|
+
if (result.exitCode != null) {
|
|
340
|
+
return {
|
|
341
|
+
exitCode: result.exitCode,
|
|
342
|
+
status: 'completed',
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
if (result.status === 'failed') {
|
|
346
|
+
return {
|
|
347
|
+
exitCode: 1,
|
|
348
|
+
status: 'failed',
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
if (result.status === 'terminated') {
|
|
352
|
+
return {
|
|
353
|
+
status: 'completed',
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
357
|
+
}
|
|
358
|
+
}
|
|
259
359
|
async function waitForStreamsToDrain(streamPromises, signal, abortController, sandboxId) {
|
|
260
360
|
if (streamPromises.length === 0) {
|
|
261
361
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/services/sandbox/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/services/sandbox/run.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentuity/core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.14",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Agentuity employees and contributors",
|
|
6
6
|
"type": "module",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"zod": "^4.3.5"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
|
-
"@agentuity/test-utils": "2.0.
|
|
92
|
+
"@agentuity/test-utils": "2.0.14",
|
|
93
93
|
"@types/bun": "latest",
|
|
94
94
|
"bun-types": "latest",
|
|
95
95
|
"esbuild": "^0.25.0",
|
|
@@ -23,6 +23,7 @@ export const SandboxGetStatusParamsSchema = z.object({
|
|
|
23
23
|
.nonnegative()
|
|
24
24
|
.optional()
|
|
25
25
|
.describe('Maximum time in milliseconds to wait for the desired status'),
|
|
26
|
+
signal: z.custom<AbortSignal>().optional().describe('abort signal for cancellation'),
|
|
26
27
|
});
|
|
27
28
|
|
|
28
29
|
export type SandboxGetStatusParams = z.infer<typeof SandboxGetStatusParamsSchema>;
|
|
@@ -36,7 +37,7 @@ export async function sandboxGetStatus(
|
|
|
36
37
|
client: APIClient,
|
|
37
38
|
params: SandboxGetStatusParams
|
|
38
39
|
): Promise<SandboxStatusResult> {
|
|
39
|
-
const { sandboxId, orgId, waitForStatus, waitMs } = params;
|
|
40
|
+
const { sandboxId, orgId, waitForStatus, waitMs, signal } = params;
|
|
40
41
|
const queryParams = new URLSearchParams();
|
|
41
42
|
if (orgId) {
|
|
42
43
|
queryParams.set('orgId', orgId);
|
|
@@ -55,7 +56,8 @@ export async function sandboxGetStatus(
|
|
|
55
56
|
|
|
56
57
|
const resp = await client.get<z.infer<typeof SandboxStatusResponseSchema>>(
|
|
57
58
|
url,
|
|
58
|
-
SandboxStatusResponseSchema
|
|
59
|
+
SandboxStatusResponseSchema,
|
|
60
|
+
signal
|
|
59
61
|
);
|
|
60
62
|
|
|
61
63
|
if (resp.success) {
|
|
@@ -14,6 +14,7 @@ import { getServiceUrls } from '../config.ts';
|
|
|
14
14
|
|
|
15
15
|
const timingLogsEnabled = false;
|
|
16
16
|
const EXECUTION_WAIT_DURATION = '5m';
|
|
17
|
+
const EXIT_CODE_FAST_WAIT_DURATION = '250ms';
|
|
17
18
|
const TERMINAL_EXECUTION_STATUSES = new Set(['completed', 'failed', 'timeout', 'cancelled']);
|
|
18
19
|
|
|
19
20
|
/**
|
|
@@ -207,8 +208,9 @@ export async function sandboxRun(
|
|
|
207
208
|
createResponse.executionId,
|
|
208
209
|
streamPromises.length
|
|
209
210
|
);
|
|
210
|
-
const
|
|
211
|
+
const completionPromise = waitForRunCompletion(
|
|
211
212
|
client,
|
|
213
|
+
sandboxId,
|
|
212
214
|
createResponse.executionId,
|
|
213
215
|
orgId,
|
|
214
216
|
signal,
|
|
@@ -217,8 +219,8 @@ export async function sandboxRun(
|
|
|
217
219
|
);
|
|
218
220
|
|
|
219
221
|
finalExecution = signal
|
|
220
|
-
? await raceWithAbort(
|
|
221
|
-
: await
|
|
222
|
+
? await raceWithAbort(completionPromise, signal, abortController, sandboxId)
|
|
223
|
+
: await completionPromise;
|
|
222
224
|
await waitForStreamsToDrain(streamPromises, signal, abortController, sandboxId);
|
|
223
225
|
} else {
|
|
224
226
|
logger?.debug(
|
|
@@ -244,7 +246,39 @@ export async function sandboxRun(
|
|
|
244
246
|
// drain + lifecycle propagation delay.
|
|
245
247
|
let exitCode = finalExecution?.exitCode ?? 0;
|
|
246
248
|
const statusPollStart = Date.now();
|
|
249
|
+
let shouldWaitForSandboxStatus = finalExecution?.exitCode == null;
|
|
250
|
+
let sandboxStatusReconciled = false;
|
|
247
251
|
if (finalExecution?.exitCode == null) {
|
|
252
|
+
if (createResponse.executionId && finalExecution?.status === 'completed') {
|
|
253
|
+
try {
|
|
254
|
+
const execution = await executionGet(client, {
|
|
255
|
+
executionId: createResponse.executionId,
|
|
256
|
+
orgId,
|
|
257
|
+
wait: EXIT_CODE_FAST_WAIT_DURATION,
|
|
258
|
+
signal,
|
|
259
|
+
});
|
|
260
|
+
if (execution.exitCode != null) {
|
|
261
|
+
exitCode = execution.exitCode;
|
|
262
|
+
finalExecution.exitCode = execution.exitCode;
|
|
263
|
+
shouldWaitForSandboxStatus = false;
|
|
264
|
+
logger?.debug(
|
|
265
|
+
'[run] exit code %d found from fast execution retry (+%dms)',
|
|
266
|
+
exitCode,
|
|
267
|
+
Date.now() - statusPollStart
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
} catch (err) {
|
|
271
|
+
if (!(err instanceof DOMException && err.name === 'AbortError')) {
|
|
272
|
+
logger?.debug(
|
|
273
|
+
'[run] fast execution exit code retry failed (+%dms): %s',
|
|
274
|
+
Date.now() - statusPollStart,
|
|
275
|
+
err
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
if (shouldWaitForSandboxStatus) {
|
|
248
282
|
try {
|
|
249
283
|
const sandboxStatus = await sandboxGetStatus(client, {
|
|
250
284
|
sandboxId,
|
|
@@ -254,6 +288,7 @@ export async function sandboxRun(
|
|
|
254
288
|
});
|
|
255
289
|
if (sandboxStatus.exitCode != null) {
|
|
256
290
|
exitCode = sandboxStatus.exitCode;
|
|
291
|
+
sandboxStatusReconciled = true;
|
|
257
292
|
logger?.debug(
|
|
258
293
|
'[run] exit code %d found after server-side wait (+%dms)',
|
|
259
294
|
exitCode,
|
|
@@ -261,11 +296,13 @@ export async function sandboxRun(
|
|
|
261
296
|
);
|
|
262
297
|
} else if (sandboxStatus.status === 'failed') {
|
|
263
298
|
exitCode = 1;
|
|
299
|
+
sandboxStatusReconciled = true;
|
|
264
300
|
logger?.debug(
|
|
265
301
|
'[run] sandbox failed after server-side wait (+%dms)',
|
|
266
302
|
Date.now() - statusPollStart
|
|
267
303
|
);
|
|
268
304
|
} else if (sandboxStatus.status === 'terminated') {
|
|
305
|
+
sandboxStatusReconciled = true;
|
|
269
306
|
logger?.debug(
|
|
270
307
|
'[run] sandbox terminated without exit code after server-side wait (+%dms)',
|
|
271
308
|
Date.now() - statusPollStart
|
|
@@ -287,6 +324,18 @@ export async function sandboxRun(
|
|
|
287
324
|
}
|
|
288
325
|
}
|
|
289
326
|
}
|
|
327
|
+
if (
|
|
328
|
+
finalExecution &&
|
|
329
|
+
finalExecution?.exitCode == null &&
|
|
330
|
+
finalExecution?.status !== 'completed' &&
|
|
331
|
+
!sandboxStatusReconciled
|
|
332
|
+
) {
|
|
333
|
+
exitCode = 1;
|
|
334
|
+
logger?.debug(
|
|
335
|
+
'[run] using fallback exit code 1 for terminal status=%s after sandbox status reconciliation failed',
|
|
336
|
+
finalExecution?.status
|
|
337
|
+
);
|
|
338
|
+
}
|
|
290
339
|
if (exitCode === 0) {
|
|
291
340
|
if (finalExecution?.exitCode != null) {
|
|
292
341
|
logger?.debug('[run] using execution exit code 0 from long-poll result');
|
|
@@ -327,6 +376,60 @@ export async function sandboxRun(
|
|
|
327
376
|
}
|
|
328
377
|
}
|
|
329
378
|
|
|
379
|
+
async function waitForRunCompletion(
|
|
380
|
+
client: APIClient,
|
|
381
|
+
sandboxId: string,
|
|
382
|
+
executionId: string,
|
|
383
|
+
orgId: string | undefined,
|
|
384
|
+
signal: AbortSignal | undefined,
|
|
385
|
+
logger: Logger | undefined,
|
|
386
|
+
started: number
|
|
387
|
+
): Promise<{ exitCode?: number; status: string }> {
|
|
388
|
+
const completionAbortController = new AbortController();
|
|
389
|
+
let onAbort: (() => void) | undefined;
|
|
390
|
+
if (signal) {
|
|
391
|
+
onAbort = () => completionAbortController.abort(signal.reason);
|
|
392
|
+
if (signal.aborted) {
|
|
393
|
+
onAbort();
|
|
394
|
+
} else {
|
|
395
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
try {
|
|
400
|
+
const completionSignal = completionAbortController.signal;
|
|
401
|
+
const executionPromise = waitForExecutionCompletion(
|
|
402
|
+
client,
|
|
403
|
+
executionId,
|
|
404
|
+
orgId,
|
|
405
|
+
completionSignal,
|
|
406
|
+
logger,
|
|
407
|
+
started
|
|
408
|
+
);
|
|
409
|
+
const statusPromise = waitForSandboxStatusCompletion(
|
|
410
|
+
client,
|
|
411
|
+
sandboxId,
|
|
412
|
+
orgId,
|
|
413
|
+
completionSignal,
|
|
414
|
+
logger,
|
|
415
|
+
started
|
|
416
|
+
).catch((err) => {
|
|
417
|
+
if (completionSignal.aborted) {
|
|
418
|
+
throw err;
|
|
419
|
+
}
|
|
420
|
+
logger?.debug('[run] sandbox status completion wait failed: %s', err);
|
|
421
|
+
return new Promise<never>(() => {});
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
const result = await Promise.race([executionPromise, statusPromise]);
|
|
425
|
+
return result;
|
|
426
|
+
} finally {
|
|
427
|
+
if (onAbort && signal) {
|
|
428
|
+
signal.removeEventListener('abort', onAbort);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
330
433
|
async function waitForExecutionCompletion(
|
|
331
434
|
client: APIClient,
|
|
332
435
|
executionId: string,
|
|
@@ -363,6 +466,56 @@ async function waitForExecutionCompletion(
|
|
|
363
466
|
}
|
|
364
467
|
}
|
|
365
468
|
|
|
469
|
+
async function waitForSandboxStatusCompletion(
|
|
470
|
+
client: APIClient,
|
|
471
|
+
sandboxId: string,
|
|
472
|
+
orgId: string | undefined,
|
|
473
|
+
signal: AbortSignal | undefined,
|
|
474
|
+
logger: Logger | undefined,
|
|
475
|
+
started: number
|
|
476
|
+
): Promise<{ exitCode?: number; status: string }> {
|
|
477
|
+
while (true) {
|
|
478
|
+
if (signal?.aborted) {
|
|
479
|
+
throw new DOMException('Aborted', 'AbortError');
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
const result = await sandboxGetStatus(client, {
|
|
483
|
+
sandboxId,
|
|
484
|
+
orgId,
|
|
485
|
+
waitForStatus: ['idle', 'terminated', 'failed'],
|
|
486
|
+
waitMs: 300000,
|
|
487
|
+
signal,
|
|
488
|
+
});
|
|
489
|
+
logger?.debug(
|
|
490
|
+
'[run] sandbox status wait: sandbox=%s status=%s exit=%s +%dms',
|
|
491
|
+
sandboxId,
|
|
492
|
+
result.status,
|
|
493
|
+
result.exitCode ?? 'undefined',
|
|
494
|
+
Date.now() - started
|
|
495
|
+
);
|
|
496
|
+
|
|
497
|
+
if (result.exitCode != null) {
|
|
498
|
+
return {
|
|
499
|
+
exitCode: result.exitCode,
|
|
500
|
+
status: 'completed',
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
if (result.status === 'failed') {
|
|
504
|
+
return {
|
|
505
|
+
exitCode: 1,
|
|
506
|
+
status: 'failed',
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
if (result.status === 'terminated') {
|
|
510
|
+
return {
|
|
511
|
+
status: 'completed',
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
await new Promise((resolve) => setTimeout(resolve, 25));
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
|
|
366
519
|
async function waitForStreamsToDrain(
|
|
367
520
|
streamPromises: Promise<void>[],
|
|
368
521
|
signal: AbortSignal | undefined,
|