labgate 0.5.27 → 0.5.29
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/dist/lib/container.d.ts +2 -0
- package/dist/lib/container.js +37 -1
- package/dist/lib/container.js.map +1 -1
- package/dist/lib/doctor.d.ts +31 -0
- package/dist/lib/doctor.js +336 -0
- package/dist/lib/doctor.js.map +1 -0
- package/dist/lib/init.js +56 -1
- package/dist/lib/init.js.map +1 -1
- package/dist/lib/test/integration-harness.d.ts +2 -1
- package/dist/lib/test/integration-harness.js +3 -2
- package/dist/lib/test/integration-harness.js.map +1 -1
- package/dist/lib/ui.d.ts +1 -1
- package/dist/lib/ui.html +4300 -1116
- package/dist/lib/ui.js +854 -3
- package/dist/lib/ui.js.map +1 -1
- package/dist/lib/web-terminal.d.ts +54 -0
- package/dist/lib/web-terminal.js +327 -0
- package/dist/lib/web-terminal.js.map +1 -0
- package/package.json +10 -5
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expandHomePath = expandHomePath;
|
|
4
|
+
exports.checkDirectoryWriteability = checkDirectoryWriteability;
|
|
5
|
+
exports.checkDatasets = checkDatasets;
|
|
6
|
+
exports.renderDoctorReport = renderDoctorReport;
|
|
7
|
+
exports.runDoctor = runDoctor;
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
const os_1 = require("os");
|
|
12
|
+
const config_js_1 = require("./config.js");
|
|
13
|
+
const runtime_js_1 = require("./runtime.js");
|
|
14
|
+
const policy_js_1 = require("./policy.js");
|
|
15
|
+
function expandHomePath(pathValue) {
|
|
16
|
+
return String(pathValue || '').replace(/^~/, (0, os_1.homedir)());
|
|
17
|
+
}
|
|
18
|
+
function canAccess(pathValue, mode) {
|
|
19
|
+
try {
|
|
20
|
+
(0, fs_1.accessSync)(pathValue, mode);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function checkDirectoryWriteability(pathValue) {
|
|
28
|
+
const resolved = expandHomePath(pathValue);
|
|
29
|
+
if ((0, fs_1.existsSync)(resolved)) {
|
|
30
|
+
let st;
|
|
31
|
+
try {
|
|
32
|
+
st = (0, fs_1.statSync)(resolved);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
return {
|
|
36
|
+
status: 'fail',
|
|
37
|
+
summary: `Path exists but cannot be stat'ed: ${resolved}`,
|
|
38
|
+
detail: String(err?.message ?? err),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (!st.isDirectory()) {
|
|
42
|
+
return {
|
|
43
|
+
status: 'fail',
|
|
44
|
+
summary: `Path is not a directory: ${resolved}`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (!canAccess(resolved, fs_1.constants.R_OK | fs_1.constants.W_OK)) {
|
|
48
|
+
return {
|
|
49
|
+
status: 'fail',
|
|
50
|
+
summary: `Directory is not readable/writable: ${resolved}`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
status: 'ok',
|
|
55
|
+
summary: `Directory is readable/writable: ${resolved}`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const parent = (0, path_1.dirname)(resolved);
|
|
59
|
+
if ((0, fs_1.existsSync)(parent) && canAccess(parent, fs_1.constants.W_OK)) {
|
|
60
|
+
return {
|
|
61
|
+
status: 'warn',
|
|
62
|
+
summary: `Directory does not exist yet: ${resolved}`,
|
|
63
|
+
hint: `LabGate can create it automatically (parent writable: ${parent}).`,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
status: 'fail',
|
|
68
|
+
summary: `Directory does not exist and parent is not writable: ${resolved}`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function hasCommand(command) {
|
|
72
|
+
try {
|
|
73
|
+
(0, child_process_1.execFileSync)('which', [command], { stdio: 'ignore' });
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function hasModuleSystem() {
|
|
81
|
+
if (hasCommand('modulecmd'))
|
|
82
|
+
return true;
|
|
83
|
+
try {
|
|
84
|
+
(0, child_process_1.execFileSync)('bash', ['-lc', 'type module >/dev/null 2>&1'], { stdio: 'ignore' });
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function checkPolicyFilePermissions(policyPath) {
|
|
92
|
+
try {
|
|
93
|
+
const mode = (0, fs_1.statSync)(policyPath).mode & 0o777;
|
|
94
|
+
if ((mode & 0o002) !== 0) {
|
|
95
|
+
return {
|
|
96
|
+
id: 'policy_permissions',
|
|
97
|
+
status: 'fail',
|
|
98
|
+
summary: `Policy file is world-writable: ${policyPath}`,
|
|
99
|
+
hint: `Fix permissions with: chmod 644 ${policyPath}`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
id: 'policy_permissions',
|
|
104
|
+
status: 'ok',
|
|
105
|
+
summary: `Policy file permissions look safe (${mode.toString(8)}): ${policyPath}`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return {
|
|
110
|
+
id: 'policy_permissions',
|
|
111
|
+
status: 'fail',
|
|
112
|
+
summary: `Could not stat policy file: ${policyPath}`,
|
|
113
|
+
detail: String(err?.message ?? err),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function checkDatasets(datasets, configPath) {
|
|
118
|
+
if (!datasets || datasets.length === 0) {
|
|
119
|
+
return {
|
|
120
|
+
id: 'datasets',
|
|
121
|
+
status: 'ok',
|
|
122
|
+
summary: 'No datasets registered.',
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
const issues = [];
|
|
126
|
+
for (const dataset of datasets) {
|
|
127
|
+
const datasetPath = expandHomePath(dataset.path);
|
|
128
|
+
const label = `${dataset.name} (${dataset.mode})`;
|
|
129
|
+
if (!(0, fs_1.existsSync)(datasetPath)) {
|
|
130
|
+
issues.push(`${label}: path does not exist (${datasetPath})`);
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
let st;
|
|
134
|
+
try {
|
|
135
|
+
st = (0, fs_1.statSync)(datasetPath);
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
issues.push(`${label}: cannot stat path (${String(err?.message ?? err)})`);
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (!st.isDirectory()) {
|
|
142
|
+
issues.push(`${label}: path is not a directory (${datasetPath})`);
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (!canAccess(datasetPath, fs_1.constants.R_OK)) {
|
|
146
|
+
issues.push(`${label}: path is not readable (${datasetPath})`);
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (dataset.mode === 'rw' && !canAccess(datasetPath, fs_1.constants.W_OK)) {
|
|
150
|
+
issues.push(`${label}: configured rw but not writable (${datasetPath})`);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
if (issues.length === 0) {
|
|
155
|
+
return {
|
|
156
|
+
id: 'datasets',
|
|
157
|
+
status: 'ok',
|
|
158
|
+
summary: `All ${datasets.length} dataset path(s) are valid.`,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return {
|
|
162
|
+
id: 'datasets',
|
|
163
|
+
status: 'fail',
|
|
164
|
+
summary: `${issues.length} dataset issue(s) found across ${datasets.length} dataset(s).`,
|
|
165
|
+
detail: issues.slice(0, 5).join('\n'),
|
|
166
|
+
hint: `Fix dataset entries in ${configPath}.`,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function countStatuses(findings) {
|
|
170
|
+
const counts = { ok: 0, warn: 0, fail: 0 };
|
|
171
|
+
for (const finding of findings) {
|
|
172
|
+
if (finding.status === 'ok')
|
|
173
|
+
counts.ok++;
|
|
174
|
+
if (finding.status === 'warn')
|
|
175
|
+
counts.warn++;
|
|
176
|
+
if (finding.status === 'fail')
|
|
177
|
+
counts.fail++;
|
|
178
|
+
}
|
|
179
|
+
return counts;
|
|
180
|
+
}
|
|
181
|
+
function statusTag(status) {
|
|
182
|
+
if (status === 'ok')
|
|
183
|
+
return 'OK';
|
|
184
|
+
if (status === 'warn')
|
|
185
|
+
return 'WARN';
|
|
186
|
+
return 'FAIL';
|
|
187
|
+
}
|
|
188
|
+
function renderDoctorReport(report) {
|
|
189
|
+
const lines = ['LabGate doctor', ''];
|
|
190
|
+
for (const finding of report.findings) {
|
|
191
|
+
lines.push(`[${statusTag(finding.status)}] ${finding.summary}`);
|
|
192
|
+
if (finding.detail) {
|
|
193
|
+
for (const line of finding.detail.split('\n')) {
|
|
194
|
+
lines.push(` ${line}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (finding.hint) {
|
|
198
|
+
lines.push(` hint: ${finding.hint}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
lines.push('');
|
|
202
|
+
lines.push(`Summary: ${report.counts.ok} OK, ${report.counts.warn} WARN, ${report.counts.fail} FAIL`);
|
|
203
|
+
lines.push(`Result: ${report.success ? 'PASS' : 'FAIL'}`);
|
|
204
|
+
return lines.join('\n');
|
|
205
|
+
}
|
|
206
|
+
function runDoctor() {
|
|
207
|
+
const findings = [];
|
|
208
|
+
const configPath = (0, config_js_1.getConfigPath)();
|
|
209
|
+
const configExists = (0, fs_1.existsSync)(configPath);
|
|
210
|
+
findings.push({
|
|
211
|
+
id: 'config_file',
|
|
212
|
+
status: configExists ? 'ok' : 'warn',
|
|
213
|
+
summary: configExists
|
|
214
|
+
? `Config file found: ${configPath}`
|
|
215
|
+
: `Config file not found (defaults apply): ${configPath}`,
|
|
216
|
+
hint: configExists ? undefined : 'Run `labgate init` to create an editable config.',
|
|
217
|
+
});
|
|
218
|
+
const effective = (0, config_js_1.loadEffectiveConfig)();
|
|
219
|
+
const config = effective.config;
|
|
220
|
+
const runtimeResult = (0, runtime_js_1.checkRuntime)(config.runtime);
|
|
221
|
+
findings.push({
|
|
222
|
+
id: 'runtime_available',
|
|
223
|
+
status: runtimeResult.ok ? 'ok' : 'fail',
|
|
224
|
+
summary: runtimeResult.ok
|
|
225
|
+
? `Runtime available: ${runtimeResult.runtime} (${runtimeResult.version ?? 'unknown version'})`
|
|
226
|
+
: 'No usable runtime detected for current config.',
|
|
227
|
+
detail: runtimeResult.ok ? undefined : runtimeResult.error,
|
|
228
|
+
});
|
|
229
|
+
if (config.runtime !== 'apptainer') {
|
|
230
|
+
findings.push({
|
|
231
|
+
id: 'runtime_preference',
|
|
232
|
+
status: 'warn',
|
|
233
|
+
summary: `Configured runtime is "${config.runtime}" (HPC default is "apptainer").`,
|
|
234
|
+
hint: 'For cluster default path, run: labgate config set runtime apptainer',
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
findings.push({
|
|
239
|
+
id: 'runtime_preference',
|
|
240
|
+
status: 'ok',
|
|
241
|
+
summary: 'Runtime preference is apptainer (HPC default).',
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
if (runtimeResult.ok && runtimeResult.runtime !== 'apptainer') {
|
|
245
|
+
findings.push({
|
|
246
|
+
id: 'runtime_resolution',
|
|
247
|
+
status: 'warn',
|
|
248
|
+
summary: `Runtime currently resolves to "${runtimeResult.runtime}" (not apptainer).`,
|
|
249
|
+
hint: 'If this host should use HPC defaults, install/load apptainer first.',
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
if (!config.slurm.enabled) {
|
|
253
|
+
findings.push({
|
|
254
|
+
id: 'slurm_enabled',
|
|
255
|
+
status: 'warn',
|
|
256
|
+
summary: 'SLURM integration is disabled (slurm.enabled=false).',
|
|
257
|
+
hint: 'Enable it for HPC default flow: labgate config set slurm.enabled true',
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
findings.push({
|
|
262
|
+
id: 'slurm_enabled',
|
|
263
|
+
status: 'ok',
|
|
264
|
+
summary: 'SLURM integration is enabled.',
|
|
265
|
+
});
|
|
266
|
+
const requiredSlurmCommands = ['sbatch', 'squeue', 'sacct', 'scancel'];
|
|
267
|
+
const missing = requiredSlurmCommands.filter((cmd) => !hasCommand(cmd));
|
|
268
|
+
if (missing.length === 0) {
|
|
269
|
+
findings.push({
|
|
270
|
+
id: 'slurm_commands',
|
|
271
|
+
status: 'ok',
|
|
272
|
+
summary: `Required SLURM commands found: ${requiredSlurmCommands.join(', ')}`,
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
const modules = hasModuleSystem();
|
|
277
|
+
findings.push({
|
|
278
|
+
id: 'slurm_commands',
|
|
279
|
+
status: 'warn',
|
|
280
|
+
summary: `Missing SLURM commands in PATH: ${missing.join(', ')}`,
|
|
281
|
+
hint: modules
|
|
282
|
+
? 'Try loading your SLURM module first, for example: module load slurm'
|
|
283
|
+
: 'Install SLURM client tools or add them to PATH before launching LabGate.',
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
const policyPath = (0, policy_js_1.findPolicyFile)();
|
|
288
|
+
if (!policyPath) {
|
|
289
|
+
findings.push({
|
|
290
|
+
id: 'policy_file',
|
|
291
|
+
status: effective.enterprise ? 'warn' : 'ok',
|
|
292
|
+
summary: effective.enterprise
|
|
293
|
+
? 'Enterprise license active but no policy file was found.'
|
|
294
|
+
: 'No policy file found (community mode or unmanaged enterprise).',
|
|
295
|
+
hint: effective.enterprise ? 'Create one with: labgate policy init --path /etc/labgate/policy.json --admin <username>' : undefined,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
findings.push(checkPolicyFilePermissions(policyPath));
|
|
300
|
+
}
|
|
301
|
+
const logDir = effective.sharedAuditDir ?? (0, config_js_1.getLogDir)(config);
|
|
302
|
+
const logDirCheck = checkDirectoryWriteability(logDir);
|
|
303
|
+
findings.push({
|
|
304
|
+
id: 'audit_log_dir',
|
|
305
|
+
status: logDirCheck.status,
|
|
306
|
+
summary: `Audit log dir: ${logDirCheck.summary}`,
|
|
307
|
+
detail: logDirCheck.detail,
|
|
308
|
+
hint: logDirCheck.hint,
|
|
309
|
+
});
|
|
310
|
+
const sessionsDir = effective.sharedSessionsDir ?? (0, config_js_1.getSessionsDir)();
|
|
311
|
+
const sessionsDirCheck = checkDirectoryWriteability(sessionsDir);
|
|
312
|
+
findings.push({
|
|
313
|
+
id: 'sessions_dir',
|
|
314
|
+
status: sessionsDirCheck.status,
|
|
315
|
+
summary: `Session dir: ${sessionsDirCheck.summary}`,
|
|
316
|
+
detail: sessionsDirCheck.detail,
|
|
317
|
+
hint: sessionsDirCheck.hint,
|
|
318
|
+
});
|
|
319
|
+
const sandboxHomeCheck = checkDirectoryWriteability((0, config_js_1.getSandboxHome)());
|
|
320
|
+
findings.push({
|
|
321
|
+
id: 'sandbox_home',
|
|
322
|
+
status: sandboxHomeCheck.status,
|
|
323
|
+
summary: `Sandbox HOME: ${sandboxHomeCheck.summary}`,
|
|
324
|
+
detail: sandboxHomeCheck.detail,
|
|
325
|
+
hint: sandboxHomeCheck.hint,
|
|
326
|
+
});
|
|
327
|
+
findings.push(checkDatasets(config.datasets || [], configPath));
|
|
328
|
+
const counts = countStatuses(findings);
|
|
329
|
+
return {
|
|
330
|
+
generated_at: new Date().toISOString(),
|
|
331
|
+
findings,
|
|
332
|
+
counts,
|
|
333
|
+
success: counts.fail === 0,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/lib/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/init.js
CHANGED
|
@@ -38,6 +38,46 @@ const fs_1 = require("fs");
|
|
|
38
38
|
const path_1 = require("path");
|
|
39
39
|
const config_js_1 = require("./config.js");
|
|
40
40
|
const log = __importStar(require("./log.js"));
|
|
41
|
+
const IRIS_SAMPLE_DATASET_NAME = 'flowers-iris';
|
|
42
|
+
const IRIS_SAMPLE_DATASET_MODE = 'ro';
|
|
43
|
+
const IRIS_SAMPLE_DATASET_DIR = (0, path_1.join)(config_js_1.LABGATE_DIR, 'datasets', IRIS_SAMPLE_DATASET_NAME);
|
|
44
|
+
const IRIS_SAMPLE_CSV = [
|
|
45
|
+
'sepal_length,sepal_width,petal_length,petal_width,species',
|
|
46
|
+
'5.1,3.5,1.4,0.2,setosa',
|
|
47
|
+
'4.9,3.0,1.4,0.2,setosa',
|
|
48
|
+
'4.7,3.2,1.3,0.2,setosa',
|
|
49
|
+
'4.6,3.1,1.5,0.2,setosa',
|
|
50
|
+
'5.0,3.6,1.4,0.2,setosa',
|
|
51
|
+
'7.0,3.2,4.7,1.4,versicolor',
|
|
52
|
+
'6.4,3.2,4.5,1.5,versicolor',
|
|
53
|
+
'6.9,3.1,4.9,1.5,versicolor',
|
|
54
|
+
'5.5,2.3,4.0,1.3,versicolor',
|
|
55
|
+
'6.5,2.8,4.6,1.5,versicolor',
|
|
56
|
+
'6.3,3.3,6.0,2.5,virginica',
|
|
57
|
+
'5.8,2.7,5.1,1.9,virginica',
|
|
58
|
+
'7.1,3.0,5.9,2.1,virginica',
|
|
59
|
+
'6.3,2.9,5.6,1.8,virginica',
|
|
60
|
+
'6.5,3.0,5.8,2.2,virginica',
|
|
61
|
+
].join('\n') + '\n';
|
|
62
|
+
const IRIS_SAMPLE_ROW_COUNT = Math.max(0, IRIS_SAMPLE_CSV
|
|
63
|
+
.split('\n')
|
|
64
|
+
.map((line) => line.trim())
|
|
65
|
+
.filter((line) => line.length > 0).length - 1);
|
|
66
|
+
const IRIS_SAMPLE_DESCRIPTION = `Iris flower measurements sample dataset (${IRIS_SAMPLE_ROW_COUNT} rows).`;
|
|
67
|
+
const IRIS_SAMPLE_README = '# Iris Flowers Dataset (Bundled Sample)\n' +
|
|
68
|
+
'\n' +
|
|
69
|
+
`Rows: ${IRIS_SAMPLE_ROW_COUNT}\n` +
|
|
70
|
+
'\n' +
|
|
71
|
+
'This sample is bundled with LabGate so dataset workflows work out-of-the-box.\n' +
|
|
72
|
+
'You can replace or remove it any time from the UI or config file.\n';
|
|
73
|
+
const BUNDLED_DATASET_JSON = JSON.stringify([
|
|
74
|
+
{
|
|
75
|
+
path: IRIS_SAMPLE_DATASET_DIR,
|
|
76
|
+
name: IRIS_SAMPLE_DATASET_NAME,
|
|
77
|
+
mode: IRIS_SAMPLE_DATASET_MODE,
|
|
78
|
+
description: IRIS_SAMPLE_DESCRIPTION,
|
|
79
|
+
},
|
|
80
|
+
], null, 6).replace(/\n/g, '\n ');
|
|
41
81
|
const CONFIG_WITH_COMMENTS = `{
|
|
42
82
|
// LabGate configuration
|
|
43
83
|
// Docs: https://labgate.dev/docs/config
|
|
@@ -67,7 +107,8 @@ const CONFIG_WITH_COMMENTS = `{
|
|
|
67
107
|
// Named datasets mounted under /datasets/{name} in the sandbox.
|
|
68
108
|
// The AI agent is told about each dataset by name and description.
|
|
69
109
|
// Each entry: { "path": "/data/genomes", "name": "genomes", "mode": "ro", "description": "Reference genomes" }
|
|
70
|
-
|
|
110
|
+
// A bundled Iris sample dataset is pre-registered for first-run workflows.
|
|
111
|
+
"datasets": ${BUNDLED_DATASET_JSON},
|
|
71
112
|
|
|
72
113
|
"commands": {
|
|
73
114
|
// Commands that cannot be executed inside the sandbox.
|
|
@@ -103,6 +144,18 @@ const CONFIG_WITH_COMMENTS = `{
|
|
|
103
144
|
}
|
|
104
145
|
}
|
|
105
146
|
`;
|
|
147
|
+
function ensureBundledIrisDatasetFiles() {
|
|
148
|
+
(0, config_js_1.ensurePrivateDir)((0, path_1.join)(config_js_1.LABGATE_DIR, 'datasets'));
|
|
149
|
+
(0, config_js_1.ensurePrivateDir)(IRIS_SAMPLE_DATASET_DIR);
|
|
150
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(IRIS_SAMPLE_DATASET_DIR, 'iris.csv'), IRIS_SAMPLE_CSV, {
|
|
151
|
+
encoding: 'utf-8',
|
|
152
|
+
mode: config_js_1.PRIVATE_FILE_MODE,
|
|
153
|
+
});
|
|
154
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(IRIS_SAMPLE_DATASET_DIR, 'README.md'), IRIS_SAMPLE_README, {
|
|
155
|
+
encoding: 'utf-8',
|
|
156
|
+
mode: config_js_1.PRIVATE_FILE_MODE,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
106
159
|
async function initConfig(opts) {
|
|
107
160
|
const configPath = (0, config_js_1.getConfigPath)();
|
|
108
161
|
// Create directories
|
|
@@ -116,6 +169,7 @@ async function initConfig(opts) {
|
|
|
116
169
|
log.info('Use --force to overwrite.');
|
|
117
170
|
return;
|
|
118
171
|
}
|
|
172
|
+
ensureBundledIrisDatasetFiles();
|
|
119
173
|
(0, fs_1.writeFileSync)(configPath, CONFIG_WITH_COMMENTS, { encoding: 'utf-8', mode: config_js_1.PRIVATE_FILE_MODE });
|
|
120
174
|
(0, config_js_1.ensurePrivateFile)(configPath);
|
|
121
175
|
if (opts.quiet) {
|
|
@@ -127,6 +181,7 @@ async function initConfig(opts) {
|
|
|
127
181
|
['Sandbox home', (0, config_js_1.getSandboxHome)()],
|
|
128
182
|
['SIF cache', (0, config_js_1.getImagesDir)()],
|
|
129
183
|
['Audit logs', (0, path_1.join)(config_js_1.LABGATE_DIR, 'logs')],
|
|
184
|
+
['Sample dataset', IRIS_SAMPLE_DATASET_DIR],
|
|
130
185
|
]);
|
|
131
186
|
console.error('');
|
|
132
187
|
log.info('Edit the config, or run:');
|
package/dist/lib/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export interface SessionRecord {
|
|
|
10
10
|
workdir: string;
|
|
11
11
|
node: string;
|
|
12
12
|
pid: number;
|
|
13
|
+
webTerminalId?: string;
|
|
13
14
|
}
|
|
14
15
|
export interface SessionsResponse {
|
|
15
16
|
sessions: SessionRecord[];
|
|
@@ -30,7 +31,7 @@ export declare class DashboardIntegrationHarness {
|
|
|
30
31
|
constructor(repoDir: string);
|
|
31
32
|
setup(): Promise<void>;
|
|
32
33
|
teardown(): Promise<void>;
|
|
33
|
-
startAgent(agent: 'claude' | 'codex'): Promise<ChildHandle>;
|
|
34
|
+
startAgent(agent: 'claude' | 'codex', envOverrides?: NodeJS.ProcessEnv): Promise<ChildHandle>;
|
|
34
35
|
stopAgent(handle: ChildHandle | null): Promise<void>;
|
|
35
36
|
stopAllAgents(): Promise<void>;
|
|
36
37
|
fetchSessions(): Promise<SessionsResponse>;
|
|
@@ -192,8 +192,9 @@ esac
|
|
|
192
192
|
this.tempRoot = '';
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
-
async startAgent(agent) {
|
|
196
|
-
const
|
|
195
|
+
async startAgent(agent, envOverrides) {
|
|
196
|
+
const env = envOverrides ? { ...this.env, ...envOverrides } : this.env;
|
|
197
|
+
const handle = spawnLabgate(this.repoDir, [agent, this.workdir, '--no-footer'], env);
|
|
197
198
|
this.agents.add(handle);
|
|
198
199
|
return handle;
|
|
199
200
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration-harness.js","sourceRoot":"","sources":["../../../src/lib/test/integration-harness.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"integration-harness.js","sourceRoot":"","sources":["../../../src/lib/test/integration-harness.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ui.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Server } from 'http';
|
|
1
2
|
export type ActivityStatus = 'thinking' | 'tool_use' | 'waiting' | 'idle' | 'unknown';
|
|
2
3
|
export interface FileAccess {
|
|
3
4
|
name: string;
|
|
@@ -26,7 +27,6 @@ export interface ContainerStats {
|
|
|
26
27
|
memLimitMB: number;
|
|
27
28
|
memPercent: number;
|
|
28
29
|
}
|
|
29
|
-
import type { Server } from 'http';
|
|
30
30
|
export interface UIStartOptions {
|
|
31
31
|
port?: number;
|
|
32
32
|
socketPath?: string;
|