nebula-notebook-mcp 0.2.0 → 0.4.1

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.
Files changed (67) hide show
  1. package/bin/nebula +5 -0
  2. package/bin/nebula.js +4 -0
  3. package/dist/cli/compute.d.ts +11 -0
  4. package/dist/cli/compute.d.ts.map +1 -0
  5. package/dist/cli/compute.js +405 -0
  6. package/dist/cli/compute.js.map +1 -0
  7. package/dist/cli/fs.d.ts +11 -0
  8. package/dist/cli/fs.d.ts.map +1 -0
  9. package/dist/cli/fs.js +282 -0
  10. package/dist/cli/fs.js.map +1 -0
  11. package/dist/cli/index.d.ts +12 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +93 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/cli/kernel.d.ts +8 -0
  16. package/dist/cli/kernel.d.ts.map +1 -0
  17. package/dist/cli/kernel.js +165 -0
  18. package/dist/cli/kernel.js.map +1 -0
  19. package/dist/cli/nb.d.ts +8 -0
  20. package/dist/cli/nb.d.ts.map +1 -0
  21. package/dist/cli/nb.js +618 -0
  22. package/dist/cli/nb.js.map +1 -0
  23. package/dist/cli/run.d.ts +7 -0
  24. package/dist/cli/run.d.ts.map +1 -0
  25. package/dist/cli/run.js +124 -0
  26. package/dist/cli/run.js.map +1 -0
  27. package/dist/cli/session.d.ts +10 -0
  28. package/dist/cli/session.d.ts.map +1 -0
  29. package/dist/cli/session.js +116 -0
  30. package/dist/cli/session.js.map +1 -0
  31. package/dist/cli/shared.d.ts +68 -0
  32. package/dist/cli/shared.d.ts.map +1 -0
  33. package/dist/cli/shared.js +216 -0
  34. package/dist/cli/shared.js.map +1 -0
  35. package/dist/cli/skill.d.ts +12 -0
  36. package/dist/cli/skill.d.ts.map +1 -0
  37. package/dist/cli/skill.js +189 -0
  38. package/dist/cli/skill.js.map +1 -0
  39. package/dist/index.d.ts +2 -2
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +4 -2
  42. package/dist/index.js.map +1 -1
  43. package/dist/notebook/client.d.ts +127 -3
  44. package/dist/notebook/client.d.ts.map +1 -1
  45. package/dist/notebook/client.js +63 -4
  46. package/dist/notebook/client.js.map +1 -1
  47. package/dist/tools/compute.d.ts +62 -0
  48. package/dist/tools/compute.d.ts.map +1 -0
  49. package/dist/tools/compute.js +307 -0
  50. package/dist/tools/compute.js.map +1 -0
  51. package/dist/tools/files.js +1 -1
  52. package/dist/tools/files.js.map +1 -1
  53. package/dist/tools/index.d.ts +8 -0
  54. package/dist/tools/index.d.ts.map +1 -1
  55. package/dist/tools/index.js +6 -0
  56. package/dist/tools/index.js.map +1 -1
  57. package/dist/tools/kernel.d.ts.map +1 -1
  58. package/dist/tools/kernel.js +8 -5
  59. package/dist/tools/kernel.js.map +1 -1
  60. package/dist/tools/notebook.js +2 -2
  61. package/dist/tools/notebook.js.map +1 -1
  62. package/dist/types.d.ts +4 -0
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/utils/imageResize.d.ts.map +1 -1
  65. package/dist/utils/imageResize.js +18 -1
  66. package/dist/utils/imageResize.js.map +1 -1
  67. package/package.json +5 -4
package/bin/nebula ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bash
2
+ # Extensionless launcher so `nebula` resolves via PATH (e.g. in Nebula's
3
+ # built-in terminals, where this bin dir is prepended to PATH). npm installs
4
+ # get the name via the package.json bin map instead.
5
+ exec node "$(dirname "$0")/nebula.js" "$@"
package/bin/nebula.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ // Agent-facing CLI for Nebula Notebook — thin shim over the compiled CLI.
3
+ // Run `nebula --help` for the command list; requires NEBULA_URL or --url.
4
+ await import('../dist/cli/index.js');
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `nebula compute …` — scheduler-backed compute allocations (HPC clusters).
3
+ *
4
+ * Detection-gated: servers without a scheduler (laptops, plain workstations)
5
+ * report enabled=false and every other subcommand fails fast with a clear
6
+ * message. Same AXI conventions as the rest of the CLI: --json/--quiet,
7
+ * one hint line, `--wait` FOLLOWS the allocation internally (the agent never
8
+ * writes its own poll loop — the process exiting is the signal).
9
+ */
10
+ export declare function cmdCompute(argv: string[]): Promise<number>;
11
+ //# sourceMappingURL=compute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../src/cli/compute.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+DH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBhE"}
@@ -0,0 +1,405 @@
1
+ /**
2
+ * `nebula compute …` — scheduler-backed compute allocations (HPC clusters).
3
+ *
4
+ * Detection-gated: servers without a scheduler (laptops, plain workstations)
5
+ * report enabled=false and every other subcommand fails fast with a clear
6
+ * message. Same AXI conventions as the rest of the CLI: --json/--quiet,
7
+ * one hint line, `--wait` FOLLOWS the allocation internally (the agent never
8
+ * writes its own poll loop — the process exiting is the signal).
9
+ */
10
+ import { CliError, EXIT, makeClient, parse, parseIntFlag, printHint, printJson, requirePositional, resolveUrl, toCliError, } from './shared.js';
11
+ const COMPUTE_HELP = `usage: nebula compute <status|queues|alloc|ls|use|cancel> …
12
+
13
+ Scheduler-backed compute (HPC clusters). Optional: servers without a
14
+ scheduler report "no scheduler on this server" — check status first.
15
+
16
+ compute status scheduler present? enabled?
17
+ compute queues partitions + QoS + idle CPUs/GPUs + backlog
18
+ compute alloc --partition P [...] request an allocation
19
+ [--qos Q] [--cpus N] [--mem GB] [--gpus N] [--gpu-type T]
20
+ [--walltime H] [--name NAME] [--idle-timeout MIN] [--wait] [--max-wait S]
21
+ --idle-timeout MIN auto-ends the allocation after MIN minutes with no
22
+ kernel or terminal activity (the node's server exits itself) — a safety
23
+ net against forgotten allocations; recommended for agent-created ones.
24
+ --wait BLOCKS until the allocation is active (internal polling; run it
25
+ as a background shell task for long queue waits). Exit 1 on failure,
26
+ exit 3 if --max-wait (default 3600s) expires while still queued.
27
+ compute ls list allocations
28
+ compute use <alloc-id|name> <notebook-path>
29
+ bind the notebook's kernels to the
30
+ allocation's server (must be active);
31
+ after this, nebula run executes there
32
+ compute cancel <id> cancel an allocation (frees the nodes)
33
+
34
+ Etiquette: allocations consume real cluster resources — request modest sizes,
35
+ cancel what you created when done, never cancel allocations you didn't create,
36
+ and add --idle-timeout 60 as a safety net in case you forget.
37
+
38
+ examples:
39
+ nebula compute queues
40
+ nebula compute alloc --partition gpu --gpus 1 --walltime 2 --idle-timeout 60 --wait
41
+ nebula compute use a1b2c3d4 analysis.ipynb
42
+ nebula compute cancel a1b2c3d4`;
43
+ /** --wait polling: starts quick, backs off to ~5s (same philosophy as nebula run). */
44
+ const POLL_START_MS = 1_000;
45
+ const POLL_MAX_MS = 5_000;
46
+ const TERMINAL_STATES = new Set(['ended', 'failed', 'cancelled']);
47
+ function sleep(ms) {
48
+ return new Promise((resolve) => setTimeout(resolve, ms));
49
+ }
50
+ export async function cmdCompute(argv) {
51
+ const [sub, ...rest] = argv;
52
+ if (sub === undefined || sub === '--help' || sub === '-h') {
53
+ console.log(COMPUTE_HELP);
54
+ return sub === undefined ? EXIT.USAGE : EXIT.OK;
55
+ }
56
+ switch (sub) {
57
+ case 'status':
58
+ return computeStatus(rest);
59
+ case 'queues':
60
+ return computeQueues(rest);
61
+ case 'alloc':
62
+ return computeAlloc(rest);
63
+ case 'ls':
64
+ return computeLs(rest);
65
+ case 'use':
66
+ return computeUse(rest);
67
+ case 'cancel':
68
+ return computeCancel(rest);
69
+ default:
70
+ throw new CliError(`unknown compute subcommand: ${sub}`, EXIT.USAGE, "run 'nebula compute --help' for the list");
71
+ }
72
+ }
73
+ function noScheduler() {
74
+ return new CliError('no scheduler on this server — compute allocations are unavailable', EXIT.ERROR, 'kernels run directly on the server; check availability with: nebula compute status');
75
+ }
76
+ // =============================================================================
77
+ // compute status
78
+ // =============================================================================
79
+ async function computeStatus(argv) {
80
+ const { values } = parse(argv);
81
+ if (values.help) {
82
+ console.log(COMPUTE_HELP);
83
+ return EXIT.OK;
84
+ }
85
+ const client = makeClient(resolveUrl(values.url));
86
+ const result = await client.computeStatus();
87
+ if (!result.success)
88
+ throw toCliError(result.error);
89
+ const { enabled, scheduler } = result.data;
90
+ if (values.json) {
91
+ printJson(result.data);
92
+ return EXIT.OK;
93
+ }
94
+ console.log(`enabled: ${enabled}`);
95
+ console.log(`scheduler: ${scheduler ?? '-'}`);
96
+ if (enabled) {
97
+ printHint('see partitions and load with: nebula compute queues', values);
98
+ }
99
+ else {
100
+ printHint('no scheduler here — notebooks execute directly on this server', values);
101
+ }
102
+ return EXIT.OK;
103
+ }
104
+ // =============================================================================
105
+ // compute queues
106
+ // =============================================================================
107
+ function pad(s, w) {
108
+ return s.length >= w ? s : s + ' '.repeat(w - s.length);
109
+ }
110
+ function table(rows) {
111
+ if (rows.length === 0)
112
+ return [];
113
+ const widths = rows[0].map((_, col) => Math.max(...rows.map((r) => (r[col] ?? '').length)));
114
+ return rows.map((r) => r.map((cell, col) => pad(cell ?? '', widths[col])).join(' ').trimEnd());
115
+ }
116
+ async function computeQueues(argv) {
117
+ const { values } = parse(argv);
118
+ if (values.help) {
119
+ console.log(COMPUTE_HELP);
120
+ return EXIT.OK;
121
+ }
122
+ const client = makeClient(resolveUrl(values.url));
123
+ const result = await client.listPartitions();
124
+ if (!result.success)
125
+ throw toCliError(result.error);
126
+ const data = result.data;
127
+ if (!data.enabled)
128
+ throw noScheduler();
129
+ if (values.json) {
130
+ printJson(data);
131
+ return EXIT.OK;
132
+ }
133
+ const allowed = new Set(data.associations?.partitions ?? []);
134
+ const partitions = data.load?.partitions ?? [];
135
+ const rows = [
136
+ ['PARTITION', 'STATE', 'TIMELIMIT', 'CPUS idle/tot', 'GPUS idle/tot (type)', 'PENDING', 'RUNNING'],
137
+ ];
138
+ for (const p of partitions) {
139
+ rows.push([
140
+ p.name + (allowed.size > 0 && !allowed.has(p.name) ? ' *' : ''),
141
+ p.up ? 'up' : 'down',
142
+ p.timeLimit,
143
+ `${p.cpus.idle}/${p.cpus.total}`,
144
+ p.gpus ? `${p.gpus.idle}/${p.gpus.total} (${p.gpus.type})` : '-',
145
+ String(p.jobs.pending),
146
+ String(p.jobs.running),
147
+ ]);
148
+ }
149
+ for (const line of table(rows))
150
+ console.log(line);
151
+ if (allowed.size > 0 && partitions.some((p) => !allowed.has(p.name))) {
152
+ console.log('(* = you cannot submit to this partition)');
153
+ }
154
+ const qoses = data.load?.qoses ?? [];
155
+ if (qoses.length > 0) {
156
+ console.log('');
157
+ const qosRows = [['QOS', 'PRIORITY', 'MAX WALL', 'PREEMPTIBLE', 'PENDING', 'RUNNING']];
158
+ for (const q of qoses) {
159
+ qosRows.push([
160
+ q.name + (q.name === data.associations?.defaultQos ? ' (default)' : ''),
161
+ String(q.priority),
162
+ q.maxWall ?? '-',
163
+ q.preemptible ? 'yes' : 'no',
164
+ String(q.jobs.pending),
165
+ String(q.jobs.running),
166
+ ]);
167
+ }
168
+ for (const line of table(qosRows))
169
+ console.log(line);
170
+ }
171
+ printHint('request one with: nebula compute alloc --partition <P> [--wait]', values);
172
+ return EXIT.OK;
173
+ }
174
+ // =============================================================================
175
+ // compute alloc
176
+ // =============================================================================
177
+ async function computeAlloc(argv) {
178
+ const { values } = parse(argv, {
179
+ partition: { type: 'string' },
180
+ qos: { type: 'string' },
181
+ cpus: { type: 'string' },
182
+ mem: { type: 'string' },
183
+ gpus: { type: 'string' },
184
+ 'gpu-type': { type: 'string' },
185
+ walltime: { type: 'string' },
186
+ name: { type: 'string' },
187
+ 'idle-timeout': { type: 'string' },
188
+ wait: { type: 'boolean' },
189
+ 'max-wait': { type: 'string' },
190
+ });
191
+ if (values.help) {
192
+ console.log(COMPUTE_HELP);
193
+ return EXIT.OK;
194
+ }
195
+ const partition = typeof values.partition === 'string' ? values.partition : '';
196
+ if (!partition) {
197
+ throw new CliError('--partition is required', EXIT.USAGE, 'see available partitions with: nebula compute queues');
198
+ }
199
+ const spec = { partition };
200
+ if (typeof values.qos === 'string')
201
+ spec.qos = values.qos;
202
+ if (values.cpus !== undefined)
203
+ spec.cpus = parseIntFlag(values.cpus, '--cpus', 1);
204
+ if (values.mem !== undefined)
205
+ spec.memGb = parseIntFlag(values.mem, '--mem', 4);
206
+ if (values.gpus !== undefined)
207
+ spec.gpus = parseIntFlag(values.gpus, '--gpus', 0);
208
+ if (typeof values['gpu-type'] === 'string')
209
+ spec.gpuType = values['gpu-type'];
210
+ if (values.walltime !== undefined) {
211
+ const hours = Number(values.walltime);
212
+ if (Number.isNaN(hours) || hours <= 0) {
213
+ throw new CliError(`--walltime must be a positive number of hours, got "${String(values.walltime)}"`, EXIT.USAGE);
214
+ }
215
+ spec.walltimeMinutes = Math.round(hours * 60);
216
+ }
217
+ if (typeof values.name === 'string')
218
+ spec.jobName = values.name;
219
+ if (values['idle-timeout'] !== undefined) {
220
+ const minutes = parseIntFlag(values['idle-timeout'], '--idle-timeout', 60);
221
+ if (minutes <= 0) {
222
+ throw new CliError(`--idle-timeout must be a positive number of minutes, got "${String(values['idle-timeout'])}"`, EXIT.USAGE);
223
+ }
224
+ spec.idleTimeoutMinutes = minutes;
225
+ }
226
+ const maxWait = parseIntFlag(values['max-wait'], '--max-wait', 3600);
227
+ const client = makeClient(resolveUrl(values.url));
228
+ // Fail fast with a friendly message when the server has no scheduler.
229
+ const status = await client.computeStatus();
230
+ if (status.success && !status.data.enabled)
231
+ throw noScheduler();
232
+ const created = await client.createAllocation(spec);
233
+ if (!created.success)
234
+ throw toCliError(created.error);
235
+ let alloc = created.data;
236
+ if (!values.wait) {
237
+ if (values.json) {
238
+ printJson(alloc);
239
+ return EXIT.OK;
240
+ }
241
+ console.log(`allocation: ${alloc.id}`);
242
+ console.log(`state: ${alloc.state}`);
243
+ printHint(`follow with: nebula compute ls; when active: nebula compute use ${alloc.id} <notebook.ipynb>`, values);
244
+ return EXIT.OK;
245
+ }
246
+ // --wait: FOLLOW the allocation until active or terminal. Internal polling
247
+ // only — launch as a background shell task; process exit is the signal.
248
+ const deadline = maxWait <= 0 ? Number.POSITIVE_INFINITY : Date.now() + maxWait * 1000;
249
+ let pollMs = POLL_START_MS;
250
+ while (alloc.state !== 'active' && !TERMINAL_STATES.has(alloc.state) && Date.now() < deadline) {
251
+ await sleep(Math.min(pollMs, Math.max(0, deadline - Date.now())));
252
+ pollMs = Math.min(pollMs * 1.5, POLL_MAX_MS);
253
+ try {
254
+ const list = await client.listAllocations();
255
+ if (list.success) {
256
+ const found = list.data.find((a) => a.id === alloc.id);
257
+ if (found)
258
+ alloc = found;
259
+ }
260
+ }
261
+ catch {
262
+ // transient network blip — keep following
263
+ }
264
+ }
265
+ if (values.json) {
266
+ printJson(alloc);
267
+ return alloc.state === 'active' ? EXIT.OK : TERMINAL_STATES.has(alloc.state) ? EXIT.ERROR : EXIT.RUNNING;
268
+ }
269
+ console.log(`allocation: ${alloc.id}`);
270
+ console.log(`state: ${alloc.state}`);
271
+ if (alloc.state === 'active') {
272
+ console.log(`server: ${alloc.serverId}`);
273
+ console.log(`node: ${alloc.nodes?.join(',') || '-'}`);
274
+ printHint(`bind a notebook to it with: nebula compute use ${alloc.id} <notebook.ipynb>`, values);
275
+ return EXIT.OK;
276
+ }
277
+ if (TERMINAL_STATES.has(alloc.state)) {
278
+ console.error(`error: allocation ${alloc.id} ${alloc.state}${alloc.reason ? ` (${alloc.reason})` : ''}`);
279
+ return EXIT.ERROR;
280
+ }
281
+ printHint(`still ${alloc.state} after ${maxWait}s (exit 3); keep following with: nebula compute ls`, values);
282
+ return EXIT.RUNNING;
283
+ }
284
+ // =============================================================================
285
+ // compute ls
286
+ // =============================================================================
287
+ async function computeLs(argv) {
288
+ const { values } = parse(argv);
289
+ if (values.help) {
290
+ console.log(COMPUTE_HELP);
291
+ return EXIT.OK;
292
+ }
293
+ const client = makeClient(resolveUrl(values.url));
294
+ const result = await client.listAllocations();
295
+ if (!result.success)
296
+ throw toCliError(result.error);
297
+ const allocations = result.data;
298
+ if (values.json) {
299
+ printJson(allocations);
300
+ return EXIT.OK;
301
+ }
302
+ if (allocations.length === 0) {
303
+ console.log('(no allocations)');
304
+ printHint('request one with: nebula compute alloc --partition <P> --wait', values);
305
+ return EXIT.OK;
306
+ }
307
+ const rows = [['ID', 'STATE', 'PARTITION', 'QOS', 'CPUS', 'MEM', 'GPUS', 'NODE', 'NAME']];
308
+ for (const a of allocations) {
309
+ rows.push([
310
+ a.id,
311
+ a.state,
312
+ a.spec.partition,
313
+ a.spec.qos ?? '-',
314
+ String(a.spec.cpus),
315
+ `${a.spec.memGb}G`,
316
+ a.spec.gpus ? `${a.spec.gpus}${a.spec.gpuType ? ` (${a.spec.gpuType})` : ''}` : '-',
317
+ a.nodes?.join(',') || '-',
318
+ a.spec.jobName,
319
+ ]);
320
+ }
321
+ for (const line of table(rows))
322
+ console.log(line);
323
+ printHint('bind a notebook to an active one: nebula compute use <id> <notebook.ipynb>', values);
324
+ return EXIT.OK;
325
+ }
326
+ // =============================================================================
327
+ // compute use
328
+ // =============================================================================
329
+ async function findAllocation(client, idOrName) {
330
+ const result = await client.listAllocations();
331
+ if (!result.success)
332
+ throw toCliError(result.error);
333
+ const allocations = result.data;
334
+ const found = allocations.find((a) => a.id === idOrName) ??
335
+ allocations.find((a) => a.spec.jobName === idOrName);
336
+ if (!found) {
337
+ throw new CliError(`allocation not found: ${idOrName}`, EXIT.ERROR, 'list allocations with: nebula compute ls');
338
+ }
339
+ return found;
340
+ }
341
+ async function computeUse(argv) {
342
+ const { values, positionals } = parse(argv, {
343
+ kernel: { type: 'string' },
344
+ });
345
+ if (values.help) {
346
+ console.log(COMPUTE_HELP);
347
+ return EXIT.OK;
348
+ }
349
+ const usage = 'nebula compute use <alloc-id|name> <notebook-path>';
350
+ const idOrName = requirePositional(positionals, 0, 'alloc-id|name', usage);
351
+ const nbPath = requirePositional(positionals, 1, 'notebook-path', usage);
352
+ const url = resolveUrl(values.url);
353
+ const client = makeClient(url, nbPath);
354
+ const alloc = await findAllocation(client, idOrName);
355
+ if (alloc.state !== 'active' || !alloc.serverId) {
356
+ throw new CliError(`allocation ${alloc.id} is not active (state: ${alloc.state}) — kernels need an active allocation`, EXIT.ERROR, alloc.state === 'pending' || alloc.state === 'running'
357
+ ? `it is still coming up; check with: nebula compute ls`
358
+ : `request a new one with: nebula compute alloc --partition ${alloc.spec.partition} --wait`);
359
+ }
360
+ const kernelName = typeof values.kernel === 'string' ? values.kernel : undefined;
361
+ const bound = await client.getOrCreateKernelForFile(nbPath, kernelName, alloc.serverId);
362
+ if (!bound.success)
363
+ throw toCliError(bound.error, nbPath);
364
+ if (values.json) {
365
+ printJson({
366
+ allocationId: alloc.id,
367
+ serverId: alloc.serverId,
368
+ sessionId: bound.data.sessionId,
369
+ kernelName: bound.data.kernelName,
370
+ path: nbPath,
371
+ });
372
+ return EXIT.OK;
373
+ }
374
+ console.log(`bound: ${nbPath} → allocation ${alloc.id} (server ${alloc.serverId})`);
375
+ console.log(`session: ${bound.data.sessionId} (${bound.data.kernelName})`);
376
+ printHint(`nebula run ${nbPath} <cell-id> now executes on the allocation; cancel it when done: nebula compute cancel ${alloc.id}`, values);
377
+ return EXIT.OK;
378
+ }
379
+ // =============================================================================
380
+ // compute cancel
381
+ // =============================================================================
382
+ async function computeCancel(argv) {
383
+ const { values, positionals } = parse(argv);
384
+ if (values.help) {
385
+ console.log(COMPUTE_HELP);
386
+ return EXIT.OK;
387
+ }
388
+ const id = requirePositional(positionals, 0, 'id', 'nebula compute cancel <id>');
389
+ const client = makeClient(resolveUrl(values.url));
390
+ const result = await client.cancelAllocation(id);
391
+ if (!result.success) {
392
+ if (/not found/i.test(result.error ?? '')) {
393
+ throw new CliError(`allocation not found: ${id}`, EXIT.ERROR, 'list allocations with: nebula compute ls');
394
+ }
395
+ throw toCliError(result.error);
396
+ }
397
+ if (values.json) {
398
+ printJson({ cancelled: true, id });
399
+ return EXIT.OK;
400
+ }
401
+ console.log(`cancelled: ${id}`);
402
+ printHint('notebooks bound to it fall back to a new kernel on next use', values);
403
+ return EXIT.OK;
404
+ }
405
+ //# sourceMappingURL=compute.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/cli/compute.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * `nebula fs …` — file operations on the Nebula SERVER's filesystem
3
+ * (list / cat / write / rm / mv / download / upload).
4
+ *
5
+ * For agents running in a terminal ON the server, plain shell commands are
6
+ * simpler — this group exists for remote agents (laptop ↔ server) and for
7
+ * parity with the MCP file tools. Thin wrappers over the same NebulaClient
8
+ * methods the MCP server uses.
9
+ */
10
+ export declare function cmdFs(argv: string[]): Promise<number>;
11
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/cli/fs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmCH,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB3D"}