labgate 0.5.39 → 0.5.42

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 (47) hide show
  1. package/README.md +132 -248
  2. package/dist/cli.js +9 -33
  3. package/dist/cli.js.map +1 -1
  4. package/dist/lib/config.d.ts +19 -3
  5. package/dist/lib/config.js +154 -75
  6. package/dist/lib/config.js.map +1 -1
  7. package/dist/lib/container.d.ts +11 -9
  8. package/dist/lib/container.js +749 -282
  9. package/dist/lib/container.js.map +1 -1
  10. package/dist/lib/dataset-mcp.js +2 -9
  11. package/dist/lib/dataset-mcp.js.map +1 -1
  12. package/dist/lib/display-mcp.d.ts +2 -2
  13. package/dist/lib/display-mcp.js +17 -38
  14. package/dist/lib/display-mcp.js.map +1 -1
  15. package/dist/lib/doctor.js +8 -0
  16. package/dist/lib/doctor.js.map +1 -1
  17. package/dist/lib/explorer-claude.js +36 -1
  18. package/dist/lib/explorer-claude.js.map +1 -1
  19. package/dist/lib/explorer-eval.js +3 -2
  20. package/dist/lib/explorer-eval.js.map +1 -1
  21. package/dist/lib/image-pull-lock.d.ts +18 -0
  22. package/dist/lib/image-pull-lock.js +167 -0
  23. package/dist/lib/image-pull-lock.js.map +1 -0
  24. package/dist/lib/init.js +22 -19
  25. package/dist/lib/init.js.map +1 -1
  26. package/dist/lib/slurm-cli-passthrough.d.ts +12 -2
  27. package/dist/lib/slurm-cli-passthrough.js +401 -143
  28. package/dist/lib/slurm-cli-passthrough.js.map +1 -1
  29. package/dist/lib/startup-stage-lock.d.ts +21 -0
  30. package/dist/lib/startup-stage-lock.js +196 -0
  31. package/dist/lib/startup-stage-lock.js.map +1 -0
  32. package/dist/lib/ui.d.ts +40 -0
  33. package/dist/lib/ui.html +4953 -3366
  34. package/dist/lib/ui.js +1771 -297
  35. package/dist/lib/ui.js.map +1 -1
  36. package/dist/lib/web-terminal-startup-readiness.d.ts +8 -0
  37. package/dist/lib/web-terminal-startup-readiness.js +29 -0
  38. package/dist/lib/web-terminal-startup-readiness.js.map +1 -0
  39. package/dist/lib/web-terminal.d.ts +51 -0
  40. package/dist/lib/web-terminal.js +171 -1
  41. package/dist/lib/web-terminal.js.map +1 -1
  42. package/dist/mcp-bundles/dataset-mcp.bundle.mjs +144 -93
  43. package/dist/mcp-bundles/display-mcp.bundle.mjs +35 -43
  44. package/dist/mcp-bundles/explorer-mcp.bundle.mjs +263 -146
  45. package/dist/mcp-bundles/results-mcp.bundle.mjs +39 -41
  46. package/dist/mcp-bundles/slurm-mcp.bundle.mjs +19 -21
  47. package/package.json +1 -1
package/dist/lib/init.js CHANGED
@@ -93,6 +93,11 @@ const CONFIG_WITH_COMMENTS = `{
93
93
  // Container image used for sandboxes
94
94
  "image": "${config_js_1.DEFAULT_CONFIG.image}",
95
95
 
96
+ // Optional persistent shared SIF cache path (for multi-user HPC).
97
+ // Leave empty to use the default under ~/.labgate/images.
98
+ // Env var LABGATE_IMAGES_DIR overrides this when set.
99
+ "images_dir": "${config_js_1.DEFAULT_CONFIG.images_dir || ''}",
100
+
96
101
  // Max session duration (hours). Container is killed after this.
97
102
  "session_timeout_hours": ${config_js_1.DEFAULT_CONFIG.session_timeout_hours},
98
103
 
@@ -114,7 +119,10 @@ const CONFIG_WITH_COMMENTS = `{
114
119
 
115
120
  "commands": {
116
121
  // Commands that cannot be executed inside the sandbox.
117
- "blacklist": ${JSON.stringify(config_js_1.DEFAULT_CONFIG.commands.blacklist, null, 6).replace(/\n/g, '\n ')}
122
+ "blacklist": ${JSON.stringify(config_js_1.DEFAULT_CONFIG.commands.blacklist, null, 6).replace(/\n/g, '\n ')},
123
+ // Commands to ensure inside Claude containers before startup.
124
+ // If a command is missing, LabGate tries a best-effort install (root only).
125
+ "ensure_commands": ${JSON.stringify(config_js_1.DEFAULT_CONFIG.commands.ensure_commands ?? [], null, 6).replace(/\n/g, '\n ')}
118
126
  },
119
127
 
120
128
  "network": {
@@ -146,9 +154,9 @@ const CONFIG_WITH_COMMENTS = `{
146
154
  },
147
155
 
148
156
  "headless": {
149
- // Claude headless mode cannot handle interactive tool permission prompts.
150
- // When enabled, headless runs pass --dangerously-skip-permissions.
151
- "claude_run_with_allowed_permissions": ${config_js_1.DEFAULT_CONFIG.headless?.claude_run_with_allowed_permissions ?? true},
157
+ // Deprecated safety flag (kept for backward compatibility).
158
+ // Runtime ignores this and keeps per-tool approvals enabled.
159
+ "claude_run_with_allowed_permissions": ${config_js_1.DEFAULT_CONFIG.headless?.claude_run_with_allowed_permissions ?? false},
152
160
  // Show "Continue in terminal via labgate continue ..." in the terminal footer.
153
161
  "continuation_in_other_terminals": ${config_js_1.DEFAULT_CONFIG.headless?.continuation_in_other_terminals ?? true},
154
162
  // Enable Git UI integration (Git DAG sidebar + footer branch switcher).
@@ -174,12 +182,6 @@ function ensureBundledIrisDatasetFiles(opts = {}) {
174
182
  });
175
183
  }
176
184
  }
177
- function stripJsonComments(text) {
178
- return text
179
- .split('\n')
180
- .filter((line) => !line.trimStart().startsWith('//'))
181
- .join('\n');
182
- }
183
185
  function bundledIrisDatasetEntry() {
184
186
  return {
185
187
  path: IRIS_SAMPLE_DATASET_DIR,
@@ -193,9 +195,7 @@ function ensureBundledIrisDatasetRegistration() {
193
195
  if (!(0, fs_1.existsSync)(configPath))
194
196
  return;
195
197
  try {
196
- const raw = (0, fs_1.readFileSync)(configPath, 'utf-8');
197
- const stripped = stripJsonComments(raw).trim();
198
- const obj = (stripped ? JSON.parse(stripped) : {});
198
+ const obj = (0, config_js_1.readRawConfigFile)(configPath);
199
199
  const datasets = Array.isArray(obj.datasets)
200
200
  ? obj.datasets
201
201
  : [];
@@ -214,11 +214,7 @@ function ensureBundledIrisDatasetRegistration() {
214
214
  return;
215
215
  datasets.push(bundledIrisDatasetEntry());
216
216
  obj.datasets = datasets;
217
- (0, fs_1.writeFileSync)(configPath, JSON.stringify(obj, null, 2) + '\n', {
218
- encoding: 'utf-8',
219
- mode: config_js_1.PRIVATE_FILE_MODE,
220
- });
221
- (0, config_js_1.ensurePrivateFile)(configPath);
217
+ (0, config_js_1.writeRawConfigFile)(obj, configPath);
222
218
  }
223
219
  catch (err) {
224
220
  log.warn(`Could not ensure bundled Iris dataset registration: ${err?.message ?? String(err)}`);
@@ -229,7 +225,14 @@ async function initConfig(opts) {
229
225
  // Create directories
230
226
  (0, config_js_1.ensurePrivateDir)(config_js_1.LABGATE_DIR);
231
227
  (0, config_js_1.ensurePrivateDir)((0, config_js_1.getSandboxHome)());
232
- (0, config_js_1.ensurePrivateDir)((0, config_js_1.getImagesDir)());
228
+ const imagesDir = (0, config_js_1.getImagesDir)();
229
+ if ((0, config_js_1.isImagesDirOverridden)()) {
230
+ // Shared image caches may be group-managed and should not be force-chmod'ed to 0700.
231
+ (0, fs_1.mkdirSync)(imagesDir, { recursive: true });
232
+ }
233
+ else {
234
+ (0, config_js_1.ensurePrivateDir)(imagesDir);
235
+ }
233
236
  (0, config_js_1.ensurePrivateDir)((0, config_js_1.getEmptyDir)());
234
237
  (0, config_js_1.ensurePrivateDir)((0, path_1.join)(config_js_1.LABGATE_DIR, 'logs'));
235
238
  if ((0, fs_1.existsSync)(configPath) && !opts.force) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,17 @@ export interface StageSlurmCliOptions {
16
16
  * When set, generated wrappers will prefer proxy execution via this socket.
17
17
  */
18
18
  hostProxySocketInContainer?: string | null;
19
+ /**
20
+ * Prefer host proxy execution over full binary/plugin staging when a proxy
21
+ * socket is configured and host SLURM commands are available.
22
+ */
23
+ preferHostProxy?: boolean;
19
24
  }
20
25
  export interface StageSlurmCliResult {
21
26
  ok: boolean;
27
+ mode: 'staged' | 'proxy-only';
28
+ reused: boolean;
29
+ hostCommands: string[];
22
30
  staged: string[];
23
31
  skipped: string[];
24
32
  errors: string[];
@@ -30,7 +38,9 @@ export interface StageSlurmCliResult {
30
38
  * in $HOME/.labgate-bin so they are available inside the container even when the image
31
39
  * does not ship with SLURM.
32
40
  *
33
- * This is intentionally simple: copy binaries + ldd libraries + slurm.conf (if found).
34
- * The host-side session launcher is responsible for bind-mounting /run/munge when present.
41
+ * When host proxy mode is preferred, this writes proxy-only wrappers without paying the
42
+ * binary/plugin copy cost on every startup. Otherwise it stages binaries + ldd libraries
43
+ * + slurm.conf (if found). The host-side session launcher is responsible for bind-mounting
44
+ * /run/munge when present.
35
45
  */
36
46
  export declare function stageSlurmCliPassthrough(options: StageSlurmCliOptions): StageSlurmCliResult;