@namzu/sandbox 7.0.0 → 7.2.0

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 (39) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +29 -1
  3. package/dist/backends/aci-standby-pool/index.d.ts.map +1 -1
  4. package/dist/backends/aci-standby-pool/index.js +95 -82
  5. package/dist/backends/aci-standby-pool/index.js.map +1 -1
  6. package/dist/backends/docker/index.d.ts.map +1 -1
  7. package/dist/backends/docker/index.js +108 -114
  8. package/dist/backends/docker/index.js.map +1 -1
  9. package/dist/backends/firecracker/index.d.ts.map +1 -1
  10. package/dist/backends/firecracker/index.js +117 -52
  11. package/dist/backends/firecracker/index.js.map +1 -1
  12. package/dist/backends/firecracker/protocol.d.ts +19 -27
  13. package/dist/backends/firecracker/protocol.d.ts.map +1 -1
  14. package/dist/backends/firecracker/protocol.js +57 -32
  15. package/dist/backends/firecracker/protocol.js.map +1 -1
  16. package/dist/backends/firecracker/transport.d.ts +23 -4
  17. package/dist/backends/firecracker/transport.d.ts.map +1 -1
  18. package/dist/backends/firecracker/transport.js +153 -32
  19. package/dist/backends/firecracker/transport.js.map +1 -1
  20. package/dist/backends/http-worker-client.d.ts +17 -0
  21. package/dist/backends/http-worker-client.d.ts.map +1 -0
  22. package/dist/backends/http-worker-client.js +173 -0
  23. package/dist/backends/http-worker-client.js.map +1 -0
  24. package/dist/backends/remote-execution-controller.d.ts +76 -0
  25. package/dist/backends/remote-execution-controller.d.ts.map +1 -0
  26. package/dist/backends/remote-execution-controller.js +294 -0
  27. package/dist/backends/remote-execution-controller.js.map +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -0
  30. package/dist/index.js.map +1 -1
  31. package/package.json +2 -2
  32. package/src/backends/aci-standby-pool/index.ts +101 -88
  33. package/src/backends/docker/index.ts +101 -132
  34. package/src/backends/firecracker/index.ts +117 -45
  35. package/src/backends/firecracker/protocol.ts +67 -33
  36. package/src/backends/firecracker/transport.ts +214 -39
  37. package/src/backends/http-worker-client.ts +230 -0
  38. package/src/backends/remote-execution-controller.ts +462 -0
  39. package/src/index.ts +4 -0
@@ -55,11 +55,20 @@
55
55
  import net from 'node:net';
56
56
  import tls from 'node:tls';
57
57
  import { OperationDeadline, OperationDeadlineExpired } from '../readiness.js';
58
+ import { RemoteCancellationUnknownError, RemoteCancellationUnsupportedError, RemoteExecutionController, RemoteProtocolError, } from '../remote-execution-controller.js';
58
59
  import { ExecResultAccumulator, parseExecLine, } from './protocol.js';
59
60
  const DEFAULT_CONNECT_TIMEOUT_MS = 5_000;
60
61
  const DEFAULT_CONNECT_RETRY_BUDGET_MS = 30_000;
61
62
  const DEFAULT_CONNECT_RETRY_INTERVAL_MS = 100;
62
63
  const DEFAULT_READ_IDLE_TIMEOUT_MS = 60_000;
64
+ const DEFAULT_EXECUTION_TIMEOUT_MS = 5 * 60_000;
65
+ // The ownership controller begins reconciliation shortly after the requested
66
+ // command timeout. The data socket itself stays observable for the peer's
67
+ // bounded TERM -> KILL confirmation window so a quiet but correctly
68
+ // terminating command can still deliver its terminal frame and output tail.
69
+ const EXECUTION_TRANSPORT_GRACE_MS = 10_000;
70
+ const POST_RESPONSE_CLOSE_TIMEOUT_MS = 1_000;
71
+ const MAX_TIMER_DELAY_MS = 2_147_483_647;
63
72
  /** Framing: 8 hex digits of payload byte length, then `\n`, then payload. */
64
73
  const LENGTH_PREFIX_HEX = 8;
65
74
  function frame(payload) {
@@ -87,6 +96,9 @@ class FrameReader {
87
96
  break;
88
97
  }
89
98
  const header = this.buf.subarray(0, nl).toString('ascii');
99
+ if (!/^[0-9a-fA-F]{8}$/.test(header)) {
100
+ throw new Error(`vsock transport: invalid frame length header ${JSON.stringify(header)}`);
101
+ }
90
102
  const len = Number.parseInt(header, 16);
91
103
  if (!Number.isInteger(len) || len < 0) {
92
104
  throw new Error(`vsock transport: invalid frame length header ${JSON.stringify(header)}`);
@@ -100,12 +112,15 @@ class FrameReader {
100
112
  }
101
113
  return out;
102
114
  }
115
+ get bufferedBytes() {
116
+ return this.buf.length;
117
+ }
103
118
  }
104
119
  /**
105
120
  * The transport. One instance per sandbox handle; every request opens
106
121
  * a fresh connection (resume-survivable — no socket lingers across a
107
- * resume to be silently severed). All four ops + the heartbeat go
108
- * through {@link request} / {@link execute}.
122
+ * resume to be silently severed). Execution reservation, data, cancellation,
123
+ * file I/O and heartbeat all use independent calls through this dialer.
109
124
  */
110
125
  export class VsockAgentTransport {
111
126
  handle;
@@ -113,6 +128,7 @@ export class VsockAgentTransport {
113
128
  connectRetryBudgetMs;
114
129
  connectRetryIntervalMs;
115
130
  readIdleTimeoutMs;
131
+ executionController;
116
132
  constructor(handle, options = {}) {
117
133
  this.handle = handle;
118
134
  this.connectTimeoutMs = options.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS;
@@ -120,6 +136,24 @@ export class VsockAgentTransport {
120
136
  this.connectRetryIntervalMs =
121
137
  options.connectRetryIntervalMs ?? DEFAULT_CONNECT_RETRY_INTERVAL_MS;
122
138
  this.readIdleTimeoutMs = options.readIdleTimeoutMs ?? DEFAULT_READ_IDLE_TIMEOUT_MS;
139
+ const adapter = {
140
+ label: 'framed microVM agent',
141
+ reserve: async (signal) => await this.reserveExecution(signal),
142
+ cancel: async (executionId, signal) => await this.cancelExecution(executionId, signal),
143
+ execute: async (executionId, command, argv, opts, signal, context) => await this.executeRaw({
144
+ ...(executionId ? { executionId } : {}),
145
+ command,
146
+ args: argv ?? [],
147
+ ...(opts?.cwd !== undefined ? { cwd: opts.cwd } : {}),
148
+ ...(opts?.env !== undefined ? { env: opts.env } : {}),
149
+ ...(opts?.timeout !== undefined ? { timeoutMs: opts.timeout } : {}),
150
+ ...(context?.stdin !== undefined ? { stdin: context.stdin } : {}),
151
+ ...(context?.maxOutputBytes !== undefined
152
+ ? { maxOutputBytes: context.maxOutputBytes }
153
+ : {}),
154
+ }, opts, signal),
155
+ };
156
+ this.executionController = new RemoteExecutionController(adapter);
123
157
  }
124
158
  /**
125
159
  * Dial the agent with the resume-survival retry budget. Resolves a
@@ -301,11 +335,15 @@ export class VsockAgentTransport {
301
335
  return await new Promise((resolve, reject) => {
302
336
  const reader = new FrameReader();
303
337
  let settled = false;
338
+ let response;
339
+ let closeTimer;
304
340
  const finish = (err, value) => {
305
341
  if (settled)
306
342
  return;
307
343
  settled = true;
308
344
  idle.clear();
345
+ if (closeTimer)
346
+ clearTimeout(closeTimer);
309
347
  signal?.removeEventListener('abort', abort);
310
348
  socket.destroy();
311
349
  if (err)
@@ -317,6 +355,10 @@ export class VsockAgentTransport {
317
355
  const idle = new IdleTimer(this.readIdleTimeoutMs, () => finish(new Error(`vsock transport: read idle timeout after ${this.readIdleTimeoutMs}ms`)));
318
356
  socket.on('data', (chunk) => {
319
357
  idle.bump();
358
+ if (response !== undefined) {
359
+ finish(new Error('vsock transport: control reply emitted data after its response'));
360
+ return;
361
+ }
320
362
  let frames;
321
363
  try {
322
364
  frames = reader.push(chunk);
@@ -325,10 +367,21 @@ export class VsockAgentTransport {
325
367
  finish(err instanceof Error ? err : new Error(String(err)));
326
368
  return;
327
369
  }
370
+ if (frames.length > 1) {
371
+ finish(new Error('vsock transport: control reply emitted multiple frames'));
372
+ return;
373
+ }
328
374
  const first = frames[0];
329
375
  if (first !== undefined) {
330
376
  try {
331
- finish(null, JSON.parse(first));
377
+ response = JSON.parse(first);
378
+ if (reader.bufferedBytes > 0) {
379
+ finish(new Error('vsock transport: control reply has trailing partial data'));
380
+ return;
381
+ }
382
+ idle.clear();
383
+ closeTimer = setTimeout(() => finish(new Error('vsock transport: control peer did not close after reply')), POST_RESPONSE_CLOSE_TIMEOUT_MS);
384
+ closeTimer.unref();
332
385
  }
333
386
  catch (err) {
334
387
  finish(err instanceof Error ? err : new Error(String(err)));
@@ -336,7 +389,12 @@ export class VsockAgentTransport {
336
389
  }
337
390
  });
338
391
  socket.once('error', (err) => finish(err));
339
- socket.once('close', () => finish(new Error('vsock transport: socket closed before reply')));
392
+ socket.once('close', () => {
393
+ if (response !== undefined)
394
+ finish(null, response);
395
+ else
396
+ finish(new Error('vsock transport: socket closed before reply'));
397
+ });
340
398
  if (signal?.aborted) {
341
399
  abort();
342
400
  return;
@@ -351,33 +409,42 @@ export class VsockAgentTransport {
351
409
  * {@link SandboxExecResult} via the shared {@link ExecResultAccumulator}.
352
410
  * The agent terminates the stream with a zero-length frame.
353
411
  */
354
- async execute(body) {
355
- const socket = await this.dial();
412
+ async executeRaw(body, opts, signal) {
413
+ const socket = await this.dial(signal);
356
414
  const start = Date.now();
357
415
  return await new Promise((resolve, reject) => {
358
416
  const reader = new FrameReader();
359
- const acc = new ExecResultAccumulator(start);
417
+ const acc = new ExecResultAccumulator(start, opts?.onOutput);
360
418
  let settled = false;
361
- const idle = new IdleTimer(this.readIdleTimeoutMs, () => {
362
- if (settled)
363
- return;
364
- settled = true;
365
- socket.destroy();
366
- reject(new Error(`vsock transport: exec read idle timeout after ${this.readIdleTimeoutMs}ms`));
367
- });
419
+ let terminated = false;
420
+ let terminalResult;
421
+ let closeTimer;
422
+ const requestedTimeout = typeof body.timeoutMs === 'number' && Number.isFinite(body.timeoutMs) && body.timeoutMs > 0
423
+ ? body.timeoutMs
424
+ : DEFAULT_EXECUTION_TIMEOUT_MS;
425
+ const observationTimeoutMs = Math.min(MAX_TIMER_DELAY_MS, requestedTimeout + EXECUTION_TRANSPORT_GRACE_MS);
368
426
  const finish = (err, value) => {
369
427
  if (settled)
370
428
  return;
371
429
  settled = true;
372
- idle.clear();
430
+ clearTimeout(observationTimer);
431
+ if (closeTimer)
432
+ clearTimeout(closeTimer);
433
+ signal?.removeEventListener('abort', abort);
373
434
  socket.destroy();
374
435
  if (err)
375
436
  reject(err);
376
437
  else
377
438
  resolve(value);
378
439
  };
440
+ const abort = () => finish(signalError(signal));
441
+ const observationTimer = setTimeout(() => finish(new Error(`vsock transport: execution observation exceeded ${observationTimeoutMs}ms`)), observationTimeoutMs);
442
+ observationTimer.unref();
379
443
  socket.on('data', (chunk) => {
380
- idle.bump();
444
+ if (terminated) {
445
+ finish(new Error('vsock transport: exec stream emitted data after its terminator'));
446
+ return;
447
+ }
381
448
  let frames;
382
449
  try {
383
450
  frames = reader.push(chunk);
@@ -387,38 +454,92 @@ export class VsockAgentTransport {
387
454
  return;
388
455
  }
389
456
  for (const payload of frames) {
390
- if (payload.length === 0) {
391
- // Zero-length terminator. If a result was seen, we are
392
- // done; otherwise the stream ended without a result.
393
- finish(acc.done ? null : new Error('exec stream ended without a result event'), acc.finish());
457
+ if (terminated) {
458
+ finish(new Error('vsock transport: exec stream emitted data after its terminator'));
394
459
  return;
395
460
  }
396
- const event = parseExecLine(payload);
397
- if (!event)
398
- continue; // malformed line — swallow (docker parity)
399
- try {
400
- if (acc.push(event)) {
401
- // Terminal result seen; wait for terminator but we can
402
- // resolve now — the agent closes after the terminator.
461
+ if (payload.length === 0) {
462
+ if (!acc.done) {
463
+ finish(new Error('exec stream ended without a result event'));
464
+ return;
403
465
  }
466
+ terminated = true;
467
+ continue;
468
+ }
469
+ try {
470
+ const event = parseExecLine(payload);
471
+ if (event)
472
+ acc.push(event);
404
473
  }
405
474
  catch (err) {
406
475
  finish(err instanceof Error ? err : new Error(String(err)));
407
476
  return;
408
477
  }
409
478
  }
479
+ if (terminated) {
480
+ if (reader.bufferedBytes > 0) {
481
+ finish(new Error('vsock transport: exec stream has trailing partial data'));
482
+ return;
483
+ }
484
+ terminalResult = acc.finish();
485
+ closeTimer = setTimeout(() => finish(new Error('vsock transport: exec peer did not close after terminator')), POST_RESPONSE_CLOSE_TIMEOUT_MS);
486
+ closeTimer.unref();
487
+ }
410
488
  });
411
489
  socket.once('error', (err) => finish(err));
412
490
  socket.once('close', () => {
413
- // Stream closed. If a result arrived, deliver it (some agents
414
- // close right after the terminator without a separate event);
415
- // otherwise it is a truncated stream.
416
- finish(acc.done ? null : new Error('vsock transport: socket closed before exec result'), acc.finish());
491
+ if (terminated && terminalResult)
492
+ finish(null, terminalResult);
493
+ else
494
+ finish(new Error('vsock transport: socket closed before exec stream terminator'));
417
495
  });
418
- idle.bump();
496
+ if (signal?.aborted) {
497
+ abort();
498
+ return;
499
+ }
500
+ signal?.addEventListener('abort', abort, { once: true });
419
501
  socket.write(frame(JSON.stringify({ op: 'execute', body })));
420
502
  });
421
503
  }
504
+ /**
505
+ * Compatibility request-shaped entry point. It now enters the same
506
+ * reserve-before-admission controller as {@link exec}; the raw data-plane
507
+ * primitive is deliberately private so aborting this public method cannot
508
+ * abandon a live guest command.
509
+ */
510
+ async execute(body, opts, signal) {
511
+ if (body.executionId !== undefined) {
512
+ throw new RemoteProtocolError('VsockAgentTransport.execute does not accept caller-owned execution ids');
513
+ }
514
+ return await this.executionController.exec(body.command, body.args ? [...body.args] : undefined, {
515
+ ...opts,
516
+ ...(body.cwd !== undefined ? { cwd: body.cwd } : {}),
517
+ ...(body.env !== undefined ? { env: body.env } : {}),
518
+ ...(body.timeoutMs !== undefined ? { timeout: body.timeoutMs } : {}),
519
+ ...(opts?.signal === undefined && signal !== undefined ? { signal } : {}),
520
+ }, {
521
+ ...(body.stdin !== undefined ? { stdin: body.stdin } : {}),
522
+ ...(body.maxOutputBytes !== undefined ? { maxOutputBytes: body.maxOutputBytes } : {}),
523
+ });
524
+ }
525
+ async exec(command, argv, opts) {
526
+ return await this.executionController.exec(command, argv, opts);
527
+ }
528
+ async reserveExecution(signal) {
529
+ const response = await this.request({ op: 'reserve-execution' }, signal);
530
+ if (response.ok === false &&
531
+ typeof response.error === 'string' &&
532
+ response.error.startsWith('unknown_op:')) {
533
+ throw new RemoteCancellationUnsupportedError('This microVM agent does not support the execution-cancellation lease protocol. Rebuild the guest image before passing SandboxExecOptions.signal; refusing rather than pretending cancellation is active.');
534
+ }
535
+ if (response.ok === false && response.error === 'agent_retiring') {
536
+ throw new RemoteCancellationUnknownError('The microVM agent has fenced itself because an earlier process-group shutdown could not be confirmed; the sandbox must be retired.');
537
+ }
538
+ return response;
539
+ }
540
+ async cancelExecution(executionId, signal) {
541
+ return await this.request({ op: 'cancel-execution', body: { executionId } }, signal);
542
+ }
422
543
  /** Liveness probe. Returns true on an `{ ok: true }` healthz reply. */
423
544
  async healthz(signal) {
424
545
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,GAAG,MAAM,UAAU,CAAA;AAG1B,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EACN,8BAA8B,EAC9B,kCAAkC,EAElC,yBAAyB,EACzB,mBAAmB,GACnB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAEN,qBAAqB,EAKrB,aAAa,GACb,MAAM,eAAe,CAAA;AAoHtB,MAAM,0BAA0B,GAAG,KAAK,CAAA;AACxC,MAAM,+BAA+B,GAAG,MAAM,CAAA;AAC9C,MAAM,iCAAiC,GAAG,GAAG,CAAA;AAC7C,MAAM,4BAA4B,GAAG,MAAM,CAAA;AAC3C,MAAM,4BAA4B,GAAG,CAAC,GAAG,MAAM,CAAA;AAC/C,6EAA6E;AAC7E,0EAA0E;AAC1E,oEAAoE;AACpE,4EAA4E;AAC5E,MAAM,4BAA4B,GAAG,MAAM,CAAA;AAC3C,MAAM,8BAA8B,GAAG,KAAK,CAAA;AAC5C,MAAM,kBAAkB,GAAG,aAAa,CAAA;AAExC,6EAA6E;AAC7E,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B,SAAS,KAAK,CAAC,OAAe;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACzB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,IAAI,EAChE,OAAO,CACP,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,WAAW;IACR,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,KAAa;QACjB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QACxF,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,SAAS,CAAC;YACT,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAC,OAAO;YACzC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;gBACtC,0CAA0C;gBAC1C,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,uDAAuD,EAAE,GAAG,CAAC,CAAA;gBAC9E,CAAC;gBACD,MAAK;YACN,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACzD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC1F,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACvC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,gDAAgD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC1F,CAAC;YACD,MAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAA;YACpB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,GAAG;gBAAE,MAAK,CAAC,qBAAqB;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACtE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;YACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAA;IACvB,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IACd,MAAM,CAAoB;IAC1B,gBAAgB,CAAQ;IACxB,oBAAoB,CAAQ;IAC5B,sBAAsB,CAAQ;IAC9B,iBAAiB,CAAQ;IACzB,mBAAmB,CAEnC;IAED,YAAY,MAA0B,EAAE,UAAiC,EAAE;QAC1E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAA0B,CAAA;QAC9E,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,+BAA+B,CAAA;QAC3F,IAAI,CAAC,sBAAsB;YAC1B,OAAO,CAAC,sBAAsB,IAAI,iCAAiC,CAAA;QACpE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,4BAA4B,CAAA;QAClF,MAAM,OAAO,GAA0E;YACtF,KAAK,EAAE,sBAAsB;YAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC9D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC;YACtF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CACpE,MAAM,IAAI,CAAC,UAAU,CACpB;gBACC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvC,OAAO;gBACP,IAAI,EAAE,IAAI,IAAI,EAAE;gBAChB,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,SAAS;oBACxC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE;oBAC5C,CAAC,CAAC,EAAE,CAAC;aACN,EACD,IAAI,EACJ,MAAM,CACN;SACF,CAAA;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAA;IAClE,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,IAAI,CAAC,MAAoB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAA;QACvD,IAAI,OAAgB,CAAA;QACpB,SAAS,CAAC;YACT,MAAM,EAAE,cAAc,EAAE,CAAA;YACxB,IAAI,CAAC;gBACJ,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,MAAM,EAAE,OAAO;oBAAE,MAAM,MAAM,CAAC,MAAM,CAAA;gBACxC,OAAO,GAAG,GAAG,CAAA;gBACb,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;oBAAE,MAAK;gBACjC,MAAM,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;YACjD,CAAC;QACF,CAAC;QACD,MAAM,IAAI,KAAK,CACd,sDAAsD,IAAI,CAAC,oBAAoB,cAAc,cAAc,CAC1G,IAAI,CAAC,MAAM,CACX,MAAM,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EACrE,EAAE,KAAK,EAAE,OAAO,EAAE,CAClB,CAAA;IACF,CAAC;IAEO,WAAW,CAAC,MAAoB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACvE,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;YAClE,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACpC,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,MAAM,IAAI,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC3B,IAAI,OAAO;oBAAE,OAAM;gBACnB,OAAO,GAAG,IAAI,CAAA;gBACd,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC3C,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,MAAM,CAAC,GAAG,CAAC,CAAA;YACZ,CAAC,CAAA;YACD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;YAC7C,MAAM,KAAK,GAAG,UAAU,CACvB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,EACrF,IAAI,CAAC,gBAAgB,CACrB,CAAA;YACD,KAAK,CAAC,KAAK,EAAE,CAAA;YAEb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,KAAK,EAAE,CAAA;gBACP,OAAM;YACP,CAAC;YACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAExD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;gBAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC5B,IAAI,OAAO;wBAAE,OAAM;oBACnB,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;oBAC3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;oBACpC,OAAO,CAAC,MAAM,CAAC,CAAA;oBACf,OAAM;gBACP,CAAC;gBACD,8DAA8D;gBAC9D,+DAA+D;gBAC/D,gCAAgC;gBAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;gBACxB,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAA;gBACjC,MAAM,SAAS,GAAG,IAAI,UAAU,EAAE,CAAA;gBAClC,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;oBAChC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAClC,IAAI,IAAI,KAAK,SAAS;wBAAE,OAAM;oBAC9B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;oBACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACzB,IAAI,CAAC,IAAI,KAAK,CAAC,iBAAiB,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;wBAC1E,OAAM;oBACP,CAAC;oBACD,IAAI,OAAO;wBAAE,OAAM;oBACnB,OAAO,GAAG,IAAI,CAAA;oBACd,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;oBAC3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;oBACpC,2DAA2D;oBAC3D,oDAAoD;oBACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,EAAE,CAAA;oBAC1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;oBACjD,OAAO,CAAC,MAAM,CAAC,CAAA;gBAChB,CAAC,CAAA;gBACD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACK,eAAe,CACtB,MAAqD,EACrD,MAAoB;QAEpB,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;gBACjB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;gBACnB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU;gBACjC,kBAAkB,EAAE,IAAI;gBACxB,UAAU,EAAE,SAAS;aACrB,CAAC,CAAA;YACF,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,MAAM,IAAI,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC3B,IAAI,OAAO;oBAAE,OAAM;gBACnB,OAAO,GAAG,IAAI,CAAA;gBACd,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC3C,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,MAAM,CAAC,GAAG,CAAC,CAAA;YACZ,CAAC,CAAA;YACD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;YAC7C,MAAM,KAAK,GAAG,UAAU,CACvB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,qCAAqC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,EACrF,IAAI,CAAC,gBAAgB,CACrB,CAAA;YACD,KAAK,CAAC,KAAK,EAAE,CAAA;YAEb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC1B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,KAAK,EAAE,CAAA;gBACP,OAAM;YACP,CAAC;YACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAExD,8DAA8D;YAC9D,kEAAkE;YAClE,8DAA8D;YAC9D,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;gBACjC,IAAI,OAAO;oBAAE,OAAM;gBACnB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBACxB,IAAI,CACH,IAAI,KAAK,CACR,qDACC,MAAM,CAAC,kBAAkB,IAAI,SAC9B,EAAE,CACF,CACD,CAAA;oBACD,OAAM;gBACP,CAAC;gBACD,OAAO,GAAG,IAAI,CAAA;gBACd,YAAY,CAAC,KAAK,CAAC,CAAA;gBACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;gBACpC,0DAA0D;gBAC1D,6DAA6D;gBAC7D,0DAA0D;gBAC1D,wDAAwD;gBACxD,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,SAAS,IAAI,CAAC,CAAA;gBAC7C,OAAO,CAAC,MAAM,CAAC,CAAA;YAChB,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAI,GAAiB,EAAE,MAAoB;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtC,OAAO,MAAM,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;YAChC,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,IAAI,QAAuB,CAAA;YAC3B,IAAI,UAAqD,CAAA;YACzD,MAAM,MAAM,GAAG,CAAC,GAAiB,EAAE,KAAS,EAAE,EAAE;gBAC/C,IAAI,OAAO;oBAAE,OAAM;gBACnB,OAAO,GAAG,IAAI,CAAA;gBACd,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,IAAI,UAAU;oBAAE,YAAY,CAAC,UAAU,CAAC,CAAA;gBACxC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC3C,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAA;;oBACf,OAAO,CAAC,KAAU,CAAC,CAAA;YACzB,CAAC,CAAA;YACD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;YAC/C,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CACvD,MAAM,CAAC,IAAI,KAAK,CAAC,4CAA4C,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,CACzF,CAAA;YACD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACnC,IAAI,CAAC,IAAI,EAAE,CAAA;gBACX,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAA;oBACnF,OAAM;gBACP,CAAC;gBACD,IAAI,MAAgB,CAAA;gBACpB,IAAI,CAAC;oBACJ,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC5B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBAC3D,OAAM;gBACP,CAAC;gBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAA;oBAC3E,OAAM;gBACP,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACJ,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAA;wBACjC,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;4BAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAA;4BAC7E,OAAM;wBACP,CAAC;wBACD,IAAI,CAAC,KAAK,EAAE,CAAA;wBACZ,UAAU,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC,EAClF,8BAA8B,CAC9B,CAAA;wBACD,UAAU,CAAC,KAAK,EAAE,CAAA;oBACnB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACd,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBAC5D,CAAC;gBACF,CAAC;YACF,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACzB,IAAI,QAAQ,KAAK,SAAS;oBAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;;oBAC7C,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAA;YACtE,CAAC,CAAC,CAAA;YACF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,KAAK,EAAE,CAAA;gBACP,OAAM;YACP,CAAC;YACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACxD,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,UAAU,CACvB,IAAiB,EACjB,IAAyB,EACzB,MAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,OAAO,MAAM,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC/D,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;YAChC,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC5D,IAAI,OAAO,GAAG,KAAK,CAAA;YACnB,IAAI,UAAU,GAAG,KAAK,CAAA;YACtB,IAAI,cAA6C,CAAA;YACjD,IAAI,UAAqD,CAAA;YACzD,MAAM,gBAAgB,GACrB,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC;gBAC1F,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,4BAA4B,CAAA;YAChC,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CACpC,kBAAkB,EAClB,gBAAgB,GAAG,4BAA4B,CAC/C,CAAA;YACD,MAAM,MAAM,GAAG,CAAC,GAAiB,EAAE,KAAyB,EAAE,EAAE;gBAC/D,IAAI,OAAO;oBAAE,OAAM;gBACnB,OAAO,GAAG,IAAI,CAAA;gBACd,YAAY,CAAC,gBAAgB,CAAC,CAAA;gBAC9B,IAAI,UAAU;oBAAE,YAAY,CAAC,UAAU,CAAC,CAAA;gBACxC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC3C,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAA;;oBACf,OAAO,CAAC,KAA0B,CAAC,CAAA;YACzC,CAAC,CAAA;YACD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;YAC/C,MAAM,gBAAgB,GAAG,UAAU,CAClC,GAAG,EAAE,CACJ,MAAM,CACL,IAAI,KAAK,CAAC,mDAAmD,oBAAoB,IAAI,CAAC,CACtF,EACF,oBAAoB,CACpB,CAAA;YACD,gBAAgB,CAAC,KAAK,EAAE,CAAA;YACxB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACnC,IAAI,UAAU,EAAE,CAAC;oBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAA;oBACnF,OAAM;gBACP,CAAC;gBACD,IAAI,MAAgB,CAAA;gBACpB,IAAI,CAAC;oBACJ,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC5B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBAC3D,OAAM;gBACP,CAAC;gBACD,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;oBAC9B,IAAI,UAAU,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAA;wBACnF,OAAM;oBACP,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;4BACf,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAA;4BAC7D,OAAM;wBACP,CAAC;wBACD,UAAU,GAAG,IAAI,CAAA;wBACjB,SAAQ;oBACT,CAAC;oBACD,IAAI,CAAC;wBACJ,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;wBACpC,IAAI,KAAK;4BAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBAC3B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACd,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;wBAC3D,OAAM;oBACP,CAAC;gBACF,CAAC;gBACD,IAAI,UAAU,EAAE,CAAC;oBAChB,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;wBAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAA;wBAC3E,OAAM;oBACP,CAAC;oBACD,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;oBAC7B,UAAU,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC,EACpF,8BAA8B,CAC9B,CAAA;oBACD,UAAU,CAAC,KAAK,EAAE,CAAA;gBACnB,CAAC;YACF,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;gBACzB,IAAI,UAAU,IAAI,cAAc;oBAAE,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;;oBACzD,MAAM,CAAC,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAA;YACvF,CAAC,CAAC,CAAA;YACF,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACrB,KAAK,EAAE,CAAA;gBACP,OAAM;YACP,CAAC;YACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACxD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAyB,CAAC,CAAC,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CACZ,IAAiB,EACjB,IAAyB,EACzB,MAAoB;QAEpB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,mBAAmB,CAC5B,wEAAwE,CACxE,CAAA;QACF,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CACzC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EACtC;YACC,GAAG,IAAI;YACP,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,EACD;YACC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrF,CACD,CAAA;IACF,CAAC;IAED,KAAK,CAAC,IAAI,CACT,OAAe,EACf,IAAe,EACf,IAAyB;QAEzB,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAChE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAmB;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAClC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAC3B,MAAM,CACN,CAAA;QACD,IACC,QAAQ,CAAC,EAAE,KAAK,KAAK;YACrB,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;YAClC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACvC,CAAC;YACF,MAAM,IAAI,kCAAkC,CAC3C,0MAA0M,CAC1M,CAAA;QACF,CAAC;QACD,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;YAClE,MAAM,IAAI,8BAA8B,CACvC,oIAAoI,CACpI,CAAA;QACF,CAAC;QACD,OAAO,QAAQ,CAAA;IAChB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,MAAmB;QACrE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAU,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;IAC9F,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,OAAO,CAAC,MAAoB;QACjC,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAmB,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAA;YAC3E,OAAO,GAAG,CAAC,EAAE,KAAK,IAAI,CAAA;QACvB,CAAC;QAAC,MAAM,CAAC;YACR,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,MAAM,CAAC,MAAM,CAAA;YACxC,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CACjB,SAAiB,EACjB,cAAsB,EACtB,MAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,SAAS,EAAE,6BAA6B,EAAE,MAAM,CAAC,CAAA;QACxF,IAAI,OAAgB,CAAA;QACpB,OAAO,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC;gBACJ,IAAI,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAAE,OAAM;gBAChE,OAAO,GAAG,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,GAAG,GAAG,CAAA;gBACb,IAAI,GAAG,YAAY,wBAAwB;oBAAE,MAAK;YACnD,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,GAAG,YAAY,wBAAwB;oBAAE,MAAK;gBAClD,MAAM,GAAG,CAAA;YACV,CAAC;QACF,CAAC;QACD,MAAM,IAAI,KAAK,CACd,sDAAsD,SAAS,OAC9D,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAC5D,EAAE,CACF,CAAA;IACF,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAoB;YACjD,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE;SACvE,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAA;QAClD,CAAC;IACF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QAC1B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAmB;YAChD,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE;SAClC,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC1C,CAAC;CACD;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,yEAAyE;AACzE,MAAM,UAAU;IACP,GAAG,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7B,SAAS,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE3C,IAAI,CAAC,KAAa;QACjB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACvD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,aAAa;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChC,OAAO,CAAC,CAAA;IACT,CAAC;CACD;AAED,0EAA0E;AAC1E,MAAM,SAAS;IAGI;IACA;IAHV,KAAK,CAA4B;IACzC,YACkB,EAAU,EACV,MAAkB;QADlB,OAAE,GAAF,EAAE,CAAQ;QACV,WAAM,GAAN,MAAM,CAAY;IACjC,CAAC;IACJ,IAAI;QACH,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC;YAAE,OAAM;QACxB,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IACD,KAAK;QACJ,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;IACvB,CAAC;CACD;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3B,OAAM;QACP,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,GAAa,EAAE,EAAE;YAChC,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3C,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAA;;gBAC3B,MAAM,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC,CAAA;QACD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;QAC5C,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B;IACnD,IAAI,MAAM,EAAE,MAAM,YAAY,KAAK;QAAE,OAAO,MAAM,CAAC,MAAM,CAAA;IACzD,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7F,CAAC;AAED,SAAS,cAAc,CAAC,MAA0B;IACjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM;YACV,OAAO,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAA;QAC7B,KAAK,OAAO;YACX,OAAO,SAAS,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAA;QAChD,KAAK,MAAM;YACV,OAAO,QAAQ,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAA;IACjE,CAAC;AACF,CAAC;AAED,wEAAwE;AACxE,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { type SandboxExecOptions, type SandboxExecResult } from '@namzu/sdk';
2
+ /**
3
+ * A per-sandbox HTTP worker client. The controller caches protocol support for
4
+ * that worker and gives every v2 command an identity before it can be admitted.
5
+ */
6
+ export declare class HttpWorkerClient {
7
+ private readonly controller;
8
+ constructor(baseUrl: string);
9
+ exec(command: string, argv: string[] | undefined, opts: SandboxExecOptions | undefined): Promise<SandboxExecResult>;
10
+ }
11
+ /**
12
+ * Compatibility entry point for focused consumers. Sandbox backends keep one
13
+ * {@link HttpWorkerClient} per remote sandbox so capability state is not shared
14
+ * across peers and is not re-probed for every command.
15
+ */
16
+ export declare function execViaHttpWorker(baseUrl: string, command: string, argv: string[] | undefined, opts: SandboxExecOptions | undefined): Promise<SandboxExecResult>;
17
+ //# sourceMappingURL=http-worker-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-worker-client.d.ts","sourceRoot":"","sources":["../../src/backends/http-worker-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAY,MAAM,YAAY,CAAA;AAmKtF;;;GAGG;AACH,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;gBAE1C,OAAO,EAAE,MAAM;IAsCrB,IAAI,CACT,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,iBAAiB,CAAC;CAG7B;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAC1B,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAE5B"}
@@ -0,0 +1,173 @@
1
+ import { withHint } from '@namzu/sdk';
2
+ import { RemoteCancellationUnsupportedError, RemoteCommandError, RemoteExecutionController, RemoteProtocolError, } from './remote-execution-controller.js';
3
+ function parseWorkerEvent(line) {
4
+ let parsed;
5
+ try {
6
+ parsed = JSON.parse(line);
7
+ }
8
+ catch (error) {
9
+ throw new RemoteProtocolError(`worker emitted malformed NDJSON: ${error instanceof Error ? error.message : String(error)}`);
10
+ }
11
+ if (!parsed || typeof parsed !== 'object') {
12
+ throw new RemoteProtocolError('worker emitted an event without an object body');
13
+ }
14
+ const event = parsed;
15
+ if ((event.type === 'stdout_delta' || event.type === 'stderr_delta') &&
16
+ typeof event.data === 'string') {
17
+ return event;
18
+ }
19
+ if (event.type === 'error' && typeof event.error === 'string')
20
+ return event;
21
+ if (event.type === 'result' &&
22
+ Number.isFinite(event.exitCode) &&
23
+ typeof event.timedOut === 'boolean' &&
24
+ Number.isFinite(event.durationMs) &&
25
+ (event.signal === undefined || typeof event.signal === 'string') &&
26
+ (event.stdoutTruncated === undefined || typeof event.stdoutTruncated === 'boolean') &&
27
+ (event.stderrTruncated === undefined || typeof event.stderrTruncated === 'boolean')) {
28
+ return event;
29
+ }
30
+ throw new RemoteProtocolError(`worker emitted an invalid ${String(event.type)} event`);
31
+ }
32
+ async function readExecution(baseUrl, executionId, command, argv, opts, transportSignal) {
33
+ let response;
34
+ try {
35
+ response = await fetch(`${baseUrl}/execute`, {
36
+ method: 'POST',
37
+ headers: { 'content-type': 'application/json' },
38
+ signal: transportSignal,
39
+ body: JSON.stringify({
40
+ ...(executionId ? { executionId } : {}),
41
+ command,
42
+ args: argv ?? [],
43
+ cwd: opts?.cwd,
44
+ env: opts?.env,
45
+ timeoutMs: opts?.timeout,
46
+ }),
47
+ });
48
+ }
49
+ catch (error) {
50
+ const cause = error instanceof Error ? error.cause : undefined;
51
+ const causeMessage = cause instanceof Error
52
+ ? `${cause.message}${cause.code ? ` (${cause.code})` : ''}`
53
+ : cause
54
+ ? String(cause)
55
+ : 'unknown';
56
+ throw withHint(new Error(`namzu-sandbox /execute fetch failed (baseUrl=${baseUrl}): ${error instanceof Error ? error.message : String(error)} — cause: ${causeMessage}`, { cause: error }), 'The worker was reachable when the sandbox started, so it has most likely exited, been killed, or become unreachable since. Check the container logs and runtime exit state.');
57
+ }
58
+ if (!response.ok || !response.body) {
59
+ throw new Error(`execute failed: HTTP ${response.status} ${await response.text()}`);
60
+ }
61
+ const decoder = new TextDecoder();
62
+ const reader = response.body.getReader();
63
+ let buffered = '';
64
+ let stdout = '';
65
+ let stderr = '';
66
+ let terminal;
67
+ let terminalCount = 0;
68
+ const consume = (rawLine) => {
69
+ if (!rawLine.trim())
70
+ return;
71
+ const event = parseWorkerEvent(rawLine);
72
+ if (terminalCount > 0) {
73
+ throw new RemoteProtocolError('worker emitted data after its terminal event');
74
+ }
75
+ if (event.type === 'stdout_delta') {
76
+ stdout += event.data;
77
+ opts?.onOutput?.({ stream: 'stdout', data: event.data });
78
+ return;
79
+ }
80
+ if (event.type === 'stderr_delta') {
81
+ stderr += event.data;
82
+ opts?.onOutput?.({ stream: 'stderr', data: event.data });
83
+ return;
84
+ }
85
+ terminalCount += 1;
86
+ if (event.type === 'error')
87
+ throw new RemoteCommandError(event.error);
88
+ terminal = event;
89
+ };
90
+ for (;;) {
91
+ const { value, done } = await reader.read();
92
+ if (done)
93
+ break;
94
+ buffered += decoder.decode(value, { stream: true });
95
+ let newline = buffered.indexOf('\n');
96
+ while (newline !== -1) {
97
+ consume(buffered.slice(0, newline));
98
+ buffered = buffered.slice(newline + 1);
99
+ newline = buffered.indexOf('\n');
100
+ }
101
+ }
102
+ buffered += decoder.decode();
103
+ if (buffered.trim())
104
+ consume(buffered);
105
+ if (terminalCount !== 1 || !terminal) {
106
+ throw new RemoteProtocolError('worker response ended without exactly one result event');
107
+ }
108
+ return {
109
+ exitCode: terminal.exitCode,
110
+ stdout,
111
+ stderr,
112
+ ...(terminal.signal ? { signal: terminal.signal } : {}),
113
+ timedOut: terminal.timedOut,
114
+ durationMs: terminal.durationMs,
115
+ ...(terminal.stdoutTruncated !== undefined
116
+ ? { stdoutTruncated: terminal.stdoutTruncated }
117
+ : {}),
118
+ ...(terminal.stderrTruncated !== undefined
119
+ ? { stderrTruncated: terminal.stderrTruncated }
120
+ : {}),
121
+ };
122
+ }
123
+ /**
124
+ * A per-sandbox HTTP worker client. The controller caches protocol support for
125
+ * that worker and gives every v2 command an identity before it can be admitted.
126
+ */
127
+ export class HttpWorkerClient {
128
+ controller;
129
+ constructor(baseUrl) {
130
+ const adapter = {
131
+ label: 'HTTP worker',
132
+ reserve: async (signal) => {
133
+ const response = await fetch(`${baseUrl}/executions/reserve`, {
134
+ method: 'POST',
135
+ signal,
136
+ });
137
+ if (response.status === 404) {
138
+ throw new RemoteCancellationUnsupportedError('This sandbox worker does not support the execution-cancellation lease protocol. Rebuild the worker image or standby-pool profile before passing SandboxExecOptions.signal; refusing rather than pretending cancellation is active.');
139
+ }
140
+ if (!response.ok) {
141
+ throw new Error(`execution reservation failed: HTTP ${response.status} ${await response.text()}`);
142
+ }
143
+ return await response.json();
144
+ },
145
+ cancel: async (executionId, signal) => {
146
+ const response = await fetch(`${baseUrl}/cancel`, {
147
+ method: 'POST',
148
+ headers: { 'content-type': 'application/json' },
149
+ body: JSON.stringify({ executionId }),
150
+ signal,
151
+ });
152
+ if (!response.ok) {
153
+ throw new Error(`cancel failed: HTTP ${response.status} ${await response.text()}`);
154
+ }
155
+ return await response.json();
156
+ },
157
+ execute: async (executionId, command, argv, opts, signal) => await readExecution(baseUrl, executionId, command, argv, opts, signal),
158
+ };
159
+ this.controller = new RemoteExecutionController(adapter);
160
+ }
161
+ async exec(command, argv, opts) {
162
+ return await this.controller.exec(command, argv, opts);
163
+ }
164
+ }
165
+ /**
166
+ * Compatibility entry point for focused consumers. Sandbox backends keep one
167
+ * {@link HttpWorkerClient} per remote sandbox so capability state is not shared
168
+ * across peers and is not re-probed for every command.
169
+ */
170
+ export async function execViaHttpWorker(baseUrl, command, argv, opts) {
171
+ return await new HttpWorkerClient(baseUrl).exec(command, argv, opts);
172
+ }
173
+ //# sourceMappingURL=http-worker-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-worker-client.js","sourceRoot":"","sources":["../../src/backends/http-worker-client.ts"],"names":[],"mappings":"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"}