labgate 0.5.29 → 0.5.31
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 +6 -2
- package/dist/cli.js +101 -0
- package/dist/cli.js.map +1 -1
- package/dist/lib/container.d.ts +19 -0
- package/dist/lib/container.js +256 -59
- package/dist/lib/container.js.map +1 -1
- package/dist/lib/init.d.ts +1 -0
- package/dist/lib/init.js +68 -10
- package/dist/lib/init.js.map +1 -1
- package/dist/lib/results-mcp.d.ts +2 -2
- package/dist/lib/results-mcp.js +26 -4
- package/dist/lib/results-mcp.js.map +1 -1
- package/dist/lib/results-store.d.ts +1 -0
- package/dist/lib/results-store.js +50 -0
- package/dist/lib/results-store.js.map +1 -1
- package/dist/lib/runtime.d.ts +6 -0
- package/dist/lib/runtime.js +46 -19
- package/dist/lib/runtime.js.map +1 -1
- package/dist/lib/ui.d.ts +2 -0
- package/dist/lib/ui.html +7498 -3438
- package/dist/lib/ui.js +1555 -128
- package/dist/lib/ui.js.map +1 -1
- package/dist/lib/web-terminal.d.ts +13 -0
- package/dist/lib/web-terminal.js +126 -15
- package/dist/lib/web-terminal.js.map +1 -1
- package/dist/mcp-bundles/results-mcp.bundle.mjs +70 -3
- package/package.json +2 -2
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import type { RuntimeType } from './runtime.js';
|
|
1
2
|
export type WebTerminalAgent = 'claude' | 'codex';
|
|
2
3
|
export type WebTerminalStatus = 'running' | 'exited' | 'failed';
|
|
3
4
|
export interface WebTerminalRecord {
|
|
4
5
|
id: string;
|
|
6
|
+
name?: string;
|
|
5
7
|
agent: WebTerminalAgent;
|
|
8
|
+
runtime?: RuntimeType;
|
|
6
9
|
workdir: string;
|
|
7
10
|
node: string;
|
|
8
11
|
tmuxSession: string;
|
|
@@ -17,6 +20,7 @@ export interface WebTerminalExitInfo {
|
|
|
17
20
|
finishedAt: string;
|
|
18
21
|
}
|
|
19
22
|
export declare function isValidWebTerminalId(raw: string): boolean;
|
|
23
|
+
export declare function isValidWebTerminalName(raw: string): boolean;
|
|
20
24
|
export declare function getWebTerminalsDir(): string;
|
|
21
25
|
export declare function getWebTerminalRecordPath(id: string): string;
|
|
22
26
|
export declare function getWebTerminalExitPath(id: string): string;
|
|
@@ -25,6 +29,7 @@ export declare function tmuxSessionNameForWebTerminalId(id: string): string;
|
|
|
25
29
|
export declare function createWebTerminalRecord(input: {
|
|
26
30
|
id: string;
|
|
27
31
|
agent: WebTerminalAgent;
|
|
32
|
+
runtime?: RuntimeType;
|
|
28
33
|
workdir: string;
|
|
29
34
|
}): WebTerminalRecord;
|
|
30
35
|
export declare function writeWebTerminalRecord(record: WebTerminalRecord): void;
|
|
@@ -35,6 +40,14 @@ export declare function resolveWebTerminalRecord(idOrPrefix: string): {
|
|
|
35
40
|
record: WebTerminalRecord | null;
|
|
36
41
|
matches: WebTerminalRecord[];
|
|
37
42
|
};
|
|
43
|
+
export declare function renameWebTerminalRecord(id: string, nextNameRaw: string): {
|
|
44
|
+
ok: true;
|
|
45
|
+
record: WebTerminalRecord;
|
|
46
|
+
} | {
|
|
47
|
+
ok: false;
|
|
48
|
+
code: 'not_found' | 'invalid_name' | 'name_taken';
|
|
49
|
+
error: string;
|
|
50
|
+
};
|
|
38
51
|
export declare function updateWebTerminalRecordStatus(id: string, next: {
|
|
39
52
|
status: WebTerminalStatus;
|
|
40
53
|
exitCode?: number | null;
|
package/dist/lib/web-terminal.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isValidWebTerminalId = isValidWebTerminalId;
|
|
4
|
+
exports.isValidWebTerminalName = isValidWebTerminalName;
|
|
4
5
|
exports.getWebTerminalsDir = getWebTerminalsDir;
|
|
5
6
|
exports.getWebTerminalRecordPath = getWebTerminalRecordPath;
|
|
6
7
|
exports.getWebTerminalExitPath = getWebTerminalExitPath;
|
|
@@ -12,6 +13,7 @@ exports.clearWebTerminalExitInfo = clearWebTerminalExitInfo;
|
|
|
12
13
|
exports.readWebTerminalRecord = readWebTerminalRecord;
|
|
13
14
|
exports.listWebTerminalRecords = listWebTerminalRecords;
|
|
14
15
|
exports.resolveWebTerminalRecord = resolveWebTerminalRecord;
|
|
16
|
+
exports.renameWebTerminalRecord = renameWebTerminalRecord;
|
|
15
17
|
exports.updateWebTerminalRecordStatus = updateWebTerminalRecordStatus;
|
|
16
18
|
exports.readWebTerminalExitInfo = readWebTerminalExitInfo;
|
|
17
19
|
exports.getTmuxBinary = getTmuxBinary;
|
|
@@ -29,13 +31,25 @@ const config_js_1 = require("./config.js");
|
|
|
29
31
|
const execFileAsync = (0, util_1.promisify)(child_process_1.execFile);
|
|
30
32
|
const TMUX_BIN_OVERRIDE_ENV = 'LABGATE_TMUX_BIN';
|
|
31
33
|
const TMUX_BIN_CANDIDATES = ['tmux', '/opt/homebrew/bin/tmux', '/usr/local/bin/tmux', '/usr/bin/tmux'];
|
|
34
|
+
const WEB_TERMINAL_ID_RE = /^wt-[a-z0-9_-]{4,80}$/i;
|
|
35
|
+
const WEB_TERMINAL_NAME_RE = /^[a-z0-9](?:[a-z0-9._-]{0,63})$/i;
|
|
32
36
|
let cachedTmuxBinary = null;
|
|
33
37
|
function normalizeId(raw) {
|
|
34
38
|
return (raw || '').trim();
|
|
35
39
|
}
|
|
40
|
+
function normalizeName(raw) {
|
|
41
|
+
return (raw || '').trim();
|
|
42
|
+
}
|
|
43
|
+
function nameKey(raw) {
|
|
44
|
+
return normalizeName(raw).toLowerCase();
|
|
45
|
+
}
|
|
36
46
|
function isValidWebTerminalId(raw) {
|
|
37
47
|
const id = normalizeId(raw);
|
|
38
|
-
return
|
|
48
|
+
return WEB_TERMINAL_ID_RE.test(id);
|
|
49
|
+
}
|
|
50
|
+
function isValidWebTerminalName(raw) {
|
|
51
|
+
const name = normalizeName(raw);
|
|
52
|
+
return WEB_TERMINAL_NAME_RE.test(name);
|
|
39
53
|
}
|
|
40
54
|
function getWebTerminalsDir() {
|
|
41
55
|
return (0, path_1.join)(config_js_1.LABGATE_DIR, 'web-terminals');
|
|
@@ -58,6 +72,7 @@ function createWebTerminalRecord(input) {
|
|
|
58
72
|
return {
|
|
59
73
|
id: input.id,
|
|
60
74
|
agent: input.agent,
|
|
75
|
+
...(input.runtime ? { runtime: input.runtime } : {}),
|
|
61
76
|
workdir: input.workdir,
|
|
62
77
|
node: (0, os_1.hostname)(),
|
|
63
78
|
tmuxSession: tmuxSessionNameForWebTerminalId(input.id),
|
|
@@ -68,6 +83,41 @@ function createWebTerminalRecord(input) {
|
|
|
68
83
|
error: null,
|
|
69
84
|
};
|
|
70
85
|
}
|
|
86
|
+
function parseWebTerminalRecord(raw) {
|
|
87
|
+
if (!raw || typeof raw !== 'object')
|
|
88
|
+
return null;
|
|
89
|
+
const parsed = raw;
|
|
90
|
+
const id = normalizeId(String(parsed.id || ''));
|
|
91
|
+
if (!isValidWebTerminalId(id))
|
|
92
|
+
return null;
|
|
93
|
+
const rawName = typeof parsed.name === 'string' ? parsed.name : '';
|
|
94
|
+
const name = normalizeName(rawName);
|
|
95
|
+
const runtime = parsed.runtime === 'apptainer' || parsed.runtime === 'podman'
|
|
96
|
+
? parsed.runtime
|
|
97
|
+
: null;
|
|
98
|
+
return {
|
|
99
|
+
id,
|
|
100
|
+
...(name && isValidWebTerminalName(name) ? { name } : {}),
|
|
101
|
+
agent: parsed.agent,
|
|
102
|
+
...(runtime ? { runtime } : {}),
|
|
103
|
+
workdir: String(parsed.workdir || ''),
|
|
104
|
+
node: String(parsed.node || ''),
|
|
105
|
+
tmuxSession: String(parsed.tmuxSession || ''),
|
|
106
|
+
createdAt: String(parsed.createdAt || ''),
|
|
107
|
+
updatedAt: String(parsed.updatedAt || ''),
|
|
108
|
+
status: parsed.status,
|
|
109
|
+
exitCode: typeof parsed.exitCode === 'number'
|
|
110
|
+
? parsed.exitCode
|
|
111
|
+
: parsed.exitCode === null
|
|
112
|
+
? null
|
|
113
|
+
: null,
|
|
114
|
+
error: typeof parsed.error === 'string'
|
|
115
|
+
? parsed.error
|
|
116
|
+
: parsed.error === null
|
|
117
|
+
? null
|
|
118
|
+
: null,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
71
121
|
function writeWebTerminalRecord(record) {
|
|
72
122
|
ensureWebTerminalsDir();
|
|
73
123
|
const target = getWebTerminalRecordPath(record.id);
|
|
@@ -106,10 +156,7 @@ function readWebTerminalRecord(id) {
|
|
|
106
156
|
return null;
|
|
107
157
|
try {
|
|
108
158
|
const raw = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
109
|
-
|
|
110
|
-
if (!parsed || typeof parsed !== 'object')
|
|
111
|
-
return null;
|
|
112
|
-
return parsed;
|
|
159
|
+
return parseWebTerminalRecord(JSON.parse(raw));
|
|
113
160
|
}
|
|
114
161
|
catch {
|
|
115
162
|
return null;
|
|
@@ -123,8 +170,8 @@ function listWebTerminalRecords() {
|
|
|
123
170
|
if (!file.endsWith('.json'))
|
|
124
171
|
continue;
|
|
125
172
|
try {
|
|
126
|
-
const parsed = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(dir, file), 'utf-8'));
|
|
127
|
-
if (!parsed
|
|
173
|
+
const parsed = parseWebTerminalRecord(JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(dir, file), 'utf-8')));
|
|
174
|
+
if (!parsed)
|
|
128
175
|
continue;
|
|
129
176
|
out.push(parsed);
|
|
130
177
|
}
|
|
@@ -144,10 +191,58 @@ function resolveWebTerminalRecord(idOrPrefix) {
|
|
|
144
191
|
if (exact)
|
|
145
192
|
return { record: exact, matches: [exact] };
|
|
146
193
|
}
|
|
194
|
+
const queryNameKey = nameKey(query);
|
|
147
195
|
const all = listWebTerminalRecords();
|
|
148
|
-
const
|
|
196
|
+
const exactByName = all.filter((r) => nameKey(r.name || '') === queryNameKey);
|
|
197
|
+
if (exactByName.length === 1) {
|
|
198
|
+
return { record: exactByName[0], matches: exactByName };
|
|
199
|
+
}
|
|
200
|
+
const seen = new Set();
|
|
201
|
+
const matches = all.filter((r) => {
|
|
202
|
+
if (seen.has(r.id))
|
|
203
|
+
return false;
|
|
204
|
+
const byIdPrefix = r.id.startsWith(query);
|
|
205
|
+
const byNamePrefix = nameKey(r.name || '').startsWith(queryNameKey);
|
|
206
|
+
if (!byIdPrefix && !byNamePrefix)
|
|
207
|
+
return false;
|
|
208
|
+
seen.add(r.id);
|
|
209
|
+
return true;
|
|
210
|
+
});
|
|
149
211
|
return { record: matches.length === 1 ? matches[0] : null, matches };
|
|
150
212
|
}
|
|
213
|
+
function renameWebTerminalRecord(id, nextNameRaw) {
|
|
214
|
+
const existing = readWebTerminalRecord(id);
|
|
215
|
+
if (!existing) {
|
|
216
|
+
return { ok: false, code: 'not_found', error: 'Terminal session not found.' };
|
|
217
|
+
}
|
|
218
|
+
const nextName = normalizeName(nextNameRaw);
|
|
219
|
+
if (nextName && !isValidWebTerminalName(nextName)) {
|
|
220
|
+
return {
|
|
221
|
+
ok: false,
|
|
222
|
+
code: 'invalid_name',
|
|
223
|
+
error: 'Session name must match [a-zA-Z0-9][a-zA-Z0-9._-]{0,63}.',
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
if (nextName) {
|
|
227
|
+
const nextKey = nameKey(nextName);
|
|
228
|
+
for (const record of listWebTerminalRecords()) {
|
|
229
|
+
if (!record || record.id === existing.id)
|
|
230
|
+
continue;
|
|
231
|
+
if (nameKey(record.id) === nextKey || nameKey(record.name || '') === nextKey) {
|
|
232
|
+
return { ok: false, code: 'name_taken', error: 'Session name is already in use.' };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
const updated = {
|
|
237
|
+
...existing,
|
|
238
|
+
...(nextName ? { name: nextName } : {}),
|
|
239
|
+
updatedAt: new Date().toISOString(),
|
|
240
|
+
};
|
|
241
|
+
if (!nextName)
|
|
242
|
+
delete updated.name;
|
|
243
|
+
writeWebTerminalRecord(updated);
|
|
244
|
+
return { ok: true, record: updated };
|
|
245
|
+
}
|
|
151
246
|
function updateWebTerminalRecordStatus(id, next) {
|
|
152
247
|
const existing = readWebTerminalRecord(id);
|
|
153
248
|
if (!existing)
|
|
@@ -242,9 +337,17 @@ async function ensureTmuxAvailable() {
|
|
|
242
337
|
}
|
|
243
338
|
catch (err) {
|
|
244
339
|
const detail = err?.message ?? String(err);
|
|
340
|
+
const isMac = process.platform === 'darwin';
|
|
245
341
|
const guidance = [
|
|
246
342
|
'tmux is required but unavailable.',
|
|
247
343
|
`Detected error: ${detail}`,
|
|
344
|
+
...(isMac
|
|
345
|
+
? [
|
|
346
|
+
'macOS quick fix:',
|
|
347
|
+
' 1. Install tmux with Homebrew: `brew install tmux`',
|
|
348
|
+
' 2. Verify availability: `tmux -V`',
|
|
349
|
+
]
|
|
350
|
+
: []),
|
|
248
351
|
'HPC quick fixes:',
|
|
249
352
|
' 1. If your cluster uses environment modules: `module avail tmux` then `module load tmux`',
|
|
250
353
|
' 2. Verify availability: `tmux -V`',
|
|
@@ -289,14 +392,22 @@ async function startTmuxWebTerminalSession(record, cliEntrypoint) {
|
|
|
289
392
|
const shell = (process.env.SHELL || '/bin/bash').trim() || '/bin/bash';
|
|
290
393
|
const launch = `${shellQuote(shell)} -lc ${shellQuote(launchScript)}`;
|
|
291
394
|
await execFileAsync(tmuxBin, ['new-session', '-d', '-s', record.tmuxSession, '-c', record.workdir, launch], { timeout: 120_000 });
|
|
292
|
-
|
|
395
|
+
const sessionOptions = [
|
|
293
396
|
// Web terminal sessions should not render tmux status/footer lines.
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
397
|
+
['status', 'off'],
|
|
398
|
+
// Keep mouse wheel behavior intuitive: scroll terminal history instead of
|
|
399
|
+
// sending cursor-up/down events that cycle shell command history.
|
|
400
|
+
['mouse', 'on'],
|
|
401
|
+
];
|
|
402
|
+
for (const [key, value] of sessionOptions) {
|
|
403
|
+
try {
|
|
404
|
+
await execFileAsync(tmuxBin, ['set-option', '-t', record.tmuxSession, key, value], { timeout: 10_000 });
|
|
405
|
+
}
|
|
406
|
+
catch (err) {
|
|
407
|
+
// If the command exited immediately, the session may already be gone.
|
|
408
|
+
if (!isMissingTmuxSessionError(err))
|
|
409
|
+
throw err;
|
|
410
|
+
}
|
|
300
411
|
}
|
|
301
412
|
}
|
|
302
413
|
async function killTmuxSession(sessionName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-terminal.js","sourceRoot":"","sources":["../../src/lib/web-terminal.ts"],"names":[],"mappings":";;AA8CA,oDAGC;AAED,gDAEC;AAED,4DAEC;AAED,wDAEC;AAED,sDAEC;AAED,0EAGC;AAED,0DAkBC;AAED,wDAgBC;AAED,4DAOC;AAED,sDAYC;AAED,wDAgBC;AAED,4DAeC;AAED,sEAmBC;AAED,0DAiBC;AAqBD,sCAkCC;AAED,kDAiBC;AAED,wCAQC;AAED,kEAwCC;AAED,0CASC;AAED,gFAUC;AAnWD,2BASY;AACZ,+BAAqC;AACrC,2BAA8B;AAC9B,iDAAyC;AACzC,+BAAiC;AACjC,2CAAkG;AAElG,MAAM,aAAa,GAAG,IAAA,gBAAS,EAAC,wBAAQ,CAAC,CAAC;AAC1C,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACjD,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC;AACvG,IAAI,gBAAgB,GAAkB,IAAI,CAAC;AAuB3C,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,IAAA,WAAI,EAAC,uBAAW,EAAE,eAAe,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,wBAAwB,CAAC,EAAU;IACjD,OAAO,IAAA,WAAI,EAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,sBAAsB,CAAC,EAAU;IAC/C,OAAO,IAAA,WAAI,EAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;AACvD,CAAC;AAED,SAAgB,qBAAqB;IACnC,IAAA,4BAAgB,EAAC,kBAAkB,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,+BAA+B,CAAC,EAAU;IACxD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IACzE,OAAO,WAAW,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAIvC;IACC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,IAAA,aAAQ,GAAE;QAChB,WAAW,EAAE,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,SAAgB,sBAAsB,CAAC,MAAyB;IAC9D,qBAAqB,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;IAC1D,IAAI,CAAC;QACH,IAAA,kBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,6BAAiB,EAAE,CAAC,CAAC;QAC5G,IAAA,6BAAiB,EAAC,IAAI,CAAC,CAAC;QACxB,IAAA,eAAU,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzB,IAAA,6BAAiB,EAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC;gBAAE,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CAAC,EAAU;IACjD,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC;QACH,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC;YAAE,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,EAAU;IAC9C,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACvD,OAAO,MAA2B,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB;IACpC,qBAAqB,EAAE,CAAC;IACxB,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,IAAI,IAAI,IAAA,gBAAW,EAAC,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAsB,CAAC;YACvF,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;gBAAE,SAAS;YAC9F,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAgB,wBAAwB,CAAC,UAAkB;IAIzD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAEjD,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,GAAG,GAAG,sBAAsB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;AACvE,CAAC;AAED,SAAgB,6BAA6B,CAC3C,EAAU,EACV,IAIC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAsB;QACjC,GAAG,QAAQ;QACX,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ;QACzE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;QAC7D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IACF,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,uBAAuB,CAAC,EAAU;IAChD,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAA4B,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACxC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B,UAAU,EAAE,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,GAAQ;IAC/B,OAAO;QACL,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,KAAK,EAAE,OAAO;QACnB,GAAG,EAAE,KAAK,EAAE,MAAM;QAClB,GAAG,EAAE,KAAK,EAAE,MAAM;KACnB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,yBAAyB,CAAC,GAAQ;IACzC,OAAO,uCAAuC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,gBAAgB,GAAG,QAAQ,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,GAAG,qBAAqB,eAAe,QAAQ,mBAAmB,MAAM,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,mBAAmB,CAAC;IACpC,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,gBAAgB,GAAG,SAAS,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,SAAS,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,mBAAmB;IACvC,IAAI,CAAC;QACH,MAAM,aAAa,EAAE,CAAC;QACtB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG;YACf,mCAAmC;YACnC,mBAAmB,MAAM,EAAE;YAC3B,kBAAkB;YAClB,4FAA4F;YAC5F,qCAAqC;YACrC,2FAA2F;YAC3F,6CAA6C,qBAAqB,6CAA6C;SAChH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,WAAmB;IACtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;QACtC,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,MAAyB,EACzB,aAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IACtC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEpC,MAAM,WAAW,GAAG;QAClB,2BAA2B,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAClD,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5B,UAAU,CAAC,aAAa,CAAC;QACzB,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QACxB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;QAC1B,aAAa;KACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,MAAM,QAAQ,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG;QACnB,QAAQ;QACR,GAAG,WAAW,EAAE;QAChB,sBAAsB;QACtB,YAAY,QAAQ,EAAE;QACtB,yGAAyG,QAAQ,EAAE;QACnH,aAAa,QAAQ,sBAAsB;QAC3C,2BAA2B;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;IACvE,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;IACtE,MAAM,aAAa,CACjB,OAAO,EACP,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAC7E,EAAE,OAAO,EAAE,OAAO,EAAE,CACrB,CAAC;IACF,IAAI,CAAC;QACH,oEAAoE;QACpE,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/G,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,sEAAsE;QACtE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC;YAAE,MAAM,GAAG,CAAC;IACjD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,6EAA6E;QAC7E,IAAI,yBAAyB,CAAC,GAAG,CAAC;YAAE,OAAO;QAC3C,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAgB,kCAAkC;IAChD,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,IAAI,CAAC,IAAA,eAAU,EAAC,GAAG,CAAC;QAAE,OAAO;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAA,aAAQ,EAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAA,cAAS,EAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,IAAA,4BAAgB,EAAC,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAA,4BAAgB,EAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"web-terminal.js","sourceRoot":"","sources":["../../src/lib/web-terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -29963,6 +29963,9 @@ function ensurePrivateFile(path) {
|
|
|
29963
29963
|
} catch {
|
|
29964
29964
|
}
|
|
29965
29965
|
}
|
|
29966
|
+
function getSandboxHome() {
|
|
29967
|
+
return join(LABGATE_DIR, "ai-home");
|
|
29968
|
+
}
|
|
29966
29969
|
function getResultsDbPath() {
|
|
29967
29970
|
return join(LABGATE_DIR, "results.json");
|
|
29968
29971
|
}
|
|
@@ -30036,10 +30039,21 @@ function buildSearchText(result) {
|
|
|
30036
30039
|
function sortByUpdatedDesc(items) {
|
|
30037
30040
|
return [...items].sort((a, b) => b.updated_at.localeCompare(a.updated_at));
|
|
30038
30041
|
}
|
|
30042
|
+
function countParsedResults(raw) {
|
|
30043
|
+
try {
|
|
30044
|
+
const parsed = JSON.parse(raw || "{}");
|
|
30045
|
+
return Array.isArray(parsed?.results) ? parsed.results.length : 0;
|
|
30046
|
+
} catch {
|
|
30047
|
+
return 0;
|
|
30048
|
+
}
|
|
30049
|
+
}
|
|
30039
30050
|
var ResultsStore = class {
|
|
30040
30051
|
dbPath;
|
|
30041
30052
|
constructor(dbPath = getResultsDbPath()) {
|
|
30042
30053
|
this.dbPath = dbPath;
|
|
30054
|
+
if (dbPath === getResultsDbPath()) {
|
|
30055
|
+
this.migrateLegacySandboxResultsIfNeeded();
|
|
30056
|
+
}
|
|
30043
30057
|
this.ensureFile();
|
|
30044
30058
|
}
|
|
30045
30059
|
getPath() {
|
|
@@ -30186,6 +30200,39 @@ var ResultsStore = class {
|
|
|
30186
30200
|
this.writeFile(file2);
|
|
30187
30201
|
return true;
|
|
30188
30202
|
}
|
|
30203
|
+
migrateLegacySandboxResultsIfNeeded() {
|
|
30204
|
+
const legacyPath = join2(getSandboxHome(), ".labgate", "results.json");
|
|
30205
|
+
if (!legacyPath || legacyPath === this.dbPath) return;
|
|
30206
|
+
if (!existsSync2(legacyPath)) return;
|
|
30207
|
+
let legacyRaw = "";
|
|
30208
|
+
try {
|
|
30209
|
+
legacyRaw = readFileSync2(legacyPath, "utf-8");
|
|
30210
|
+
} catch {
|
|
30211
|
+
return;
|
|
30212
|
+
}
|
|
30213
|
+
if (countParsedResults(legacyRaw) === 0) return;
|
|
30214
|
+
if (existsSync2(this.dbPath)) {
|
|
30215
|
+
try {
|
|
30216
|
+
const currentRaw = readFileSync2(this.dbPath, "utf-8");
|
|
30217
|
+
if (countParsedResults(currentRaw) > 0) return;
|
|
30218
|
+
} catch {
|
|
30219
|
+
}
|
|
30220
|
+
}
|
|
30221
|
+
try {
|
|
30222
|
+
ensurePrivateDir(dirname(this.dbPath));
|
|
30223
|
+
const normalizedRaw = legacyRaw.trimEnd();
|
|
30224
|
+
writeFileSync(
|
|
30225
|
+
this.dbPath,
|
|
30226
|
+
(normalizedRaw || JSON.stringify({ version: 1, results: [] }, null, 2)) + "\n",
|
|
30227
|
+
{
|
|
30228
|
+
encoding: "utf-8",
|
|
30229
|
+
mode: PRIVATE_FILE_MODE
|
|
30230
|
+
}
|
|
30231
|
+
);
|
|
30232
|
+
ensurePrivateFile(this.dbPath);
|
|
30233
|
+
} catch {
|
|
30234
|
+
}
|
|
30235
|
+
}
|
|
30189
30236
|
ensureFile() {
|
|
30190
30237
|
ensurePrivateDir(dirname(this.dbPath));
|
|
30191
30238
|
if (!existsSync2(this.dbPath)) {
|
|
@@ -30269,8 +30316,28 @@ function asError(text) {
|
|
|
30269
30316
|
isError: true
|
|
30270
30317
|
};
|
|
30271
30318
|
}
|
|
30272
|
-
|
|
30273
|
-
|
|
30319
|
+
function parseDbPathFromArgs(args) {
|
|
30320
|
+
let dbPath;
|
|
30321
|
+
for (let i = 0; i < args.length; i++) {
|
|
30322
|
+
const arg = args[i];
|
|
30323
|
+
if (arg === "--db") {
|
|
30324
|
+
const next = args[i + 1];
|
|
30325
|
+
if (!next) throw new Error("Missing value for --db");
|
|
30326
|
+
dbPath = next;
|
|
30327
|
+
i++;
|
|
30328
|
+
continue;
|
|
30329
|
+
}
|
|
30330
|
+
if (arg.startsWith("--db=")) {
|
|
30331
|
+
const inline = arg.slice("--db=".length);
|
|
30332
|
+
if (!inline) throw new Error("Missing value for --db");
|
|
30333
|
+
dbPath = inline;
|
|
30334
|
+
}
|
|
30335
|
+
}
|
|
30336
|
+
return dbPath;
|
|
30337
|
+
}
|
|
30338
|
+
async function main(args = process.argv.slice(2)) {
|
|
30339
|
+
const dbPath = parseDbPathFromArgs(args);
|
|
30340
|
+
const store = dbPath ? new ResultsStore(dbPath) : new ResultsStore();
|
|
30274
30341
|
const server = new McpServer(
|
|
30275
30342
|
{
|
|
30276
30343
|
name: "labgate-results",
|
|
@@ -30439,7 +30506,7 @@ function isDirectRun() {
|
|
|
30439
30506
|
return /(?:^|\/|\\)results-mcp(?:\.bundle)?(?:\.(?:js|mjs))?$/.test(argv1);
|
|
30440
30507
|
}
|
|
30441
30508
|
if (isDirectRun()) {
|
|
30442
|
-
main().catch((err) => {
|
|
30509
|
+
main(process.argv.slice(2)).catch((err) => {
|
|
30443
30510
|
console.error("Results MCP server error:", err);
|
|
30444
30511
|
process.exit(1);
|
|
30445
30512
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "labgate",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.31",
|
|
4
4
|
"description": "Secure HPC wrapper for AI coding agents (Claude-first): policy controls, Apptainer sandboxes, and SLURM workflows — https://labgate.dev",
|
|
5
5
|
"homepage": "https://labgate.dev",
|
|
6
6
|
"keywords": [
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"build": "tsc && cp src/lib/ui.html dist/lib/ui.html && node scripts/bundle-mcp.mjs",
|
|
22
22
|
"bundle:mcp": "node scripts/bundle-mcp.mjs",
|
|
23
23
|
"dev": "tsc --watch",
|
|
24
|
-
"dev:ui": "npm run build && node
|
|
24
|
+
"dev:ui": "npm run build && LABGATE_UI_PREWARM_ON_START=1 node dist/cli.js ui --port 7700",
|
|
25
25
|
"dev:claude": "./scripts/dev-claude.sh",
|
|
26
26
|
"start": "node bin/labgate.js",
|
|
27
27
|
"verify:quick": "npm run build && npm run test:unit",
|