labgate 0.5.37 → 0.5.39
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 +2 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/lib/automation-engine.d.ts +91 -0
- package/dist/lib/automation-engine.js +401 -0
- package/dist/lib/automation-engine.js.map +1 -0
- package/dist/lib/config.d.ts +33 -0
- package/dist/lib/config.js +137 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/container.d.ts +4 -1
- package/dist/lib/container.js +26 -10
- package/dist/lib/container.js.map +1 -1
- package/dist/lib/feedback.d.ts +13 -1
- package/dist/lib/feedback.js +9 -4
- package/dist/lib/feedback.js.map +1 -1
- package/dist/lib/init.js +5 -1
- package/dist/lib/init.js.map +1 -1
- package/dist/lib/results-mcp.js +390 -4
- package/dist/lib/results-mcp.js.map +1 -1
- package/dist/lib/results-store.d.ts +66 -0
- package/dist/lib/results-store.js +324 -6
- package/dist/lib/results-store.js.map +1 -1
- package/dist/lib/ui.d.ts +2 -0
- package/dist/lib/ui.html +16870 -8381
- package/dist/lib/ui.js +1650 -120
- package/dist/lib/ui.js.map +1 -1
- package/dist/lib/web-terminal.d.ts +4 -1
- package/dist/lib/web-terminal.js +33 -3
- package/dist/lib/web-terminal.js.map +1 -1
- package/dist/mcp-bundles/dataset-mcp.bundle.mjs +120 -3
- package/dist/mcp-bundles/display-mcp.bundle.mjs +94 -0
- package/dist/mcp-bundles/explorer-mcp.bundle.mjs +123 -4
- package/dist/mcp-bundles/results-mcp.bundle.mjs +850 -53
- package/dist/mcp-bundles/slurm-mcp.bundle.mjs +94 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { RuntimeType } from './runtime.js';
|
|
2
2
|
export type WebTerminalAgent = 'claude' | 'codex';
|
|
3
3
|
export type WebTerminalStatus = 'running' | 'exited' | 'failed';
|
|
4
|
+
export type WebTerminalPermissionMode = 'default' | 'dangerous';
|
|
4
5
|
export interface WebTerminalRecord {
|
|
5
6
|
id: string;
|
|
6
7
|
name?: string;
|
|
@@ -62,6 +63,8 @@ export declare function ensureTmuxAvailable(): Promise<{
|
|
|
62
63
|
error: string;
|
|
63
64
|
}>;
|
|
64
65
|
export declare function hasTmuxSession(sessionName: string): Promise<boolean>;
|
|
65
|
-
export declare function startTmuxWebTerminalSession(record: WebTerminalRecord, cliEntrypoint: string
|
|
66
|
+
export declare function startTmuxWebTerminalSession(record: WebTerminalRecord, cliEntrypoint: string, opts?: {
|
|
67
|
+
permissionMode?: WebTerminalPermissionMode;
|
|
68
|
+
}): Promise<void>;
|
|
66
69
|
export declare function killTmuxSession(sessionName: string): Promise<void>;
|
|
67
70
|
export declare function sanitizeExistingWebTerminalRecords(): void;
|
package/dist/lib/web-terminal.js
CHANGED
|
@@ -368,17 +368,32 @@ async function hasTmuxSession(sessionName) {
|
|
|
368
368
|
return false;
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
|
-
async function startTmuxWebTerminalSession(record, cliEntrypoint) {
|
|
371
|
+
async function startTmuxWebTerminalSession(record, cliEntrypoint, opts = {}) {
|
|
372
372
|
const tmuxBin = await getTmuxBinary();
|
|
373
373
|
clearWebTerminalExitInfo(record.id);
|
|
374
|
-
const
|
|
374
|
+
const permissionMode = opts.permissionMode === 'dangerous' ? 'dangerous' : 'default';
|
|
375
|
+
const launchEnv = [
|
|
375
376
|
`LABGATE_WEB_TERMINAL_ID=${shellQuote(record.id)}`,
|
|
377
|
+
];
|
|
378
|
+
if (record.agent === 'claude') {
|
|
379
|
+
// The web UI already has its own footer/status affordances; disable Claude
|
|
380
|
+
// statusLine rendering to keep the terminal canvas uncluttered.
|
|
381
|
+
launchEnv.push('LABGATE_DISABLE_CLAUDE_STATUSLINE=1');
|
|
382
|
+
}
|
|
383
|
+
const launchArgs = [
|
|
384
|
+
...launchEnv,
|
|
376
385
|
shellQuote(process.execPath),
|
|
377
386
|
shellQuote(cliEntrypoint),
|
|
378
387
|
shellQuote(record.agent),
|
|
379
388
|
shellQuote(record.workdir),
|
|
380
389
|
'--no-footer',
|
|
381
|
-
]
|
|
390
|
+
];
|
|
391
|
+
if (permissionMode === 'dangerous') {
|
|
392
|
+
launchArgs.push(record.agent === 'codex'
|
|
393
|
+
? '--dangerously-bypass-approvals-and-sandbox'
|
|
394
|
+
: '--dangerously-skip-permissions');
|
|
395
|
+
}
|
|
396
|
+
const launchInner = launchArgs.join(' ');
|
|
382
397
|
const exitsDir = shellQuote(getWebTerminalsDir());
|
|
383
398
|
const exitFile = shellQuote(getWebTerminalExitPath(record.id));
|
|
384
399
|
const launchScript = [
|
|
@@ -411,6 +426,21 @@ async function startTmuxWebTerminalSession(record, cliEntrypoint) {
|
|
|
411
426
|
throw err;
|
|
412
427
|
}
|
|
413
428
|
}
|
|
429
|
+
const windowOptions = [
|
|
430
|
+
// Keep full-screen TUIs in the primary buffer so browser/xterm scrollback
|
|
431
|
+
// remains usable in the web terminal.
|
|
432
|
+
['alternate-screen', 'off'],
|
|
433
|
+
];
|
|
434
|
+
for (const [key, value] of windowOptions) {
|
|
435
|
+
try {
|
|
436
|
+
await execFileAsync(tmuxBin, ['set-window-option', '-t', record.tmuxSession, key, value], { timeout: 10_000 });
|
|
437
|
+
}
|
|
438
|
+
catch (err) {
|
|
439
|
+
// If the command exited immediately, the session may already be gone.
|
|
440
|
+
if (!isMissingTmuxSessionError(err))
|
|
441
|
+
throw err;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
414
444
|
}
|
|
415
445
|
async function killTmuxSession(sessionName) {
|
|
416
446
|
const tmuxBin = await getTmuxBinary();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-terminal.js","sourceRoot":"","sources":["../../src/lib/web-terminal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"web-terminal.js","sourceRoot":"","sources":["../../src/lib/web-terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -30000,10 +30000,55 @@ var DEFAULT_CONFIG = {
|
|
|
30000
30000
|
enabled: true,
|
|
30001
30001
|
log_dir: "~/.labgate/logs"
|
|
30002
30002
|
},
|
|
30003
|
+
plugins: {
|
|
30004
|
+
files: true,
|
|
30005
|
+
datasets: false,
|
|
30006
|
+
results: false,
|
|
30007
|
+
charting: true,
|
|
30008
|
+
molecular: true,
|
|
30009
|
+
genomics: true,
|
|
30010
|
+
phylogenetics: true,
|
|
30011
|
+
network: true,
|
|
30012
|
+
slurm: true,
|
|
30013
|
+
explorer: true,
|
|
30014
|
+
automation: false
|
|
30015
|
+
},
|
|
30016
|
+
automation: {
|
|
30017
|
+
model: "claude-sonnet-4-5-20250929",
|
|
30018
|
+
system_prompt: "You are an automation assistant helping guide a coding agent. When the agent asks a question or waits for input, provide a concise, helpful response based on the context.",
|
|
30019
|
+
trigger_patterns: [
|
|
30020
|
+
"\\?\\s*$",
|
|
30021
|
+
"^>\\s*$",
|
|
30022
|
+
"Do you want to proceed",
|
|
30023
|
+
"Press Enter to continue",
|
|
30024
|
+
"Y/n\\]?\\s*$"
|
|
30025
|
+
],
|
|
30026
|
+
context_lines: 100,
|
|
30027
|
+
delay_ms: 3e3,
|
|
30028
|
+
max_turns: 20,
|
|
30029
|
+
max_tokens: 1024
|
|
30030
|
+
},
|
|
30003
30031
|
headless: {
|
|
30004
|
-
claude_run_with_allowed_permissions: true
|
|
30032
|
+
claude_run_with_allowed_permissions: true,
|
|
30033
|
+
continuation_in_other_terminals: true,
|
|
30034
|
+
git_integration: false
|
|
30005
30035
|
}
|
|
30006
30036
|
};
|
|
30037
|
+
var KNOWN_PLUGIN_IDS = Object.freeze(Object.keys(DEFAULT_CONFIG.plugins));
|
|
30038
|
+
var KNOWN_PLUGIN_ID_SET = new Set(KNOWN_PLUGIN_IDS);
|
|
30039
|
+
function isKnownPluginId(pluginId) {
|
|
30040
|
+
return KNOWN_PLUGIN_ID_SET.has(pluginId);
|
|
30041
|
+
}
|
|
30042
|
+
function sanitizePluginMap(rawPlugins) {
|
|
30043
|
+
const merged = { ...DEFAULT_CONFIG.plugins };
|
|
30044
|
+
if (!rawPlugins || typeof rawPlugins !== "object" || Array.isArray(rawPlugins)) return merged;
|
|
30045
|
+
for (const [pluginId, enabled] of Object.entries(rawPlugins)) {
|
|
30046
|
+
if (!isKnownPluginId(pluginId)) continue;
|
|
30047
|
+
if (typeof enabled !== "boolean") continue;
|
|
30048
|
+
merged[pluginId] = enabled;
|
|
30049
|
+
}
|
|
30050
|
+
return merged;
|
|
30051
|
+
}
|
|
30007
30052
|
var LABGATE_DIR = process.env.LABGATE_DIR ?? join(homedir(), ".labgate");
|
|
30008
30053
|
var CONFIG_FILE = "config.json";
|
|
30009
30054
|
var PRIVATE_DIR_MODE = 448;
|
|
@@ -30037,6 +30082,7 @@ function validateConfig(config2) {
|
|
|
30037
30082
|
const blockedPatterns = config2.filesystem?.blocked_patterns;
|
|
30038
30083
|
const extraPaths = config2.filesystem?.extra_paths;
|
|
30039
30084
|
const blacklist = config2.commands?.blacklist;
|
|
30085
|
+
const plugins = config2.plugins;
|
|
30040
30086
|
const headless = config2.headless;
|
|
30041
30087
|
if (!VALID_RUNTIMES.includes(config2.runtime)) {
|
|
30042
30088
|
errors.push(`Invalid runtime: "${config2.runtime}". Must be one of: ${VALID_RUNTIMES.join(", ")}`);
|
|
@@ -30062,11 +30108,28 @@ function validateConfig(config2) {
|
|
|
30062
30108
|
if (!Array.isArray(blacklist)) {
|
|
30063
30109
|
errors.push("commands.blacklist must be an array");
|
|
30064
30110
|
}
|
|
30111
|
+
if (plugins !== void 0) {
|
|
30112
|
+
if (!plugins || typeof plugins !== "object" || Array.isArray(plugins)) {
|
|
30113
|
+
errors.push("plugins must be an object");
|
|
30114
|
+
} else {
|
|
30115
|
+
for (const [pluginId, enabled] of Object.entries(plugins)) {
|
|
30116
|
+
if (!isKnownPluginId(pluginId)) {
|
|
30117
|
+
errors.push(`Unknown plugin id "${pluginId}"`);
|
|
30118
|
+
} else if (typeof enabled !== "boolean") {
|
|
30119
|
+
errors.push(`plugins.${pluginId} must be a boolean`);
|
|
30120
|
+
}
|
|
30121
|
+
}
|
|
30122
|
+
}
|
|
30123
|
+
}
|
|
30065
30124
|
if (headless !== void 0) {
|
|
30066
30125
|
if (!headless || typeof headless !== "object" || Array.isArray(headless)) {
|
|
30067
30126
|
errors.push("headless must be an object");
|
|
30068
30127
|
} else if (headless.claude_run_with_allowed_permissions !== void 0 && typeof headless.claude_run_with_allowed_permissions !== "boolean") {
|
|
30069
30128
|
errors.push("headless.claude_run_with_allowed_permissions must be a boolean");
|
|
30129
|
+
} else if (headless.continuation_in_other_terminals !== void 0 && typeof headless.continuation_in_other_terminals !== "boolean") {
|
|
30130
|
+
errors.push("headless.continuation_in_other_terminals must be a boolean");
|
|
30131
|
+
} else if (headless.git_integration !== void 0 && typeof headless.git_integration !== "boolean") {
|
|
30132
|
+
errors.push("headless.git_integration must be a boolean");
|
|
30070
30133
|
}
|
|
30071
30134
|
}
|
|
30072
30135
|
const mounts = Array.isArray(extraPaths) ? extraPaths : [];
|
|
@@ -30082,6 +30145,47 @@ function validateConfig(config2) {
|
|
|
30082
30145
|
errors.push(`Invalid mount mode "${mount.mode}" for path "${mount.path}". Must be "rw" or "ro"`);
|
|
30083
30146
|
}
|
|
30084
30147
|
}
|
|
30148
|
+
const automation = config2.automation;
|
|
30149
|
+
if (automation !== void 0) {
|
|
30150
|
+
if (!automation || typeof automation !== "object" || Array.isArray(automation)) {
|
|
30151
|
+
errors.push("automation must be an object");
|
|
30152
|
+
} else {
|
|
30153
|
+
if (typeof automation.model !== "string" || !automation.model) {
|
|
30154
|
+
errors.push("automation.model must be a non-empty string");
|
|
30155
|
+
}
|
|
30156
|
+
if (typeof automation.system_prompt !== "string") {
|
|
30157
|
+
errors.push("automation.system_prompt must be a string");
|
|
30158
|
+
}
|
|
30159
|
+
if (!Array.isArray(automation.trigger_patterns)) {
|
|
30160
|
+
errors.push("automation.trigger_patterns must be an array");
|
|
30161
|
+
} else {
|
|
30162
|
+
for (let i = 0; i < automation.trigger_patterns.length; i++) {
|
|
30163
|
+
const pat = automation.trigger_patterns[i];
|
|
30164
|
+
if (typeof pat !== "string") {
|
|
30165
|
+
errors.push(`automation.trigger_patterns[${i}] must be a string`);
|
|
30166
|
+
} else {
|
|
30167
|
+
try {
|
|
30168
|
+
new RegExp(pat);
|
|
30169
|
+
} catch {
|
|
30170
|
+
errors.push(`automation.trigger_patterns[${i}] is not a valid regex: "${pat}"`);
|
|
30171
|
+
}
|
|
30172
|
+
}
|
|
30173
|
+
}
|
|
30174
|
+
}
|
|
30175
|
+
if (typeof automation.context_lines !== "number" || automation.context_lines < 1) {
|
|
30176
|
+
errors.push("automation.context_lines must be a number >= 1");
|
|
30177
|
+
}
|
|
30178
|
+
if (typeof automation.delay_ms !== "number" || automation.delay_ms < 0) {
|
|
30179
|
+
errors.push("automation.delay_ms must be a non-negative number");
|
|
30180
|
+
}
|
|
30181
|
+
if (typeof automation.max_turns !== "number" || automation.max_turns < 1) {
|
|
30182
|
+
errors.push("automation.max_turns must be a number >= 1");
|
|
30183
|
+
}
|
|
30184
|
+
if (typeof automation.max_tokens !== "number" || automation.max_tokens < 1) {
|
|
30185
|
+
errors.push("automation.max_tokens must be a number >= 1");
|
|
30186
|
+
}
|
|
30187
|
+
}
|
|
30188
|
+
}
|
|
30085
30189
|
if (config2.slurm) {
|
|
30086
30190
|
if (typeof config2.slurm.poll_interval_seconds !== "number" || config2.slurm.poll_interval_seconds < 1) {
|
|
30087
30191
|
errors.push("slurm.poll_interval_seconds must be a number >= 1");
|
|
@@ -30168,9 +30272,22 @@ function loadConfig() {
|
|
|
30168
30272
|
enabled: raw.audit?.enabled ?? DEFAULT_CONFIG.audit.enabled,
|
|
30169
30273
|
log_dir: raw.audit?.log_dir ?? DEFAULT_CONFIG.audit.log_dir
|
|
30170
30274
|
},
|
|
30275
|
+
automation: {
|
|
30276
|
+
api_key: raw.automation?.api_key ?? DEFAULT_CONFIG.automation?.api_key,
|
|
30277
|
+
model: raw.automation?.model ?? DEFAULT_CONFIG.automation.model,
|
|
30278
|
+
system_prompt: raw.automation?.system_prompt ?? DEFAULT_CONFIG.automation.system_prompt,
|
|
30279
|
+
trigger_patterns: raw.automation?.trigger_patterns ?? [...DEFAULT_CONFIG.automation.trigger_patterns],
|
|
30280
|
+
context_lines: raw.automation?.context_lines ?? DEFAULT_CONFIG.automation.context_lines,
|
|
30281
|
+
delay_ms: raw.automation?.delay_ms ?? DEFAULT_CONFIG.automation.delay_ms,
|
|
30282
|
+
max_turns: raw.automation?.max_turns ?? DEFAULT_CONFIG.automation.max_turns,
|
|
30283
|
+
max_tokens: raw.automation?.max_tokens ?? DEFAULT_CONFIG.automation.max_tokens
|
|
30284
|
+
},
|
|
30171
30285
|
headless: {
|
|
30172
|
-
claude_run_with_allowed_permissions: raw.headless?.claude_run_with_allowed_permissions ?? DEFAULT_CONFIG.headless?.claude_run_with_allowed_permissions ?? true
|
|
30173
|
-
|
|
30286
|
+
claude_run_with_allowed_permissions: raw.headless?.claude_run_with_allowed_permissions ?? DEFAULT_CONFIG.headless?.claude_run_with_allowed_permissions ?? true,
|
|
30287
|
+
continuation_in_other_terminals: raw.headless?.continuation_in_other_terminals ?? DEFAULT_CONFIG.headless?.continuation_in_other_terminals ?? true,
|
|
30288
|
+
git_integration: raw.headless?.git_integration ?? DEFAULT_CONFIG.headless?.git_integration ?? false
|
|
30289
|
+
},
|
|
30290
|
+
plugins: sanitizePluginMap(raw.plugins)
|
|
30174
30291
|
};
|
|
30175
30292
|
const errors = validateConfig(config2);
|
|
30176
30293
|
if (errors.length > 0) {
|
|
@@ -29947,6 +29947,100 @@ import { dirname, join as join2 } from "path";
|
|
|
29947
29947
|
import { readFileSync, existsSync, chmodSync, mkdirSync } from "fs";
|
|
29948
29948
|
import { join } from "path";
|
|
29949
29949
|
import { homedir } from "os";
|
|
29950
|
+
var DEFAULT_CONFIG = {
|
|
29951
|
+
runtime: "auto",
|
|
29952
|
+
// Default sandbox image: includes python3 + basic build tools (git/make/g++).
|
|
29953
|
+
// Note: pip/venv are not included by default in Debian; users may still need a
|
|
29954
|
+
// custom image for richer Python workflows.
|
|
29955
|
+
image: "docker.io/library/node:20-bookworm",
|
|
29956
|
+
session_timeout_hours: 8,
|
|
29957
|
+
filesystem: {
|
|
29958
|
+
extra_paths: [],
|
|
29959
|
+
blocked_patterns: [
|
|
29960
|
+
"**/.ssh",
|
|
29961
|
+
"**/.gnupg",
|
|
29962
|
+
"**/.aws",
|
|
29963
|
+
"**/.config/gcloud",
|
|
29964
|
+
"**/.azure",
|
|
29965
|
+
"**/.env",
|
|
29966
|
+
"**/.netrc",
|
|
29967
|
+
"**/.git-credentials",
|
|
29968
|
+
"**/*.pem",
|
|
29969
|
+
"**/*.key",
|
|
29970
|
+
"**/id_rsa*",
|
|
29971
|
+
"**/id_ed25519*",
|
|
29972
|
+
"**/credentials*",
|
|
29973
|
+
"**/secrets*"
|
|
29974
|
+
]
|
|
29975
|
+
},
|
|
29976
|
+
datasets: [],
|
|
29977
|
+
commands: {
|
|
29978
|
+
blacklist: [
|
|
29979
|
+
"mount",
|
|
29980
|
+
"umount",
|
|
29981
|
+
"mkfs",
|
|
29982
|
+
"reboot",
|
|
29983
|
+
"shutdown"
|
|
29984
|
+
]
|
|
29985
|
+
},
|
|
29986
|
+
network: {
|
|
29987
|
+
mode: "host",
|
|
29988
|
+
allowed_domains: [
|
|
29989
|
+
"api.anthropic.com",
|
|
29990
|
+
"api.openai.com",
|
|
29991
|
+
"pypi.org",
|
|
29992
|
+
"files.pythonhosted.org",
|
|
29993
|
+
"conda.anaconda.org",
|
|
29994
|
+
"registry.npmjs.org",
|
|
29995
|
+
"github.com"
|
|
29996
|
+
]
|
|
29997
|
+
},
|
|
29998
|
+
slurm: {
|
|
29999
|
+
enabled: true,
|
|
30000
|
+
poll_interval_seconds: 5,
|
|
30001
|
+
sacct_lookback_hours: 24,
|
|
30002
|
+
mcp_server: true
|
|
30003
|
+
},
|
|
30004
|
+
audit: {
|
|
30005
|
+
enabled: true,
|
|
30006
|
+
log_dir: "~/.labgate/logs"
|
|
30007
|
+
},
|
|
30008
|
+
plugins: {
|
|
30009
|
+
files: true,
|
|
30010
|
+
datasets: false,
|
|
30011
|
+
results: false,
|
|
30012
|
+
charting: true,
|
|
30013
|
+
molecular: true,
|
|
30014
|
+
genomics: true,
|
|
30015
|
+
phylogenetics: true,
|
|
30016
|
+
network: true,
|
|
30017
|
+
slurm: true,
|
|
30018
|
+
explorer: true,
|
|
30019
|
+
automation: false
|
|
30020
|
+
},
|
|
30021
|
+
automation: {
|
|
30022
|
+
model: "claude-sonnet-4-5-20250929",
|
|
30023
|
+
system_prompt: "You are an automation assistant helping guide a coding agent. When the agent asks a question or waits for input, provide a concise, helpful response based on the context.",
|
|
30024
|
+
trigger_patterns: [
|
|
30025
|
+
"\\?\\s*$",
|
|
30026
|
+
"^>\\s*$",
|
|
30027
|
+
"Do you want to proceed",
|
|
30028
|
+
"Press Enter to continue",
|
|
30029
|
+
"Y/n\\]?\\s*$"
|
|
30030
|
+
],
|
|
30031
|
+
context_lines: 100,
|
|
30032
|
+
delay_ms: 3e3,
|
|
30033
|
+
max_turns: 20,
|
|
30034
|
+
max_tokens: 1024
|
|
30035
|
+
},
|
|
30036
|
+
headless: {
|
|
30037
|
+
claude_run_with_allowed_permissions: true,
|
|
30038
|
+
continuation_in_other_terminals: true,
|
|
30039
|
+
git_integration: false
|
|
30040
|
+
}
|
|
30041
|
+
};
|
|
30042
|
+
var KNOWN_PLUGIN_IDS = Object.freeze(Object.keys(DEFAULT_CONFIG.plugins));
|
|
30043
|
+
var KNOWN_PLUGIN_ID_SET = new Set(KNOWN_PLUGIN_IDS);
|
|
29950
30044
|
var LABGATE_DIR = process.env.LABGATE_DIR ?? join(homedir(), ".labgate");
|
|
29951
30045
|
var PRIVATE_DIR_MODE = 448;
|
|
29952
30046
|
var PRIVATE_FILE_MODE = 384;
|
|
@@ -7205,6 +7205,7 @@ var config_exports = {};
|
|
|
7205
7205
|
__export(config_exports, {
|
|
7206
7206
|
CONFIG_FILE: () => CONFIG_FILE,
|
|
7207
7207
|
DEFAULT_CONFIG: () => DEFAULT_CONFIG,
|
|
7208
|
+
KNOWN_PLUGIN_IDS: () => KNOWN_PLUGIN_IDS,
|
|
7208
7209
|
LABGATE_DIR: () => LABGATE_DIR,
|
|
7209
7210
|
PRIVATE_DIR_MODE: () => PRIVATE_DIR_MODE,
|
|
7210
7211
|
PRIVATE_FILE_MODE: () => PRIVATE_FILE_MODE,
|
|
@@ -7231,6 +7232,7 @@ __export(config_exports, {
|
|
|
7231
7232
|
getSessionsDir: () => getSessionsDir,
|
|
7232
7233
|
getSlurmDbPath: () => getSlurmDbPath,
|
|
7233
7234
|
getUiSocketPath: () => getUiSocketPath,
|
|
7235
|
+
isKnownPluginId: () => isKnownPluginId,
|
|
7234
7236
|
loadConfig: () => loadConfig,
|
|
7235
7237
|
loadEffectiveConfig: () => loadEffectiveConfig,
|
|
7236
7238
|
shouldClaudeHeadlessRunWithAllowedPermissions: () => shouldClaudeHeadlessRunWithAllowedPermissions,
|
|
@@ -7239,6 +7241,19 @@ __export(config_exports, {
|
|
|
7239
7241
|
import { readFileSync as readFileSync3, existsSync as existsSync3, chmodSync, mkdirSync } from "fs";
|
|
7240
7242
|
import { join as join3 } from "path";
|
|
7241
7243
|
import { homedir as homedir3 } from "os";
|
|
7244
|
+
function isKnownPluginId(pluginId) {
|
|
7245
|
+
return KNOWN_PLUGIN_ID_SET.has(pluginId);
|
|
7246
|
+
}
|
|
7247
|
+
function sanitizePluginMap(rawPlugins) {
|
|
7248
|
+
const merged = { ...DEFAULT_CONFIG.plugins };
|
|
7249
|
+
if (!rawPlugins || typeof rawPlugins !== "object" || Array.isArray(rawPlugins)) return merged;
|
|
7250
|
+
for (const [pluginId, enabled] of Object.entries(rawPlugins)) {
|
|
7251
|
+
if (!isKnownPluginId(pluginId)) continue;
|
|
7252
|
+
if (typeof enabled !== "boolean") continue;
|
|
7253
|
+
merged[pluginId] = enabled;
|
|
7254
|
+
}
|
|
7255
|
+
return merged;
|
|
7256
|
+
}
|
|
7242
7257
|
function ensurePrivateDir(path) {
|
|
7243
7258
|
mkdirSync(path, { recursive: true, mode: PRIVATE_DIR_MODE });
|
|
7244
7259
|
try {
|
|
@@ -7325,6 +7340,7 @@ function validateConfig(config2) {
|
|
|
7325
7340
|
const blockedPatterns = config2.filesystem?.blocked_patterns;
|
|
7326
7341
|
const extraPaths = config2.filesystem?.extra_paths;
|
|
7327
7342
|
const blacklist = config2.commands?.blacklist;
|
|
7343
|
+
const plugins = config2.plugins;
|
|
7328
7344
|
const headless = config2.headless;
|
|
7329
7345
|
if (!VALID_RUNTIMES2.includes(config2.runtime)) {
|
|
7330
7346
|
errors.push(`Invalid runtime: "${config2.runtime}". Must be one of: ${VALID_RUNTIMES2.join(", ")}`);
|
|
@@ -7350,11 +7366,28 @@ function validateConfig(config2) {
|
|
|
7350
7366
|
if (!Array.isArray(blacklist)) {
|
|
7351
7367
|
errors.push("commands.blacklist must be an array");
|
|
7352
7368
|
}
|
|
7369
|
+
if (plugins !== void 0) {
|
|
7370
|
+
if (!plugins || typeof plugins !== "object" || Array.isArray(plugins)) {
|
|
7371
|
+
errors.push("plugins must be an object");
|
|
7372
|
+
} else {
|
|
7373
|
+
for (const [pluginId, enabled] of Object.entries(plugins)) {
|
|
7374
|
+
if (!isKnownPluginId(pluginId)) {
|
|
7375
|
+
errors.push(`Unknown plugin id "${pluginId}"`);
|
|
7376
|
+
} else if (typeof enabled !== "boolean") {
|
|
7377
|
+
errors.push(`plugins.${pluginId} must be a boolean`);
|
|
7378
|
+
}
|
|
7379
|
+
}
|
|
7380
|
+
}
|
|
7381
|
+
}
|
|
7353
7382
|
if (headless !== void 0) {
|
|
7354
7383
|
if (!headless || typeof headless !== "object" || Array.isArray(headless)) {
|
|
7355
7384
|
errors.push("headless must be an object");
|
|
7356
7385
|
} else if (headless.claude_run_with_allowed_permissions !== void 0 && typeof headless.claude_run_with_allowed_permissions !== "boolean") {
|
|
7357
7386
|
errors.push("headless.claude_run_with_allowed_permissions must be a boolean");
|
|
7387
|
+
} else if (headless.continuation_in_other_terminals !== void 0 && typeof headless.continuation_in_other_terminals !== "boolean") {
|
|
7388
|
+
errors.push("headless.continuation_in_other_terminals must be a boolean");
|
|
7389
|
+
} else if (headless.git_integration !== void 0 && typeof headless.git_integration !== "boolean") {
|
|
7390
|
+
errors.push("headless.git_integration must be a boolean");
|
|
7358
7391
|
}
|
|
7359
7392
|
}
|
|
7360
7393
|
const mounts = Array.isArray(extraPaths) ? extraPaths : [];
|
|
@@ -7370,6 +7403,47 @@ function validateConfig(config2) {
|
|
|
7370
7403
|
errors.push(`Invalid mount mode "${mount.mode}" for path "${mount.path}". Must be "rw" or "ro"`);
|
|
7371
7404
|
}
|
|
7372
7405
|
}
|
|
7406
|
+
const automation = config2.automation;
|
|
7407
|
+
if (automation !== void 0) {
|
|
7408
|
+
if (!automation || typeof automation !== "object" || Array.isArray(automation)) {
|
|
7409
|
+
errors.push("automation must be an object");
|
|
7410
|
+
} else {
|
|
7411
|
+
if (typeof automation.model !== "string" || !automation.model) {
|
|
7412
|
+
errors.push("automation.model must be a non-empty string");
|
|
7413
|
+
}
|
|
7414
|
+
if (typeof automation.system_prompt !== "string") {
|
|
7415
|
+
errors.push("automation.system_prompt must be a string");
|
|
7416
|
+
}
|
|
7417
|
+
if (!Array.isArray(automation.trigger_patterns)) {
|
|
7418
|
+
errors.push("automation.trigger_patterns must be an array");
|
|
7419
|
+
} else {
|
|
7420
|
+
for (let i = 0; i < automation.trigger_patterns.length; i++) {
|
|
7421
|
+
const pat = automation.trigger_patterns[i];
|
|
7422
|
+
if (typeof pat !== "string") {
|
|
7423
|
+
errors.push(`automation.trigger_patterns[${i}] must be a string`);
|
|
7424
|
+
} else {
|
|
7425
|
+
try {
|
|
7426
|
+
new RegExp(pat);
|
|
7427
|
+
} catch {
|
|
7428
|
+
errors.push(`automation.trigger_patterns[${i}] is not a valid regex: "${pat}"`);
|
|
7429
|
+
}
|
|
7430
|
+
}
|
|
7431
|
+
}
|
|
7432
|
+
}
|
|
7433
|
+
if (typeof automation.context_lines !== "number" || automation.context_lines < 1) {
|
|
7434
|
+
errors.push("automation.context_lines must be a number >= 1");
|
|
7435
|
+
}
|
|
7436
|
+
if (typeof automation.delay_ms !== "number" || automation.delay_ms < 0) {
|
|
7437
|
+
errors.push("automation.delay_ms must be a non-negative number");
|
|
7438
|
+
}
|
|
7439
|
+
if (typeof automation.max_turns !== "number" || automation.max_turns < 1) {
|
|
7440
|
+
errors.push("automation.max_turns must be a number >= 1");
|
|
7441
|
+
}
|
|
7442
|
+
if (typeof automation.max_tokens !== "number" || automation.max_tokens < 1) {
|
|
7443
|
+
errors.push("automation.max_tokens must be a number >= 1");
|
|
7444
|
+
}
|
|
7445
|
+
}
|
|
7446
|
+
}
|
|
7373
7447
|
if (config2.slurm) {
|
|
7374
7448
|
if (typeof config2.slurm.poll_interval_seconds !== "number" || config2.slurm.poll_interval_seconds < 1) {
|
|
7375
7449
|
errors.push("slurm.poll_interval_seconds must be a number >= 1");
|
|
@@ -7456,9 +7530,22 @@ function loadConfig() {
|
|
|
7456
7530
|
enabled: raw.audit?.enabled ?? DEFAULT_CONFIG.audit.enabled,
|
|
7457
7531
|
log_dir: raw.audit?.log_dir ?? DEFAULT_CONFIG.audit.log_dir
|
|
7458
7532
|
},
|
|
7533
|
+
automation: {
|
|
7534
|
+
api_key: raw.automation?.api_key ?? DEFAULT_CONFIG.automation?.api_key,
|
|
7535
|
+
model: raw.automation?.model ?? DEFAULT_CONFIG.automation.model,
|
|
7536
|
+
system_prompt: raw.automation?.system_prompt ?? DEFAULT_CONFIG.automation.system_prompt,
|
|
7537
|
+
trigger_patterns: raw.automation?.trigger_patterns ?? [...DEFAULT_CONFIG.automation.trigger_patterns],
|
|
7538
|
+
context_lines: raw.automation?.context_lines ?? DEFAULT_CONFIG.automation.context_lines,
|
|
7539
|
+
delay_ms: raw.automation?.delay_ms ?? DEFAULT_CONFIG.automation.delay_ms,
|
|
7540
|
+
max_turns: raw.automation?.max_turns ?? DEFAULT_CONFIG.automation.max_turns,
|
|
7541
|
+
max_tokens: raw.automation?.max_tokens ?? DEFAULT_CONFIG.automation.max_tokens
|
|
7542
|
+
},
|
|
7459
7543
|
headless: {
|
|
7460
|
-
claude_run_with_allowed_permissions: raw.headless?.claude_run_with_allowed_permissions ?? DEFAULT_CONFIG.headless?.claude_run_with_allowed_permissions ?? true
|
|
7461
|
-
|
|
7544
|
+
claude_run_with_allowed_permissions: raw.headless?.claude_run_with_allowed_permissions ?? DEFAULT_CONFIG.headless?.claude_run_with_allowed_permissions ?? true,
|
|
7545
|
+
continuation_in_other_terminals: raw.headless?.continuation_in_other_terminals ?? DEFAULT_CONFIG.headless?.continuation_in_other_terminals ?? true,
|
|
7546
|
+
git_integration: raw.headless?.git_integration ?? DEFAULT_CONFIG.headless?.git_integration ?? false
|
|
7547
|
+
},
|
|
7548
|
+
plugins: sanitizePluginMap(raw.plugins)
|
|
7462
7549
|
};
|
|
7463
7550
|
const errors = validateConfig(config2);
|
|
7464
7551
|
if (errors.length > 0) {
|
|
@@ -7530,7 +7617,7 @@ function loadEffectiveConfig() {
|
|
|
7530
7617
|
sharedAuditDir: policy.shared_audit_dir
|
|
7531
7618
|
};
|
|
7532
7619
|
}
|
|
7533
|
-
var DEFAULT_CONFIG, LABGATE_DIR, CONFIG_FILE, PRIVATE_DIR_MODE, PRIVATE_FILE_MODE, VALID_RUNTIMES2, VALID_NETWORK_MODES2, VALID_MOUNT_MODES;
|
|
7620
|
+
var DEFAULT_CONFIG, KNOWN_PLUGIN_IDS, KNOWN_PLUGIN_ID_SET, LABGATE_DIR, CONFIG_FILE, PRIVATE_DIR_MODE, PRIVATE_FILE_MODE, VALID_RUNTIMES2, VALID_NETWORK_MODES2, VALID_MOUNT_MODES;
|
|
7534
7621
|
var init_config = __esm({
|
|
7535
7622
|
"src/lib/config.ts"() {
|
|
7536
7623
|
"use strict";
|
|
@@ -7592,10 +7679,42 @@ var init_config = __esm({
|
|
|
7592
7679
|
enabled: true,
|
|
7593
7680
|
log_dir: "~/.labgate/logs"
|
|
7594
7681
|
},
|
|
7682
|
+
plugins: {
|
|
7683
|
+
files: true,
|
|
7684
|
+
datasets: false,
|
|
7685
|
+
results: false,
|
|
7686
|
+
charting: true,
|
|
7687
|
+
molecular: true,
|
|
7688
|
+
genomics: true,
|
|
7689
|
+
phylogenetics: true,
|
|
7690
|
+
network: true,
|
|
7691
|
+
slurm: true,
|
|
7692
|
+
explorer: true,
|
|
7693
|
+
automation: false
|
|
7694
|
+
},
|
|
7695
|
+
automation: {
|
|
7696
|
+
model: "claude-sonnet-4-5-20250929",
|
|
7697
|
+
system_prompt: "You are an automation assistant helping guide a coding agent. When the agent asks a question or waits for input, provide a concise, helpful response based on the context.",
|
|
7698
|
+
trigger_patterns: [
|
|
7699
|
+
"\\?\\s*$",
|
|
7700
|
+
"^>\\s*$",
|
|
7701
|
+
"Do you want to proceed",
|
|
7702
|
+
"Press Enter to continue",
|
|
7703
|
+
"Y/n\\]?\\s*$"
|
|
7704
|
+
],
|
|
7705
|
+
context_lines: 100,
|
|
7706
|
+
delay_ms: 3e3,
|
|
7707
|
+
max_turns: 20,
|
|
7708
|
+
max_tokens: 1024
|
|
7709
|
+
},
|
|
7595
7710
|
headless: {
|
|
7596
|
-
claude_run_with_allowed_permissions: true
|
|
7711
|
+
claude_run_with_allowed_permissions: true,
|
|
7712
|
+
continuation_in_other_terminals: true,
|
|
7713
|
+
git_integration: false
|
|
7597
7714
|
}
|
|
7598
7715
|
};
|
|
7716
|
+
KNOWN_PLUGIN_IDS = Object.freeze(Object.keys(DEFAULT_CONFIG.plugins));
|
|
7717
|
+
KNOWN_PLUGIN_ID_SET = new Set(KNOWN_PLUGIN_IDS);
|
|
7599
7718
|
LABGATE_DIR = process.env.LABGATE_DIR ?? join3(homedir3(), ".labgate");
|
|
7600
7719
|
CONFIG_FILE = "config.json";
|
|
7601
7720
|
PRIVATE_DIR_MODE = 448;
|