@fnndsc/brasa 0.44.1 → 0.45.0

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,391 @@
1
+ /**
2
+ * @file The runner: a backend's long jobs, started, kept and stopped by the
3
+ * core (docs/stratus.adoc, D10).
4
+ *
5
+ * A job is an async function the backend hands in, given a context to
6
+ * report progress, write its log, keep what it must remember, and hear a
7
+ * stop. The runner keeps each job's record and whole log under the
8
+ * session's state folder, so a job outlives the command that started it and
9
+ * every surface; a job whose work runs elsewhere (a cloud's own job, an
10
+ * installer's poll) is picked up again after a restart through its source's
11
+ * `resume`. Each source is a task source, so `/proc/<source>` and the tiles
12
+ * show its jobs as they show any task.
13
+ *
14
+ * Starting a job needs the `tasks` tier: the surface the engine runs under
15
+ * says whether its operator granted it, and the runner refuses without it,
16
+ * so no backend starts a job past that door. Stopping is gentle: `kill`
17
+ * aborts the job's signal and the job ends when its current operation does;
18
+ * it is never forced.
19
+ *
20
+ * @module
21
+ */
22
+ import { EventEmitter } from 'events';
23
+ import * as fs from 'fs';
24
+ import * as os from 'os';
25
+ import * as path from 'path';
26
+ import { envelope_ok, taskState_isOver } from '@fnndsc/menu';
27
+ import { ambient_publish } from './ambient.js';
28
+ import { surface_get } from './surface.js';
29
+ /** The model a job's end travels as, on the ambient channel. */
30
+ export const JOB_MODEL_KIND = 'tasks.job';
31
+ /** How many of a job's last log lines its task carries as `logTail`. */
32
+ export const JOB_LOG_TAIL_LINES = 20;
33
+ /** Why a job did not start. */
34
+ export class JobRefusal extends Error {
35
+ /**
36
+ * @param message - The refusal, as the operator reads it.
37
+ */
38
+ constructor(message) {
39
+ super(message);
40
+ this.name = 'JobRefusal';
41
+ }
42
+ }
43
+ /**
44
+ * The folder the runner keeps a backend's jobs in:
45
+ * `$XDG_STATE_HOME/<backend>/jobs` (`~/.local/state` when unset).
46
+ *
47
+ * @param backendId - The backend's id.
48
+ * @param env - The environment.
49
+ * @returns The folder.
50
+ */
51
+ export function jobsRoot_of(backendId, env = process.env) {
52
+ const state = env['XDG_STATE_HOME'] || path.join(os.homedir(), '.local', 'state');
53
+ return path.join(state, backendId, 'jobs');
54
+ }
55
+ /**
56
+ * Writes a file whole or not at all.
57
+ *
58
+ * @param file - Where.
59
+ * @param text - What.
60
+ */
61
+ function file_writeAtomic(file, text) {
62
+ const temporary = `${file}.${process.pid}.tmp`;
63
+ fs.writeFileSync(temporary, text, { mode: 0o600 });
64
+ fs.renameSync(temporary, file);
65
+ }
66
+ /** The runner: every job source of one session. */
67
+ export class JobRunner {
68
+ root;
69
+ sources;
70
+ allowed;
71
+ entries = new Map();
72
+ events = new EventEmitter();
73
+ /**
74
+ * @param root - The folder its records and logs live in.
75
+ * @param sources - The backend's job sources.
76
+ * @param allowed - Whether starting a job is allowed now (the `tasks` tier).
77
+ */
78
+ constructor(root, sources, allowed = () => surface_get().capabilities.tasks === true) {
79
+ this.root = root;
80
+ this.sources = sources;
81
+ this.allowed = allowed;
82
+ this.events.setMaxListeners(0);
83
+ for (const source of sources)
84
+ this.records_load(source.id);
85
+ }
86
+ /**
87
+ * A job's key in the map.
88
+ *
89
+ * @param source - Its source's id.
90
+ * @param id - Its id.
91
+ * @returns The key.
92
+ */
93
+ key_of(source, id) {
94
+ return `${source}/${id}`;
95
+ }
96
+ /**
97
+ * A source's folder, made when missing.
98
+ *
99
+ * @param source - Its id.
100
+ * @returns The folder.
101
+ */
102
+ folder_of(source) {
103
+ const folder = path.join(this.root, source);
104
+ fs.mkdirSync(folder, { recursive: true, mode: 0o700 });
105
+ return folder;
106
+ }
107
+ /**
108
+ * Reads a source's records back from disk.
109
+ *
110
+ * @param source - Its id.
111
+ */
112
+ records_load(source) {
113
+ const folder = path.join(this.root, source);
114
+ if (!fs.existsSync(folder))
115
+ return;
116
+ for (const name of fs.readdirSync(folder).filter((file) => file.endsWith('.json'))) {
117
+ try {
118
+ const record = JSON.parse(fs.readFileSync(path.join(folder, name), 'utf-8'));
119
+ const tail = this.logLines_read(source, record.id).slice(-JOB_LOG_TAIL_LINES);
120
+ this.entries.set(this.key_of(source, record.id), { record, tail });
121
+ }
122
+ catch {
123
+ // A torn record is no job; the next start of that id replaces it.
124
+ }
125
+ }
126
+ }
127
+ /**
128
+ * A job's log, as lines.
129
+ *
130
+ * @param source - Its source.
131
+ * @param id - Its id.
132
+ * @returns The lines (none when it has no log).
133
+ */
134
+ logLines_read(source, id) {
135
+ const file = path.join(this.root, source, `${id}.log`);
136
+ if (!fs.existsSync(file))
137
+ return [];
138
+ return fs.readFileSync(file, 'utf-8').split('\n').filter((line) => line !== '');
139
+ }
140
+ /**
141
+ * Saves a job's record.
142
+ *
143
+ * @param entry - The job.
144
+ */
145
+ record_save(entry) {
146
+ file_writeAtomic(path.join(this.folder_of(entry.record.source), `${entry.record.id}.json`), `${JSON.stringify(entry.record, null, 2)}\n`);
147
+ }
148
+ /**
149
+ * Adds a line to a job's log, on disk and in its tail, and tells anyone following.
150
+ *
151
+ * @param entry - The job.
152
+ * @param line - The line.
153
+ */
154
+ log_append(entry, line) {
155
+ const stamped = `${new Date().toISOString().slice(11, 19)} ${line}`;
156
+ fs.appendFileSync(path.join(this.folder_of(entry.record.source), `${entry.record.id}.log`), `${stamped}\n`, { mode: 0o600 });
157
+ entry.tail.push(stamped);
158
+ if (entry.tail.length > JOB_LOG_TAIL_LINES)
159
+ entry.tail.shift();
160
+ this.events.emit(`log:${this.key_of(entry.record.source, entry.record.id)}`, stamped);
161
+ }
162
+ /**
163
+ * Runs a job's work to its end and records how it ended.
164
+ *
165
+ * @param entry - The job.
166
+ * @param run - Its work.
167
+ * @returns Its record at the end.
168
+ */
169
+ async work_run(entry, run) {
170
+ const controller = new AbortController();
171
+ entry.controller = controller;
172
+ const context = {
173
+ signal: controller.signal,
174
+ data: entry.record.data,
175
+ progress_set: (progress) => { entry.record.progress = progress; this.record_save(entry); },
176
+ log_write: (line) => { this.log_append(entry, line); },
177
+ data_set: (key, value) => { entry.record.data[key] = value; this.record_save(entry); },
178
+ };
179
+ try {
180
+ await run(context);
181
+ entry.record.state = controller.signal.aborted ? 'cancelled' : 'done';
182
+ entry.record.outcome = controller.signal.aborted ? 'stopped when asked' : 'done';
183
+ }
184
+ catch (error) {
185
+ entry.record.state = controller.signal.aborted ? 'cancelled' : 'failed';
186
+ entry.record.outcome = error instanceof Error ? error.message : String(error);
187
+ this.log_append(entry, `${entry.record.state}: ${entry.record.outcome}`);
188
+ }
189
+ entry.record.ended = new Date().toISOString();
190
+ delete entry.controller;
191
+ this.record_save(entry);
192
+ this.events.emit(`end:${this.key_of(entry.record.source, entry.record.id)}`, entry.record);
193
+ // Every surface hears a job end, as it hears a chime: a line and its model.
194
+ ambient_publish({
195
+ kind: 'envelope',
196
+ envelope: envelope_ok(`/proc/${entry.record.source}/${entry.record.id}: ${entry.record.state}${entry.record.state === 'done' ? '' : ` (${entry.record.outcome ?? ''})`}\n`, { kind: JOB_MODEL_KIND, data: { ...entry.record } }),
197
+ });
198
+ return entry.record;
199
+ }
200
+ /**
201
+ * Starts a job.
202
+ *
203
+ * @param source - Its source's id.
204
+ * @param id - Its id (a path segment); a job of that id that has ended is replaced.
205
+ * @param label - What an operator reads it as.
206
+ * @param run - Its work.
207
+ * @param data - What it starts out remembering.
208
+ * @returns Its record as it starts; `finished` resolves with its record at the end.
209
+ * @throws JobRefusal - Without the `tasks` tier, for an unknown source, or while that id still runs.
210
+ */
211
+ job_start(source, id, label, run, data = {}) {
212
+ if (!this.allowed())
213
+ throw new JobRefusal(`${id}: Operation not permitted: starting a task needs the tasks tier (calypso --host-control tasks)`);
214
+ if (!this.sources.some((candidate) => candidate.id === source))
215
+ throw new JobRefusal(`${id}: no task source ${source}`);
216
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(id))
217
+ throw new JobRefusal(`${id}: a task's name is letters, digits, '.', '_' and '-'`);
218
+ const existing = this.entries.get(this.key_of(source, id));
219
+ if (existing !== undefined && !taskState_isOver(existing.record.state))
220
+ throw new JobRefusal(`${id}: already running (/proc/${source}/${id})`);
221
+ const folder = this.folder_of(source);
222
+ fs.rmSync(path.join(folder, `${id}.log`), { force: true });
223
+ const entry = { record: { id, source, label, state: 'running', started: new Date().toISOString(), data: { ...data } }, tail: [] };
224
+ this.entries.set(this.key_of(source, id), entry);
225
+ this.record_save(entry);
226
+ entry.done = this.work_run(entry, run);
227
+ return { record: { ...entry.record }, finished: entry.done };
228
+ }
229
+ /**
230
+ * Picks up the jobs that were running when the session last ended: each
231
+ * source's `resume` gives the work to go on with, or the job is marked
232
+ * failed, saying why. Run once, after the surface is installed.
233
+ *
234
+ * @returns How many went on.
235
+ */
236
+ jobs_resume() {
237
+ let resumed = 0;
238
+ for (const entry of this.entries.values()) {
239
+ if (taskState_isOver(entry.record.state) || entry.controller !== undefined)
240
+ continue;
241
+ const source = this.sources.find((candidate) => candidate.id === entry.record.source);
242
+ const run = source?.resume?.(entry.record) ?? null;
243
+ if (run === null || !this.allowed()) {
244
+ entry.record.state = 'failed';
245
+ entry.record.ended = new Date().toISOString();
246
+ entry.record.outcome = run === null ? 'interrupted: the session ended while it ran, and it cannot be picked up again' : 'interrupted: the session restarted without the tasks tier';
247
+ this.log_append(entry, `failed: ${entry.record.outcome}`);
248
+ this.record_save(entry);
249
+ continue;
250
+ }
251
+ this.log_append(entry, 'picked up again after a restart');
252
+ entry.done = this.work_run(entry, run);
253
+ resumed++;
254
+ }
255
+ return resumed;
256
+ }
257
+ /**
258
+ * Asks a running job to stop.
259
+ *
260
+ * @param source - Its source.
261
+ * @param id - Its id.
262
+ * @returns What happened.
263
+ */
264
+ job_stop(source, id) {
265
+ const entry = this.entries.get(this.key_of(source, id));
266
+ if (entry === undefined)
267
+ return 'unknown';
268
+ if (entry.controller === undefined)
269
+ return 'not-running';
270
+ if (entry.controller.signal.aborted)
271
+ return 'already-stopping';
272
+ this.log_append(entry, 'asked to stop; it ends when its current operation does');
273
+ entry.controller.abort();
274
+ return 'stopping';
275
+ }
276
+ /**
277
+ * One job's record.
278
+ *
279
+ * @param source - Its source.
280
+ * @param id - Its id.
281
+ * @returns A copy, or undefined.
282
+ */
283
+ job_get(source, id) {
284
+ const entry = this.entries.get(this.key_of(source, id));
285
+ return entry === undefined ? undefined : { ...entry.record, data: { ...entry.record.data } };
286
+ }
287
+ /**
288
+ * Every job, or one source's.
289
+ *
290
+ * @param source - A source's id; absent, all.
291
+ * @returns Copies of their records, newest first.
292
+ */
293
+ jobs_list(source) {
294
+ return [...this.entries.values()]
295
+ .filter((entry) => source === undefined || entry.record.source === source)
296
+ .map((entry) => ({ ...entry.record, data: { ...entry.record.data } }))
297
+ .sort((a, b) => b.started.localeCompare(a.started));
298
+ }
299
+ /**
300
+ * Follows a job, as `tail -f` does: its last lines kept in memory first,
301
+ * then each new one, then its end.
302
+ *
303
+ * @param source - Its source.
304
+ * @param id - Its id.
305
+ * @param onLine - Hears each new line.
306
+ * @param signal - Stops following (the job goes on).
307
+ * @returns Its record at the end, or at the moment following stopped.
308
+ */
309
+ job_follow(source, id, onLine, signal) {
310
+ const key = this.key_of(source, id);
311
+ const entry = this.entries.get(key);
312
+ if (entry === undefined)
313
+ return Promise.resolve(undefined);
314
+ for (const line of entry.tail)
315
+ onLine(line);
316
+ if (taskState_isOver(entry.record.state))
317
+ return Promise.resolve({ ...entry.record });
318
+ return new Promise((resolve) => {
319
+ const line_hear = (line) => onLine(line);
320
+ const finish = () => {
321
+ this.events.off(`log:${key}`, line_hear);
322
+ this.events.off(`end:${key}`, finish);
323
+ signal?.removeEventListener('abort', finish);
324
+ resolve({ ...entry.record });
325
+ };
326
+ this.events.on(`log:${key}`, line_hear);
327
+ this.events.on(`end:${key}`, finish);
328
+ signal?.addEventListener('abort', finish, { once: true });
329
+ });
330
+ }
331
+ /**
332
+ * A job's log, whole.
333
+ *
334
+ * @param source - Its source.
335
+ * @param id - Its id.
336
+ * @returns The log, or null when there is none.
337
+ */
338
+ log_read(source, id) {
339
+ const lines = this.logLines_read(source, id);
340
+ return lines.length === 0 && !this.entries.has(this.key_of(source, id)) ? null : lines.map((line) => `${line}\n`).join('');
341
+ }
342
+ /**
343
+ * The job sources as task sources, for `/proc` and the tiles.
344
+ *
345
+ * @returns One task source per job source.
346
+ */
347
+ taskSources_get() {
348
+ return this.sources.map((source) => ({
349
+ id: source.id,
350
+ label: source.label,
351
+ list: async () => this.jobs_list(source.id).map((record) => this.task_of(record)),
352
+ log: async (id) => this.log_read(source.id, id),
353
+ }));
354
+ }
355
+ /**
356
+ * A job as a task.
357
+ *
358
+ * @param record - Its record.
359
+ * @returns The task.
360
+ */
361
+ task_of(record) {
362
+ const entry = this.entries.get(this.key_of(record.source, record.id));
363
+ return {
364
+ id: record.id,
365
+ label: record.label,
366
+ state: record.state,
367
+ ...(record.progress !== undefined ? { progress: record.progress } : {}),
368
+ started: record.started,
369
+ ...(record.ended !== undefined ? { ended: record.ended } : {}),
370
+ ...(entry !== undefined && entry.tail.length > 0 ? { logTail: entry.tail.map((line) => `${line}\n`).join('') } : {}),
371
+ };
372
+ }
373
+ }
374
+ let installed = null;
375
+ /**
376
+ * Installs the session's runner.
377
+ *
378
+ * @param runner - The runner, or null to remove it.
379
+ */
380
+ export function runner_install(runner) {
381
+ installed = runner;
382
+ }
383
+ /**
384
+ * The session's runner.
385
+ *
386
+ * @returns It, or null when the backend runs no jobs.
387
+ */
388
+ export function runner_get() {
389
+ return installed;
390
+ }
391
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,20 @@ export interface StackVersions {
43
43
  * @returns The version strings, keyed by package.
44
44
  */
45
45
  export declare function versions_get(): StackVersions;
46
+ /** The packages that are ChRIS's own: a session over another backend runs them without being made of them. */
47
+ export declare const CHRIS_STACK_PACKAGES: readonly ["chili", "salsa", "cumin"];
48
+ /** A stack's versions as a session names them: ChRIS's own packages only when it is a ChRIS session. */
49
+ export type SessionStackVersions = Omit<StackVersions, (typeof CHRIS_STACK_PACKAGES)[number]> & Partial<Pick<StackVersions, (typeof CHRIS_STACK_PACKAGES)[number]>>;
50
+ /**
51
+ * The versions a session over a backend is made of: every package for
52
+ * ChRIS, and without ChRIS's own (`chili salsa cumin`) for any other, which
53
+ * loads them only because they are installed beside it.
54
+ *
55
+ * @param versions - The stack's versions.
56
+ * @param backendId - The session's backend (`chris`, `stratus`, `null`).
57
+ * @returns The versions the session's banner and attach answer name.
58
+ */
59
+ export declare function versionsForBackend_of(versions: StackVersions, backendId: string): SessionStackVersions;
46
60
  /**
47
61
  * Builds the terse `--version` report: one aligned `name version` line per
48
62
  * package, versions in a single column.
@@ -137,6 +137,25 @@ export function versions_get() {
137
137
  calypso: byPkg.calypso,
138
138
  };
139
139
  }
140
+ /** The packages that are ChRIS's own: a session over another backend runs them without being made of them. */
141
+ export const CHRIS_STACK_PACKAGES = ['chili', 'salsa', 'cumin'];
142
+ /**
143
+ * The versions a session over a backend is made of: every package for
144
+ * ChRIS, and without ChRIS's own (`chili salsa cumin`) for any other, which
145
+ * loads them only because they are installed beside it.
146
+ *
147
+ * @param versions - The stack's versions.
148
+ * @param backendId - The session's backend (`chris`, `stratus`, `null`).
149
+ * @returns The versions the session's banner and attach answer name.
150
+ */
151
+ export function versionsForBackend_of(versions, backendId) {
152
+ if (backendId === 'chris')
153
+ return { ...versions };
154
+ const kept = { ...versions };
155
+ for (const pkg of CHRIS_STACK_PACKAGES)
156
+ delete kept[pkg];
157
+ return kept;
158
+ }
140
159
  /**
141
160
  * Builds the terse `--version` report: one aligned `name version` line per
142
161
  * package, versions in a single column.
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/core/version.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -17,7 +17,8 @@ export * from './core/question.js';
17
17
  export * from './core/progress.js';
18
18
  export * from './core/commandRegistry.js';
19
19
  export * from './core/tasks.js';
20
+ export * from './core/runner.js';
20
21
  export * from './core/version.js';
21
22
  export * from './logo/brain.js';
22
23
  export { nullBackend_make, type NullBackendOptions } from './null/backend.js';
23
- export { commandCancellation_stopped } from './core/cancellation.js';
24
+ export { commandCancellation_enable, commandCancellation_signalGet, commandCancellation_stopped } from './core/cancellation.js';
package/dist/core.js CHANGED
@@ -17,8 +17,9 @@ export * from './core/question.js';
17
17
  export * from './core/progress.js';
18
18
  export * from './core/commandRegistry.js';
19
19
  export * from './core/tasks.js';
20
+ export * from './core/runner.js';
20
21
  export * from './core/version.js';
21
22
  export * from './logo/brain.js';
22
23
  export { nullBackend_make } from './null/backend.js';
23
- export { commandCancellation_stopped } from './core/cancellation.js';
24
+ export { commandCancellation_enable, commandCancellation_signalGet, commandCancellation_stopped } from './core/cancellation.js';
24
25
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAA2B,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAA2B,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC"}