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.
@@ -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
- "datasets": [],
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:');
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiFA,gCAkCC;AAnHD,2BAA+C;AAC/C,+BAA4B;AAC5B,2CAUqB;AACrB,8CAAgC;AAEhC,MAAM,oBAAoB,GAAG;;;;;;;;gBAQb,0BAAc,CAAC,OAAO;;;cAGxB,0BAAc,CAAC,KAAK;;;6BAGL,0BAAc,CAAC,qBAAqB;;;;;;;;;0BASvC,IAAI,CAAC,SAAS,CAAC,0BAAc,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;;;;;;;;;;mBAUnG,IAAI,CAAC,SAAS,CAAC,0BAAc,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;;;;;;;eAOvF,0BAAc,CAAC,OAAO,CAAC,IAAI;;;yBAGjB,IAAI,CAAC,SAAS,CAAC,0BAAc,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;;;;;;iBAMhG,0BAAc,CAAC,KAAK,CAAC,OAAO;;+BAEd,0BAAc,CAAC,KAAK,CAAC,qBAAqB;;8BAE3C,0BAAc,CAAC,KAAK,CAAC,oBAAoB;;oBAEnD,0BAAc,CAAC,KAAK,CAAC,UAAU;;;;;;;;;CASlD,CAAC;AAEK,KAAK,UAAU,UAAU,CAAC,IAA0C;IACzE,MAAM,UAAU,GAAG,IAAA,yBAAa,GAAE,CAAC;IAEnC,qBAAqB;IACrB,IAAA,4BAAgB,EAAC,uBAAW,CAAC,CAAC;IAC9B,IAAA,4BAAgB,EAAC,IAAA,0BAAc,GAAE,CAAC,CAAC;IACnC,IAAA,4BAAgB,EAAC,IAAA,wBAAY,GAAE,CAAC,CAAC;IACjC,IAAA,4BAAgB,EAAC,IAAA,uBAAW,GAAE,CAAC,CAAC;IAChC,IAAA,4BAAgB,EAAC,IAAA,WAAI,EAAC,uBAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5C,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,IAAA,kBAAa,EAAC,UAAU,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,6BAAiB,EAAE,CAAC,CAAC;IAChG,IAAA,6BAAiB,EAAC,UAAU,CAAC,CAAC;IAE9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,OAAO,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,GAAG,CAAC,OAAO,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;IAC/C,GAAG,CAAC,KAAK,CAAC;QACR,CAAC,cAAc,EAAE,IAAA,0BAAc,GAAE,CAAC;QAClC,CAAC,WAAW,EAAE,IAAA,wBAAY,GAAE,CAAC;QAC7B,CAAC,YAAY,EAAE,IAAA,WAAI,EAAC,uBAAW,EAAE,MAAM,CAAC,CAAC;KAC1C,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACrC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACrC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACtC,CAAC"}
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 handle = spawnLabgate(this.repoDir, [agent, this.workdir, '--no-footer'], this.env);
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":";;;AAwBA,0BAYC;AAgED,kCAWC;AA/GD,2BAA8E;AAC9E,2BAA4B;AAC5B,+BAAuC;AACvC,iDAAoD;AACpD,+BAAoC;AAoB7B,KAAK,UAAU,OAAO,CAC3B,QAAiC,EACjC,SAAS,GAAG,MAAM,EAClB,UAAU,GAAG,GAAG;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,SAAS,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAA,mBAAY,GAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACZ,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,IAAc,EAAE,GAAsB;IAC3E,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,EAAE;QAC7D,GAAG,EAAE,OAAO;QACZ,GAAG;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB,EAAE,SAAS,GAAG,KAAK;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,MAA0B;IAC1D,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO;IAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,MAAM;QAAE,OAAO;IAEnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAa,2BAA2B;IAC7B,OAAO,CAAS;IACzB,QAAQ,GAAG,EAAE,CAAC;IACd,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,CAAC,CAAC;IACT,GAAG,GAAsB,EAAE,CAAC;IAC5B,EAAE,GAAuB,IAAI,CAAC;IAC9B,WAAW,GAAG,EAAE,CAAC;IACjB,UAAU,GAAG,EAAE,CAAC;IACC,MAAM,GAAG,IAAI,GAAG,EAAe,CAAC;IAEjD,YAAY,OAAe;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,QAAQ,GAAG,IAAA,gBAAW,EAAC,IAAA,WAAI,EAAC,IAAA,WAAM,GAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEhD,IAAA,cAAS,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAA,cAAS,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExC,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,IAAA,cAAS,EAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAA,kBAAa,EACX,IAAA,WAAI,EAAC,SAAS,EAAE,aAAa,CAAC,EAC9B,IAAI,CAAC,SAAS,CACZ;YACE,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,oCAAoC;YAC3C,qBAAqB,EAAE,CAAC;YACxB,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE;YACrD,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3B,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE;YAC9C,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;YACzB,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE;SACtD,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,EACR,OAAO,CACR,CAAC;QAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBzB,CAAC;QACE,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjD,IAAA,kBAAa,EAAC,aAAa,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACrD,IAAA,cAAS,EAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,GAAG,GAAG;YACT,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,OAAO;YAClB,IAAI,EAAE,GAAG,OAAO,GAAG,gBAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;SACxD,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpF,IAAI,CAAC,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YAC1C,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,8BAA8B,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC;YACvG,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAC5B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACzC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,WAAW,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACxG,IAAI,CAAC,GAAG,CAAC,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;gBACrE,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEhB,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAA,WAAM,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAyB;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA0B;QACxC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,eAAe,EAAE;YACpE,OAAO,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAqB,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAyB,EAAE,SAAS,GAAG,MAAM;QAChE,OAAO,OAAO,CAAC,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;YAC5F,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM;QACxC,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,oBAAoB,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,IAAI,CAAC,WAAW;gBAClC,iBAAiB,EAAE,IAAI,CAAC,UAAU;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;QACnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,uBAAuB,EAAE;YAC5E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,IAAI,CAAC,WAAW;gBAClC,iBAAiB,EAAE,IAAI,CAAC,UAAU;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAmB,EAAE,SAAS,GAAG,MAAM;QAC9D,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;YACvB,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrB,CAAC;CACF;AAzMD,kEAyMC"}
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;