@opengeni/runtime 0.2.1 → 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.
- package/dist/{chunk-2PO56VAL.js → chunk-KNW7AMQB.js} +11 -4
- package/dist/chunk-KNW7AMQB.js.map +1 -0
- package/dist/index.d.ts +113 -177
- package/dist/index.js +371 -171
- package/dist/index.js.map +1 -1
- package/dist/sandbox/index.d.ts +6 -4
- package/dist/sandbox/index.js +1 -1
- package/package.json +5 -5
- package/src/context-compaction.ts +217 -348
- package/src/image-history.ts +149 -0
- package/src/index.ts +184 -60
- package/src/sandbox/display-stack.ts +61 -12
- package/src/sandbox-computer.ts +90 -18
- package/dist/chunk-2PO56VAL.js.map +0 -1
|
@@ -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 =
|
|
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
|
-
|
|
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-
|
|
3485
|
+
//# sourceMappingURL=chunk-KNW7AMQB.js.map
|