@opengeni/runtime 0.2.2 → 0.2.3

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.
@@ -1343,13 +1343,15 @@ async function verifyStreamToken(secret, token, nowSeconds = Math.floor(Date.now
1343
1343
  // src/sandbox/display-stack.ts
1344
1344
  import { DESKTOP_STREAM_PORT as DESKTOP_STREAM_PORT4 } from "@opengeni/contracts";
1345
1345
  var STREAM_PORT = DESKTOP_STREAM_PORT4;
1346
- var DISPLAY_STACK_TIMEOUT_MS = 6e4;
1346
+ var DISPLAY_STACK_TIMEOUT_MS = 9e4;
1347
+ var PAINT_PROBE_ATTEMPTS = 150;
1348
+ var PAINT_PROBE_INTERVAL_S = 0.2;
1347
1349
  var DEFAULT_DESKTOP_GEOMETRY = { width: 1280, height: 800, dpi: 96 };
1348
1350
  var DisplayStackError = class extends Error {
1349
1351
  exitCode;
1350
1352
  stage;
1351
1353
  constructor(exitCode, output) {
1352
- const stage = exitCode === 11 ? "xvfb" : exitCode === 12 ? "x11vnc" : exitCode === 13 ? "websockify" : "unknown";
1354
+ const stage = exitCode === 11 ? "xvfb" : exitCode === 12 ? "x11vnc" : exitCode === 13 ? "websockify" : exitCode === 14 ? "paint" : "unknown";
1353
1355
  super(`desktop display stack failed at stage "${stage}" (exit ${exitCode})${output ? `:
1354
1356
  ${output}` : ""}`);
1355
1357
  this.name = "DisplayStackError";
@@ -1367,7 +1369,9 @@ function buildDisplayStackScript(options = {}) {
1367
1369
  const geometry = options.geometry ?? DEFAULT_DESKTOP_GEOMETRY;
1368
1370
  const port = options.port ?? DESKTOP_STREAM_PORT4;
1369
1371
  const env = `DESKTOP_W=${geometry.width} DESKTOP_H=${geometry.height} DESKTOP_DPI=${geometry.dpi} STREAM_PORT=${port}`;
1370
- return `if nc -z 127.0.0.1 ${port} >/dev/null 2>&1 && nc -z 127.0.0.1 5900 >/dev/null 2>&1; then echo "OPENGENI_DESKTOP_UP port=${port} geometry=${geometry.width}x${geometry.height} dpi=${geometry.dpi} (precheck)"; else mkdir -p /tmp/opengeni-desktop && flock -w 45 /tmp/opengeni-desktop/up.outer.lock env ${env} opengeni-desktop-up; fi`;
1372
+ const bringUp = `if nc -z 127.0.0.1 ${port} >/dev/null 2>&1 && nc -z 127.0.0.1 5900 >/dev/null 2>&1; then echo "OPENGENI_DESKTOP_UP port=${port} geometry=${geometry.width}x${geometry.height} dpi=${geometry.dpi} (precheck)"; else mkdir -p /tmp/opengeni-desktop && flock -w 45 /tmp/opengeni-desktop/up.outer.lock env ${env} opengeni-desktop-up; fi`;
1373
+ const paintProbe = `p=/tmp/opengeni-desktop/paint-probe.png; for i in $(seq 1 ${PAINT_PROBE_ATTEMPTS}); do if DISPLAY=:0 scrot -o "$p" >/dev/null 2>&1 && [ -s "$p" ]; then rm -f "$p"; break; fi; rm -f "$p"; if [ "$i" = "${PAINT_PROBE_ATTEMPTS}" ]; then echo "OPENGENI_DESKTOP_NOT_PAINTING scrot empty after warmup"; exit 14; fi; sleep ${PAINT_PROBE_INTERVAL_S}; done`;
1374
+ return `mkdir -p /tmp/opengeni-desktop; { ${bringUp} ; } && { ${paintProbe} ; }`;
1371
1375
  }
1372
1376
  function execResultOutput(result) {
1373
1377
  if (typeof result === "string") {
@@ -1382,6 +1386,9 @@ function execResultExitCode(result) {
1382
1386
  return typeof result.exitCode === "number" ? result.exitCode : null;
1383
1387
  }
1384
1388
  function inferExitFromOutput(output) {
1389
+ if (/OPENGENI_DESKTOP_NOT_PAINTING/.test(output)) {
1390
+ return 14;
1391
+ }
1385
1392
  if (/OPENGENI_DESKTOP_UP\b/.test(output)) {
1386
1393
  return 0;
1387
1394
  }
@@ -3475,4 +3482,4 @@ export {
3475
3482
  collectSandboxEnvironment2 as collectSandboxEnvironment,
3476
3483
  parseExposedPorts2 as parseExposedPorts
3477
3484
  };
3478
- //# sourceMappingURL=chunk-2PO56VAL.js.map
3485
+ //# sourceMappingURL=chunk-KNW7AMQB.js.map