labgate 0.5.32 → 0.5.34
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/README.md +3 -2
- package/dist/lib/config.d.ts +9 -0
- package/dist/lib/config.js +23 -4
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/container.js +29 -5
- package/dist/lib/container.js.map +1 -1
- package/dist/lib/explorer-claude.js +1 -0
- package/dist/lib/explorer-claude.js.map +1 -1
- package/dist/lib/init.js +6 -0
- package/dist/lib/init.js.map +1 -1
- package/dist/lib/ui.html +940 -175
- package/dist/lib/ui.js +385 -11
- package/dist/lib/ui.js.map +1 -1
- package/dist/lib/web-terminal.js +4 -3
- package/dist/lib/web-terminal.js.map +1 -1
- package/dist/mcp-bundles/dataset-mcp.bundle.mjs +14 -8
- package/dist/mcp-bundles/explorer-mcp.bundle.mjs +19 -8
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ LabGate runs your AI coding agent inside a sandboxed container with:
|
|
|
38
38
|
- **Scoped filesystem** — only your working directory and configured paths are visible
|
|
39
39
|
- **Credential blocking** — `.ssh`, `.aws`, `.env`, `.gnupg`, and other sensitive paths are hidden by default
|
|
40
40
|
- **Network policy** — configurable network modes (`host`, `filtered`, `none`)
|
|
41
|
-
- **Command blocking** — `
|
|
41
|
+
- **Command blocking** — high-risk system commands (for example `mount`, `umount`, `mkfs`, `reboot`) are blocked by default
|
|
42
42
|
- **Audit logging** — session start/stop and mount configuration logged to `~/.labgate/logs/`
|
|
43
43
|
- **Dashboard instructions editor** — view and update per-session `AGENTS.md` / `CLAUDE.md` from the UI
|
|
44
44
|
- **Session context injection** — LabGate prepends a temporary sandbox-mapping instruction block during active sessions
|
|
@@ -74,8 +74,9 @@ labgate config reset image
|
|
|
74
74
|
| `filesystem.blocked_patterns` | `.ssh, .aws, .env, ...` | Hidden from sandbox |
|
|
75
75
|
| `filesystem.extra_paths` | `[]` | Additional mounts |
|
|
76
76
|
| `network.mode` | `host` | `none`, `filtered`, or `host` |
|
|
77
|
-
| `commands.blacklist` | `
|
|
77
|
+
| `commands.blacklist` | `mount, umount, mkfs, reboot, shutdown` | Blocked commands |
|
|
78
78
|
| `slurm.enabled` | `true` | Enable SLURM CLI passthrough (`sbatch`, `squeue`, etc.) and job tracking |
|
|
79
|
+
| `headless.claude_run_with_allowed_permissions` | `true` | In Claude headless mode, auto-allow tool use via `--dangerously-skip-permissions` |
|
|
79
80
|
|
|
80
81
|
## Commands
|
|
81
82
|
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -66,6 +66,14 @@ export interface LabgateConfig {
|
|
|
66
66
|
enabled: boolean;
|
|
67
67
|
log_dir: string;
|
|
68
68
|
};
|
|
69
|
+
/** Headless mode defaults for non-interactive agent runs */
|
|
70
|
+
headless?: {
|
|
71
|
+
/**
|
|
72
|
+
* For Claude headless runs, pass --dangerously-skip-permissions because
|
|
73
|
+
* per-tool approval prompts are not interactive in this mode.
|
|
74
|
+
*/
|
|
75
|
+
claude_run_with_allowed_permissions?: boolean;
|
|
76
|
+
};
|
|
69
77
|
}
|
|
70
78
|
export declare const DEFAULT_CONFIG: LabgateConfig;
|
|
71
79
|
export declare const LABGATE_DIR: string;
|
|
@@ -94,6 +102,7 @@ export declare function getExplorerArtifactDir(experimentId: string, runId: stri
|
|
|
94
102
|
export declare function getExplorerCompareArtifactDir(experimentId: string): string;
|
|
95
103
|
export declare function getExplorerLockDir(experimentId: string): string;
|
|
96
104
|
export declare function getExplorerWorktreesDir(experimentId: string): string;
|
|
105
|
+
export declare function shouldClaudeHeadlessRunWithAllowedPermissions(config: LabgateConfig): boolean;
|
|
97
106
|
export declare function validateConfig(config: LabgateConfig): string[];
|
|
98
107
|
export declare function loadConfig(): LabgateConfig;
|
|
99
108
|
export interface EffectiveConfig {
|
package/dist/lib/config.js
CHANGED
|
@@ -23,6 +23,7 @@ exports.getExplorerArtifactDir = getExplorerArtifactDir;
|
|
|
23
23
|
exports.getExplorerCompareArtifactDir = getExplorerCompareArtifactDir;
|
|
24
24
|
exports.getExplorerLockDir = getExplorerLockDir;
|
|
25
25
|
exports.getExplorerWorktreesDir = getExplorerWorktreesDir;
|
|
26
|
+
exports.shouldClaudeHeadlessRunWithAllowedPermissions = shouldClaudeHeadlessRunWithAllowedPermissions;
|
|
26
27
|
exports.validateConfig = validateConfig;
|
|
27
28
|
exports.loadConfig = loadConfig;
|
|
28
29
|
exports.findLockedFieldConflicts = findLockedFieldConflicts;
|
|
@@ -60,11 +61,8 @@ exports.DEFAULT_CONFIG = {
|
|
|
60
61
|
datasets: [],
|
|
61
62
|
commands: {
|
|
62
63
|
blacklist: [
|
|
63
|
-
'ssh', 'scp', 'rsync',
|
|
64
|
-
'curl', 'wget',
|
|
65
64
|
'mount', 'umount',
|
|
66
|
-
'
|
|
67
|
-
'passwd', 'chown',
|
|
65
|
+
'mkfs',
|
|
68
66
|
'reboot', 'shutdown',
|
|
69
67
|
],
|
|
70
68
|
},
|
|
@@ -90,6 +88,9 @@ exports.DEFAULT_CONFIG = {
|
|
|
90
88
|
enabled: true,
|
|
91
89
|
log_dir: '~/.labgate/logs',
|
|
92
90
|
},
|
|
91
|
+
headless: {
|
|
92
|
+
claude_run_with_allowed_permissions: true,
|
|
93
|
+
},
|
|
93
94
|
};
|
|
94
95
|
// ── Paths ─────────────────────────────────────────────────
|
|
95
96
|
exports.LABGATE_DIR = process.env.LABGATE_DIR ?? (0, path_1.join)((0, os_1.homedir)(), '.labgate');
|
|
@@ -173,6 +174,9 @@ function getExplorerLockDir(experimentId) {
|
|
|
173
174
|
function getExplorerWorktreesDir(experimentId) {
|
|
174
175
|
return (0, path_1.join)(getExplorerWorktreesRootDir(), experimentId);
|
|
175
176
|
}
|
|
177
|
+
function shouldClaudeHeadlessRunWithAllowedPermissions(config) {
|
|
178
|
+
return config.headless?.claude_run_with_allowed_permissions !== false;
|
|
179
|
+
}
|
|
176
180
|
// ── Deep clone helper ──────────────────────────────────────
|
|
177
181
|
function cloneConfig(config) {
|
|
178
182
|
return JSON.parse(JSON.stringify(config));
|
|
@@ -188,6 +192,7 @@ function validateConfig(config) {
|
|
|
188
192
|
const blockedPatterns = config.filesystem?.blocked_patterns;
|
|
189
193
|
const extraPaths = config.filesystem?.extra_paths;
|
|
190
194
|
const blacklist = config.commands?.blacklist;
|
|
195
|
+
const headless = config.headless;
|
|
191
196
|
if (!VALID_RUNTIMES.includes(config.runtime)) {
|
|
192
197
|
errors.push(`Invalid runtime: "${config.runtime}". Must be one of: ${VALID_RUNTIMES.join(', ')}`);
|
|
193
198
|
}
|
|
@@ -212,6 +217,15 @@ function validateConfig(config) {
|
|
|
212
217
|
if (!Array.isArray(blacklist)) {
|
|
213
218
|
errors.push('commands.blacklist must be an array');
|
|
214
219
|
}
|
|
220
|
+
if (headless !== undefined) {
|
|
221
|
+
if (!headless || typeof headless !== 'object' || Array.isArray(headless)) {
|
|
222
|
+
errors.push('headless must be an object');
|
|
223
|
+
}
|
|
224
|
+
else if (headless.claude_run_with_allowed_permissions !== undefined &&
|
|
225
|
+
typeof headless.claude_run_with_allowed_permissions !== 'boolean') {
|
|
226
|
+
errors.push('headless.claude_run_with_allowed_permissions must be a boolean');
|
|
227
|
+
}
|
|
228
|
+
}
|
|
215
229
|
const mounts = Array.isArray(extraPaths) ? extraPaths : [];
|
|
216
230
|
for (const mount of mounts) {
|
|
217
231
|
if (!mount || typeof mount !== 'object') {
|
|
@@ -324,6 +338,11 @@ function loadConfig() {
|
|
|
324
338
|
enabled: raw.audit?.enabled ?? exports.DEFAULT_CONFIG.audit.enabled,
|
|
325
339
|
log_dir: raw.audit?.log_dir ?? exports.DEFAULT_CONFIG.audit.log_dir,
|
|
326
340
|
},
|
|
341
|
+
headless: {
|
|
342
|
+
claude_run_with_allowed_permissions: raw.headless?.claude_run_with_allowed_permissions ??
|
|
343
|
+
exports.DEFAULT_CONFIG.headless?.claude_run_with_allowed_permissions ??
|
|
344
|
+
true,
|
|
345
|
+
},
|
|
327
346
|
};
|
|
328
347
|
const errors = validateConfig(config);
|
|
329
348
|
if (errors.length > 0) {
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/container.js
CHANGED
|
@@ -1279,13 +1279,14 @@ function buildEntrypoint(agent) {
|
|
|
1279
1279
|
'}',
|
|
1280
1280
|
'',
|
|
1281
1281
|
];
|
|
1282
|
+
const preLaunchLines = [];
|
|
1282
1283
|
if (agent === 'claude') {
|
|
1284
|
+
preLaunchLines.push('labgate_ensure_git() {', ' if command -v git >/dev/null 2>&1; then', ' return 0', ' fi', ' if [ "$(id -u)" != "0" ]; then', ' echo "[labgate] Warning: git is missing in this container. Claude marketplace requires git." >&2', ' echo "[labgate] Configure an image with git installed (for example docker.io/library/node:20-bookworm)." >&2', ' return 0', ' fi', ' echo "[labgate] Installing git for Claude marketplace support..."', ' if command -v apt-get >/dev/null 2>&1; then', ' export DEBIAN_FRONTEND=noninteractive', ' apt-get update >/dev/null 2>&1 || return 0', ' apt-get install -y git >/dev/null 2>&1 || return 0', ' elif command -v apk >/dev/null 2>&1; then', ' apk add --no-cache git >/dev/null 2>&1 || return 0', ' elif command -v dnf >/dev/null 2>&1; then', ' dnf install -y git >/dev/null 2>&1 || return 0', ' elif command -v yum >/dev/null 2>&1; then', ' yum install -y git >/dev/null 2>&1 || return 0', ' elif command -v microdnf >/dev/null 2>&1; then', ' microdnf install -y git >/dev/null 2>&1 || return 0', ' fi', ' if ! command -v git >/dev/null 2>&1; then', ' echo "[labgate] Warning: git is still unavailable; Claude marketplace may stay disabled." >&2', ' fi', '}', 'labgate_ensure_git', '');
|
|
1283
1285
|
// Configure a LabGate status line in Claude Code with a dashboard URL.
|
|
1284
1286
|
lines.push('mkdir -p "$HOME/.claude"', 'cat > "$HOME/.claude/labgate-statusline.sh" <<\'EOF\'', '#!/usr/bin/env bash', 'status_input="$(cat || true)"', 'url="${LABGATE_DASHBOARD_URL:-}"', 'if [ -z "$url" ]; then', ' dashboard_link_file="${LABGATE_DASHBOARD_LINK_FILE:-$HOME/.labgate-dashboard-url}"', ' if [ -f "$dashboard_link_file" ]; then', ' url="$(cat "$dashboard_link_file" 2>/dev/null || true)"', ' fi', 'fi', 'if [ -z "$url" ]; then', ' url="http://localhost:7700"', 'fi', 'dataset_count="${LABGATE_DATASET_COUNT:-0}"', 'result_count="${LABGATE_RESULT_COUNT:-0}"', 'status_meta="$(printf "%s" "$status_input" | node -e \'', ' const fs = require("fs");', ' let raw = "";', ' try { raw = fs.readFileSync(0, "utf8"); } catch {}', ' let model = "Unknown";', ' let remaining = "";', ' try {', ' const parsed = JSON.parse(raw || "{}");', ' const modelObj = parsed && parsed.model ? parsed.model : null;', ' if (modelObj) model = modelObj.display_name || modelObj.id || model;', ' const ctx = parsed && parsed.context_window ? parsed.context_window : null;', ' if (ctx && Number.isFinite(ctx.remaining_percentage)) {', ' remaining = String(Math.max(0, Math.min(100, Math.round(ctx.remaining_percentage))));', ' } else if (ctx && Number.isFinite(ctx.used_percentage)) {', ' remaining = String(Math.max(0, Math.min(100, Math.round(100 - ctx.used_percentage))));', ' }', ' } catch {}', ' process.stdout.write(String(model) + "\\t" + String(remaining));', '\' 2>/dev/null || true)"', 'model_display="Unknown"', 'context_remaining=""', 'if [ -n "$status_meta" ]; then', ' IFS=$\'\\t\' read -r model_display context_remaining <<< "$status_meta"', 'fi', 'if [ -z "$model_display" ]; then', ' model_display="Unknown"', 'fi', 'context_note="context availability unknown"', 'if [[ "$context_remaining" =~ ^[0-9]+$ ]]; then', ' context_note="${context_remaining}% context available"', 'fi', 'results_file="${LABGATE_RESULTS_DB_PATH:-$HOME/.labgate/results.json}"', 'baseline_file="$HOME/.claude/labgate-statusline.results-baseline.${LABGATE_SESSION:-default}"', 'read_results_count() {', ' local path="${1:-}"', ' [ -n "$path" ] || return 0', ' [ -f "$path" ] || return 0', ' node -e \'', ' const fs = require("fs");', ' const p = process.argv[1];', ' try {', ' const parsed = JSON.parse(fs.readFileSync(p, "utf8"));', ' const rows = Array.isArray(parsed?.results) ? parsed.results : [];', ' process.stdout.write(String(rows.length));', ' } catch {}', ' \' "$path" 2>/dev/null || true', '}', 'current_result_count="$(read_results_count "$results_file")"', 'if ! [[ "$current_result_count" =~ ^[0-9]+$ ]]; then', ' current_result_count="$result_count"', 'fi', 'baseline_result_count=""', 'if [ -f "$baseline_file" ]; then', ' baseline_result_count="$(cat "$baseline_file" 2>/dev/null || true)"', 'fi', 'if ! [[ "$baseline_result_count" =~ ^[0-9]+$ ]]; then', ' baseline_result_count="$current_result_count"', ' printf "%s\\n" "$baseline_result_count" > "$baseline_file" 2>/dev/null || true', 'fi', 'result_delta=$(( current_result_count - baseline_result_count ))', 'if [ "$result_delta" -lt 0 ]; then', ' result_delta=0', 'fi', 'dataset_suffix="s"', 'result_suffix="s"', 'delta_suffix="s"', '[ "$dataset_count" = "1" ] && dataset_suffix=""', '[ "$current_result_count" = "1" ] && result_suffix=""', '[ "$result_delta" = "1" ] && delta_suffix=""', 'delta_note=""', 'if [ "$result_delta" -gt 0 ]; then', ' delta_note=" (${result_delta} new result${delta_suffix} since this session)"', 'fi', 'summary="model ${model_display} | ${context_note} | ${dataset_count} dataset${dataset_suffix} registered | ${current_result_count} result${result_suffix} registered${delta_note}"', 'if [[ "$url" =~ ^https?:// ]]; then', ' echo "LabGate | ${url} -- ${summary}"', 'else', ' echo "LabGate -- ${summary}"', 'fi', 'EOF', 'chmod +x "$HOME/.claude/labgate-statusline.sh"', 'node -e \'', ' const fs = require("fs");', ' const path = process.env.HOME + "/.claude/settings.json";', ' let settings = {};', ' try {', ' if (fs.existsSync(path)) settings = JSON.parse(fs.readFileSync(path, "utf8"));', ' } catch {}', ' settings.statusLine = {', ' type: "command",', ' command: "~/.claude/labgate-statusline.sh",', ' padding: 1,', ' };', ' fs.writeFileSync(path, JSON.stringify(settings, null, 2));', '\'', '');
|
|
1285
1287
|
}
|
|
1286
|
-
const preLaunchLines = [];
|
|
1287
1288
|
if (agent === 'codex') {
|
|
1288
|
-
preLaunchLines.push('labgate_ensure_ca_certificates() {', ' if [ -s /etc/ssl/certs/ca-certificates.crt ] || [ -s /etc/ssl/cert.pem ]; then', ' return 0', ' fi', ' if [ "$(id -u)" != "0" ]; then', ' echo "[labgate] Warning: missing CA certificates and no root access to install them; Codex login may fail." >&2', ' return 0', ' fi', ' echo "[labgate] Installing ca-certificates for Codex TLS..."', ' if command -v apt-get >/dev/null 2>&1; then', ' export DEBIAN_FRONTEND=noninteractive', ' apt-get update >/dev/null 2>&1 || return 0', ' apt-get install -y ca-certificates >/dev/null 2>&1 || return 0', ' update-ca-certificates >/dev/null 2>&1 || true', ' return 0', ' fi', ' if command -v apk >/dev/null 2>&1; then', ' apk add --no-cache ca-certificates >/dev/null 2>&1 || return 0', ' update-ca-certificates >/dev/null 2>&1 || true', ' return 0', ' fi', ' if command -v dnf >/dev/null 2>&1; then', ' dnf install -y ca-certificates >/dev/null 2>&1 || return 0', ' return 0', ' fi', ' if command -v yum >/dev/null 2>&1; then', ' yum install -y ca-certificates >/dev/null 2>&1 || return 0', ' return 0', ' fi', ' if command -v microdnf >/dev/null 2>&1; then', ' microdnf install -y ca-certificates >/dev/null 2>&1 || return 0', ' fi', '}', 'labgate_ensure_ca_certificates', 'if [ "${LABGATE_CODEX_PODMAN_DARWIN_WORKAROUND:-}" = "1" ]; then', ' if ! codex login status >/dev/null 2>&1; then', ' echo "[labgate] Starting Codex device-code login (Podman macOS callback workaround)..."', ' codex login --device-auth', ' fi', 'fi');
|
|
1289
|
+
preLaunchLines.push('labgate_ensure_ca_certificates() {', ' if [ -s /etc/ssl/certs/ca-certificates.crt ] || [ -s /etc/ssl/cert.pem ]; then', ' return 0', ' fi', ' if [ "$(id -u)" != "0" ]; then', ' echo "[labgate] Warning: missing CA certificates and no root access to install them; Codex login may fail." >&2', ' return 0', ' fi', ' echo "[labgate] Installing ca-certificates for Codex TLS..."', ' if command -v apt-get >/dev/null 2>&1; then', ' export DEBIAN_FRONTEND=noninteractive', ' apt-get update >/dev/null 2>&1 || return 0', ' apt-get install -y ca-certificates >/dev/null 2>&1 || return 0', ' update-ca-certificates >/dev/null 2>&1 || true', ' return 0', ' fi', ' if command -v apk >/dev/null 2>&1; then', ' apk add --no-cache ca-certificates >/dev/null 2>&1 || return 0', ' update-ca-certificates >/dev/null 2>&1 || true', ' return 0', ' fi', ' if command -v dnf >/dev/null 2>&1; then', ' dnf install -y ca-certificates >/dev/null 2>&1 || return 0', ' return 0', ' fi', ' if command -v yum >/dev/null 2>&1; then', ' yum install -y ca-certificates >/dev/null 2>&1 || return 0', ' return 0', ' fi', ' if command -v microdnf >/dev/null 2>&1; then', ' microdnf install -y ca-certificates >/dev/null 2>&1 || return 0', ' fi', '}', 'labgate_ensure_ca_certificates', 'if [ "${LABGATE_CODEX_PODMAN_DARWIN_WORKAROUND:-}" = "1" ] || [ "${LABGATE_CODEX_APPTAINER_REMOTE_DEVICE_AUTH:-}" = "1" ]; then', ' if ! codex login status >/dev/null 2>&1; then', ' if [ "${LABGATE_CODEX_PODMAN_DARWIN_WORKAROUND:-}" = "1" ]; then', ' echo "[labgate] Starting Codex device-code login (Podman macOS callback workaround)..."', ' else', ' echo "[labgate] Starting Codex device-code login (Apptainer remote login flow)..."', ' fi', ' if ! codex login --device-auth; then', ' echo "[labgate] Warning: Codex device-code login preflight failed; continuing with normal Codex startup." >&2', ' fi', ' fi', 'fi');
|
|
1289
1290
|
}
|
|
1290
1291
|
lines.push(`if ! command -v ${setup.bin} >/dev/null 2>&1; then`, ` ${setup.installer}`, 'fi', ...preLaunchLines, `echo "[labgate] Starting ${setup.bin} in /work"`, `exec ${setup.bin}`);
|
|
1291
1292
|
return lines.join('\n');
|
|
@@ -1315,6 +1316,21 @@ function osc52Copy(text) {
|
|
|
1315
1316
|
const tty = process.stderr.isTTY ? process.stderr : process.stdout;
|
|
1316
1317
|
tty.write(`\x1b]52;c;${encoded}\x07`);
|
|
1317
1318
|
}
|
|
1319
|
+
function supportsTerminalHyperlinks() {
|
|
1320
|
+
if (!(process.stderr.isTTY ?? false))
|
|
1321
|
+
return false;
|
|
1322
|
+
if (process.env.LABGATE_HYPERLINKS === '0')
|
|
1323
|
+
return false;
|
|
1324
|
+
if ((process.env.TERM || '').toLowerCase() === 'dumb')
|
|
1325
|
+
return false;
|
|
1326
|
+
return true;
|
|
1327
|
+
}
|
|
1328
|
+
function formatTerminalHyperlink(url) {
|
|
1329
|
+
if (!supportsTerminalHyperlinks())
|
|
1330
|
+
return url;
|
|
1331
|
+
const safe = String(url || '').replace(/[\u001b\u0007]/g, '');
|
|
1332
|
+
return `\u001b]8;;${safe}\u0007${url}\u001b]8;;\u0007`;
|
|
1333
|
+
}
|
|
1318
1334
|
const OAUTH_URL_DEDUPE_WINDOW_MS = 20_000;
|
|
1319
1335
|
let lastHandledOAuthUrl = '';
|
|
1320
1336
|
let lastHandledOAuthAt = 0;
|
|
@@ -1387,6 +1403,7 @@ function handleOAuthUrl(url, options) {
|
|
|
1387
1403
|
const normalizedUrl = normalizeClaudeOAuthUrl(url);
|
|
1388
1404
|
if (!normalizedUrl)
|
|
1389
1405
|
return;
|
|
1406
|
+
const displayUrl = formatTerminalHyperlink(normalizedUrl);
|
|
1390
1407
|
const now = Date.now();
|
|
1391
1408
|
if (normalizedUrl === lastHandledOAuthUrl && (now - lastHandledOAuthAt) < OAUTH_URL_DEDUPE_WINDOW_MS) {
|
|
1392
1409
|
return;
|
|
@@ -1396,7 +1413,7 @@ function handleOAuthUrl(url, options) {
|
|
|
1396
1413
|
if (options.isRemote) {
|
|
1397
1414
|
// SSH / headless: push URL to local clipboard via OSC 52 if supported.
|
|
1398
1415
|
osc52Copy(normalizedUrl);
|
|
1399
|
-
log.info(`Login URL:\n${
|
|
1416
|
+
log.info(`Login URL:\n${displayUrl}`);
|
|
1400
1417
|
log.info('Tried to copy URL via terminal clipboard (OSC 52).');
|
|
1401
1418
|
log.info('Open it in your local browser, then paste the code back here.');
|
|
1402
1419
|
return;
|
|
@@ -1412,7 +1429,7 @@ function handleOAuthUrl(url, options) {
|
|
|
1412
1429
|
}
|
|
1413
1430
|
catch {
|
|
1414
1431
|
log.warn('Could not auto-open browser. URL copied to clipboard (if available).');
|
|
1415
|
-
log.info(`Login URL:\n${
|
|
1432
|
+
log.info(`Login URL:\n${displayUrl}`);
|
|
1416
1433
|
}
|
|
1417
1434
|
return;
|
|
1418
1435
|
}
|
|
@@ -1424,7 +1441,7 @@ function handleOAuthUrl(url, options) {
|
|
|
1424
1441
|
catch {
|
|
1425
1442
|
osc52Copy(normalizedUrl);
|
|
1426
1443
|
log.warn('Could not auto-open browser. Tried clipboard copy via terminal.');
|
|
1427
|
-
log.info(`Login URL:\n${
|
|
1444
|
+
log.info(`Login URL:\n${displayUrl}`);
|
|
1428
1445
|
}
|
|
1429
1446
|
}
|
|
1430
1447
|
/**
|
|
@@ -1756,9 +1773,16 @@ async function startSession(session) {
|
|
|
1756
1773
|
(0, os_1.platform)() === 'darwin')
|
|
1757
1774
|
? ['--env', 'LABGATE_CODEX_PODMAN_DARWIN_WORKAROUND=1']
|
|
1758
1775
|
: [];
|
|
1776
|
+
const codexApptainerRemoteDeviceAuth = (runtime === 'apptainer' &&
|
|
1777
|
+
session.agent === 'codex' &&
|
|
1778
|
+
tokenEnv.length === 0 &&
|
|
1779
|
+
!canOpenBrowser())
|
|
1780
|
+
? ['--env', 'LABGATE_CODEX_APPTAINER_REMOTE_DEVICE_AUTH=1']
|
|
1781
|
+
: [];
|
|
1759
1782
|
const runtimeEnvArgs = [
|
|
1760
1783
|
...claudeEnvGuard,
|
|
1761
1784
|
...codexPodmanDarwinLoginWorkaround,
|
|
1785
|
+
...codexApptainerRemoteDeviceAuth,
|
|
1762
1786
|
...tokenEnv,
|
|
1763
1787
|
...(browserHook?.env ?? []),
|
|
1764
1788
|
];
|