labgate 0.5.11 → 0.5.13

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.
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stageSlurmCliPassthrough = stageSlurmCliPassthrough;
4
+ const child_process_1 = require("child_process");
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const config_js_1 = require("./config.js");
8
+ const DEFAULT_SLURM_COMMANDS = [
9
+ 'srun',
10
+ 'sbatch',
11
+ 'squeue',
12
+ 'sacct',
13
+ 'scancel',
14
+ 'sinfo',
15
+ 'scontrol',
16
+ ];
17
+ const SKIP_LIB_BASENAMES = new Set([
18
+ 'linux-vdso.so.1',
19
+ 'libc.so.6',
20
+ 'libpthread.so.0',
21
+ 'libdl.so.2',
22
+ 'librt.so.1',
23
+ 'libm.so.6',
24
+ 'libresolv.so.2',
25
+ 'libutil.so.1',
26
+ 'libgcc_s.so.1',
27
+ 'libstdc++.so.6',
28
+ ]);
29
+ function isExecutableFile(path) {
30
+ try {
31
+ const st = (0, fs_1.statSync)(path);
32
+ if (!st.isFile())
33
+ return false;
34
+ (0, fs_1.accessSync)(path, fs_1.constants.X_OK);
35
+ return true;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ function which(command, env) {
42
+ const pathValue = env.PATH ?? process.env.PATH ?? '';
43
+ if (!pathValue)
44
+ return null;
45
+ const parts = pathValue.split(path_1.delimiter).filter(Boolean);
46
+ for (const dir of parts) {
47
+ const candidate = (0, path_1.join)(dir, command);
48
+ if (isExecutableFile(candidate))
49
+ return candidate;
50
+ }
51
+ return null;
52
+ }
53
+ function parseLddPaths(output) {
54
+ const paths = [];
55
+ for (const raw of output.split('\n')) {
56
+ const line = raw.trim();
57
+ if (!line)
58
+ continue;
59
+ if (line.includes('=>')) {
60
+ const [, rhs] = line.split('=>', 2);
61
+ const rest = (rhs || '').trim();
62
+ if (!rest || rest.startsWith('not found'))
63
+ continue;
64
+ const p = rest.split(/\s+/)[0] || '';
65
+ if (p.startsWith('/'))
66
+ paths.push(p);
67
+ continue;
68
+ }
69
+ if (line.startsWith('/')) {
70
+ const p = line.split(/\s+/)[0] || '';
71
+ if (p.startsWith('/'))
72
+ paths.push(p);
73
+ }
74
+ }
75
+ return Array.from(new Set(paths));
76
+ }
77
+ function shouldCopyLib(libPath) {
78
+ const base = (0, path_1.basename)(libPath);
79
+ if (SKIP_LIB_BASENAMES.has(base))
80
+ return false;
81
+ if (base.startsWith('ld-linux'))
82
+ return false;
83
+ return true;
84
+ }
85
+ function copyFileBestEffort(src, dst) {
86
+ try {
87
+ (0, fs_1.copyFileSync)(src, dst);
88
+ try {
89
+ (0, fs_1.chmodSync)(dst, 0o644);
90
+ }
91
+ catch { /* ignore */ }
92
+ }
93
+ catch {
94
+ // Best effort
95
+ }
96
+ }
97
+ function resolveSlurmConf(commandPath, env) {
98
+ const candidates = [];
99
+ const envConf = String(env.SLURM_CONF || '').trim();
100
+ if (envConf)
101
+ candidates.push(envConf);
102
+ // Common distro paths
103
+ candidates.push('/etc/slurm/slurm.conf', '/etc/slurm-llnl/slurm.conf', '/etc/slurm.conf', '/usr/local/etc/slurm.conf');
104
+ // Heuristic: infer install prefix from command path (e.g. /opt/slurm/bin/squeue -> /opt/slurm/etc/slurm.conf)
105
+ if (commandPath) {
106
+ const prefix = (0, path_1.dirname)((0, path_1.dirname)(commandPath));
107
+ candidates.push((0, path_1.join)(prefix, 'etc', 'slurm.conf'), (0, path_1.join)(prefix, 'etc', 'slurm', 'slurm.conf'), (0, path_1.join)(prefix, 'etc', 'slurm-llnl', 'slurm.conf'));
108
+ }
109
+ for (const p of candidates) {
110
+ try {
111
+ if (p && (0, fs_1.existsSync)(p) && (0, fs_1.statSync)(p).isFile())
112
+ return p;
113
+ }
114
+ catch {
115
+ // ignore
116
+ }
117
+ }
118
+ return null;
119
+ }
120
+ function buildSlurmWrapperScript(cmd, stageRootInContainer) {
121
+ const real = `${stageRootInContainer}/bin/${cmd}`;
122
+ const lib = `${stageRootInContainer}/lib`;
123
+ const conf = `${stageRootInContainer}/etc/slurm.conf`;
124
+ return [
125
+ '#!/usr/bin/env bash',
126
+ 'set -euo pipefail',
127
+ `REAL="${real}"`,
128
+ `LIBDIR="${lib}"`,
129
+ `CONF="${conf}"`,
130
+ 'if [ ! -x "$REAL" ]; then',
131
+ ` echo "[labgate] SLURM CLI '${cmd}' is not staged in this sandbox." >&2`,
132
+ ' echo "[labgate] Fix: ensure SLURM is available on the host (e.g. login node), then restart the LabGate session." >&2',
133
+ ' exit 127',
134
+ 'fi',
135
+ 'if [ -d "$LIBDIR" ]; then',
136
+ ' export LD_LIBRARY_PATH="$LIBDIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"',
137
+ 'fi',
138
+ 'if [ -z "${SLURM_CONF:-}" ] && [ -f "$CONF" ]; then',
139
+ ' export SLURM_CONF="$CONF"',
140
+ 'fi',
141
+ 'exec "$REAL" "$@"',
142
+ '',
143
+ ].join('\n');
144
+ }
145
+ function tryExtractPluginDir(slurmConfText) {
146
+ for (const raw of slurmConfText.split('\n')) {
147
+ const line = raw.replace(/#.*$/, '').trim();
148
+ if (!line)
149
+ continue;
150
+ const m = line.match(/^PluginDir\s*=\s*(.+)\s*$/);
151
+ if (!m)
152
+ continue;
153
+ const value = (m[1] || '').trim();
154
+ if (!value)
155
+ return null;
156
+ // Slurm allows multiple dirs separated by ":"; prefer the first.
157
+ return value.split(':')[0].trim() || null;
158
+ }
159
+ return null;
160
+ }
161
+ function rewritePluginDir(slurmConfText, pluginDirInContainer) {
162
+ const out = [];
163
+ let replaced = false;
164
+ for (const raw of slurmConfText.split('\n')) {
165
+ if (!replaced) {
166
+ const stripped = raw.replace(/#.*$/, '');
167
+ if (/^\s*PluginDir\s*=/.test(stripped)) {
168
+ out.push(`PluginDir=${pluginDirInContainer}`);
169
+ replaced = true;
170
+ continue;
171
+ }
172
+ }
173
+ out.push(raw);
174
+ }
175
+ if (!replaced) {
176
+ out.push(`PluginDir=${pluginDirInContainer}`);
177
+ }
178
+ return out.join('\n');
179
+ }
180
+ /**
181
+ * Best-effort: stage host SLURM client commands into the sandbox HOME and install wrappers
182
+ * in $HOME/.labgate-bin so they are available inside the container even when the image
183
+ * does not ship with SLURM.
184
+ *
185
+ * This is intentionally simple: copy binaries + ldd libraries + slurm.conf (if found).
186
+ * The host-side session launcher is responsible for bind-mounting /run/munge when present.
187
+ */
188
+ function stageSlurmCliPassthrough(options) {
189
+ const env = options.env ?? process.env;
190
+ const commands = options.commands ?? [...DEFAULT_SLURM_COMMANDS];
191
+ const stageRoot = (0, path_1.join)(options.sandboxHome, '.labgate', 'slurm');
192
+ const binDir = (0, path_1.join)(stageRoot, 'bin');
193
+ const libDir = (0, path_1.join)(stageRoot, 'lib');
194
+ const etcDir = (0, path_1.join)(stageRoot, 'etc');
195
+ const wrapperDir = (0, path_1.join)(options.sandboxHome, '.labgate-bin');
196
+ const errors = [];
197
+ const staged = [];
198
+ const skipped = [];
199
+ try {
200
+ (0, config_js_1.ensurePrivateDir)((0, path_1.join)(options.sandboxHome, '.labgate'));
201
+ (0, config_js_1.ensurePrivateDir)(stageRoot);
202
+ (0, config_js_1.ensurePrivateDir)(binDir);
203
+ (0, config_js_1.ensurePrivateDir)(libDir);
204
+ (0, config_js_1.ensurePrivateDir)(etcDir);
205
+ (0, config_js_1.ensurePrivateDir)(wrapperDir);
206
+ }
207
+ catch (err) {
208
+ return {
209
+ ok: false,
210
+ staged: [],
211
+ skipped: commands,
212
+ errors: [`Failed to initialize SLURM stage directories: ${err?.message ?? String(err)}`],
213
+ slurmConfPath: null,
214
+ stageRoot,
215
+ };
216
+ }
217
+ // 1) Resolve host command paths and copy binaries
218
+ const hostPaths = new Map();
219
+ for (const cmd of commands) {
220
+ const hostPath = which(cmd, env);
221
+ if (!hostPath) {
222
+ skipped.push(cmd);
223
+ continue;
224
+ }
225
+ hostPaths.set(cmd, hostPath);
226
+ const target = (0, path_1.join)(binDir, cmd);
227
+ try {
228
+ (0, fs_1.copyFileSync)(hostPath, target);
229
+ // Strip any unexpected setuid/setgid bits from host binaries.
230
+ try {
231
+ (0, fs_1.chmodSync)(target, 0o755);
232
+ }
233
+ catch { /* ignore */ }
234
+ staged.push(cmd);
235
+ }
236
+ catch (err) {
237
+ skipped.push(cmd);
238
+ errors.push(`Failed to stage ${cmd} from ${hostPath}: ${err?.message ?? String(err)}`);
239
+ }
240
+ }
241
+ // 2) Stage shared libraries for staged commands (best effort)
242
+ const libsToCopy = new Set();
243
+ for (const cmd of staged) {
244
+ const hostPath = hostPaths.get(cmd);
245
+ if (!hostPath)
246
+ continue;
247
+ try {
248
+ const out = (0, child_process_1.execFileSync)('ldd', [hostPath], { encoding: 'utf-8' });
249
+ for (const lib of parseLddPaths(String(out || ''))) {
250
+ if (!shouldCopyLib(lib))
251
+ continue;
252
+ libsToCopy.add(lib);
253
+ }
254
+ }
255
+ catch {
256
+ // ldd may not be available or may fail; continue.
257
+ }
258
+ }
259
+ for (const lib of libsToCopy) {
260
+ const target = (0, path_1.join)(libDir, (0, path_1.basename)(lib));
261
+ if ((0, fs_1.existsSync)(target))
262
+ continue;
263
+ copyFileBestEffort(lib, target);
264
+ }
265
+ // 3) Stage slurm.conf (best effort)
266
+ const sampleCmd = hostPaths.get('squeue') ?? hostPaths.get('scontrol') ?? hostPaths.get('sbatch') ?? null;
267
+ const slurmConfPath = resolveSlurmConf(sampleCmd, env);
268
+ if (slurmConfPath) {
269
+ try {
270
+ const confText = (0, fs_1.readFileSync)(slurmConfPath, 'utf-8');
271
+ const pluginDir = tryExtractPluginDir(confText);
272
+ const stageRootInContainer = '/home/sandbox/.labgate/slurm';
273
+ const pluginDirInContainer = `${stageRootInContainer}/plugins`;
274
+ let rewritten = confText;
275
+ if (pluginDir && (0, fs_1.existsSync)(pluginDir)) {
276
+ try {
277
+ // Copy plugin directory tree into the sandbox; many clusters set PluginDir in slurm.conf.
278
+ (0, fs_1.cpSync)(pluginDir, (0, path_1.join)(stageRoot, 'plugins'), { recursive: true, force: true });
279
+ rewritten = rewritePluginDir(confText, pluginDirInContainer);
280
+ }
281
+ catch (err) {
282
+ errors.push(`Failed to stage SLURM plugins from ${pluginDir}: ${err?.message ?? String(err)}`);
283
+ // Keep the original config if we couldn't stage the plugins.
284
+ rewritten = confText;
285
+ }
286
+ }
287
+ (0, fs_1.writeFileSync)((0, path_1.join)(etcDir, 'slurm.conf'), rewritten, { encoding: 'utf-8', mode: 0o644 });
288
+ }
289
+ catch (err) {
290
+ errors.push(`Failed to stage slurm.conf from ${slurmConfPath}: ${err?.message ?? String(err)}`);
291
+ }
292
+ }
293
+ // 4) Install wrappers (for all requested commands).
294
+ // Even if we fail to stage the real binary, the wrapper provides a useful
295
+ // error message instead of "command not found" inside the sandbox.
296
+ const stageRootInContainer = '/home/sandbox/.labgate/slurm';
297
+ for (const cmd of commands) {
298
+ const wrapperPath = (0, path_1.join)(wrapperDir, cmd);
299
+ try {
300
+ const script = buildSlurmWrapperScript(cmd, stageRootInContainer);
301
+ (0, fs_1.writeFileSync)(wrapperPath, script, { encoding: 'utf-8', mode: 0o755 });
302
+ }
303
+ catch (err) {
304
+ errors.push(`Failed to write wrapper for ${cmd}: ${err?.message ?? String(err)}`);
305
+ }
306
+ }
307
+ // 5) Write a small manifest for debugging
308
+ try {
309
+ const manifest = {
310
+ staged_at: new Date().toISOString(),
311
+ commands: staged,
312
+ slurm_conf: slurmConfPath,
313
+ lib_count: libsToCopy.size,
314
+ notes: 'Host SLURM CLI staged by LabGate for in-container use.',
315
+ };
316
+ (0, fs_1.writeFileSync)((0, path_1.join)(stageRoot, 'manifest.json'), JSON.stringify(manifest, null, 2) + '\n', 'utf-8');
317
+ }
318
+ catch {
319
+ // ignore
320
+ }
321
+ return {
322
+ ok: staged.length > 0,
323
+ staged,
324
+ skipped,
325
+ errors,
326
+ slurmConfPath,
327
+ stageRoot,
328
+ };
329
+ }
330
+ //# sourceMappingURL=slurm-cli-passthrough.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slurm-cli-passthrough.js","sourceRoot":"","sources":["../../src/lib/slurm-cli-passthrough.ts"],"names":[],"mappings":"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"}
@@ -112,7 +112,7 @@ class DashboardIntegrationHarness {
112
112
  (0, fs_1.mkdirSync)(configDir, { recursive: true });
113
113
  (0, fs_1.writeFileSync)((0, path_1.join)(configDir, 'config.json'), JSON.stringify({
114
114
  runtime: 'apptainer',
115
- image: 'docker.io/library/node:20-slim',
115
+ image: 'docker.io/library/node:20-bookworm',
116
116
  session_timeout_hours: 1,
117
117
  filesystem: { extra_paths: [], blocked_patterns: [] },
118
118
  commands: { blacklist: [] },
@@ -1 +1 @@
1
- {"version":3,"file":"integration-harness.js","sourceRoot":"","sources":["../../../src/lib/test/integration-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integration-harness.js","sourceRoot":"","sources":["../../../src/lib/test/integration-harness.ts"],"names":[],"mappings":";;;AAwBA,0BAYC;AAgED,kCAWC;AA/GD,2BAA8E;AAC9E,2BAA4B;AAC5B,+BAAuC;AACvC,iDAAoD;AACpD,+BAAoC;AAoB7B,KAAK,UAAU,OAAO,CAC3B,QAAiC,EACjC,SAAS,GAAG,MAAM,EAClB,UAAU,GAAG,GAAG;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAA,mBAAY,GAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,IAAc,EAAE,GAAsB;IAC3E,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,EAAE;QAC7D,GAAG,EAAE,OAAO;QACZ,GAAG;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB,EAAE,SAAS,GAAG,KAAK;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,MAA0B;IAC1D,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO;IAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO;IAEnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAa,2BAA2B;IAC7B,OAAO,CAAS;IACzB,QAAQ,GAAG,EAAE,CAAC;IACd,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,CAAC,CAAC;IACT,GAAG,GAAsB,EAAE,CAAC;IAC5B,EAAE,GAAuB,IAAI,CAAC;IAC9B,WAAW,GAAG,EAAE,CAAC;IACjB,UAAU,GAAG,EAAE,CAAC;IACC,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;IAEjD,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,QAAQ,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEhD,IAAA,cAAS,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAA,cAAS,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,IAAA,cAAS,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAA,kBAAa,EACX,IAAA,WAAI,EAAC,SAAS,EAAE,aAAa,CAAC,EAC9B,IAAI,CAAC,SAAS,CACZ;YACE,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,oCAAoC;YAC3C,qBAAqB,EAAE,CAAC;YACxB,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;YACrD,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE;YAC9C,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACzB,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE;SACtD,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,EACR,OAAO,CACR,CAAC;QAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBzB,CAAC;QACE,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjD,IAAA,kBAAa,EAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACrD,IAAA,cAAS,EAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,GAAG,GAAG;YACT,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,IAAI,EAAE,GAAG,OAAO,GAAG,gBAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;SACxD,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,8BAA8B,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC;YACvG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC5B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,WAAW,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACrE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEhB,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAA,WAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAyB;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA0B;QACxC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,eAAe,EAAE;YACpE,OAAO,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqB,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAyB,EAAE,SAAS,GAAG,MAAM;QAChE,OAAO,OAAO,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;YAC5F,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM;QACxC,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,oBAAoB,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,IAAI,CAAC,WAAW;gBAClC,iBAAiB,EAAE,IAAI,CAAC,UAAU;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;QACnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,uBAAuB,EAAE;YAC5E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,IAAI,CAAC,WAAW;gBAClC,iBAAiB,EAAE,IAAI,CAAC,UAAU;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAmB,EAAE,SAAS,GAAG,MAAM;QAC9D,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;CACF;AAzMD,kEAyMC"}
package/dist/lib/ui.html CHANGED
@@ -2448,7 +2448,7 @@
2448
2448
  </div>
2449
2449
  <div class="field">
2450
2450
  <label for="image">Container Image</label>
2451
- <input type="text" id="image" placeholder="docker.io/library/node:20-slim">
2451
+ <input type="text" id="image" placeholder="docker.io/library/node:20-bookworm">
2452
2452
  </div>
2453
2453
  </div>
2454
2454
  </div>
@@ -29944,7 +29944,10 @@ import { join } from "path";
29944
29944
  import { homedir } from "os";
29945
29945
  var DEFAULT_CONFIG = {
29946
29946
  runtime: "auto",
29947
- image: "docker.io/library/node:20-slim",
29947
+ // Default sandbox image: includes python3 + basic build tools (git/make/g++).
29948
+ // Note: pip/venv are not included by default in Debian; users may still need a
29949
+ // custom image for richer Python workflows.
29950
+ image: "docker.io/library/node:20-bookworm",
29948
29951
  session_timeout_hours: 8,
29949
29952
  filesystem: {
29950
29953
  extra_paths: [],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "labgate",
3
- "version": "0.5.11",
3
+ "version": "0.5.13",
4
4
  "description": "Policy-controlled sandboxes for AI coding agents — https://labgate.dev",
5
5
  "homepage": "https://labgate.dev",
6
6
  "keywords": [