@fnndsc/brasa 0.16.1 → 0.18.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.
Files changed (68) hide show
  1. package/dist/api/index.js +1 -0
  2. package/dist/api/index.js.map +1 -1
  3. package/dist/buildinfo.json +1 -1
  4. package/dist/builtins/fs/acl.js +57 -1
  5. package/dist/builtins/fs/acl.js.map +1 -1
  6. package/dist/builtins/fs/cat.js +46 -9
  7. package/dist/builtins/fs/cat.js.map +1 -1
  8. package/dist/builtins/fs/cp.js +42 -2
  9. package/dist/builtins/fs/cp.js.map +1 -1
  10. package/dist/builtins/fs/destination.d.ts +52 -0
  11. package/dist/builtins/fs/destination.js +52 -0
  12. package/dist/builtins/fs/destination.js.map +1 -0
  13. package/dist/builtins/fs/download.js +5 -2
  14. package/dist/builtins/fs/download.js.map +1 -1
  15. package/dist/builtins/fs/mv.js +41 -1
  16. package/dist/builtins/fs/mv.js.map +1 -1
  17. package/dist/builtins/fs/rm.d.ts +6 -0
  18. package/dist/builtins/fs/rm.js +35 -17
  19. package/dist/builtins/fs/rm.js.map +1 -1
  20. package/dist/builtins/fs/upload.js +15 -4
  21. package/dist/builtins/fs/upload.js.map +1 -1
  22. package/dist/builtins/help.js +43 -6
  23. package/dist/builtins/help.js.map +1 -1
  24. package/dist/builtins/net/pacs.js +37 -1
  25. package/dist/builtins/net/pacs.js.map +1 -1
  26. package/dist/builtins/net/query.csv.d.ts +73 -0
  27. package/dist/builtins/net/query.csv.js +267 -0
  28. package/dist/builtins/net/query.csv.js.map +1 -0
  29. package/dist/builtins/net/query.d.ts +28 -1
  30. package/dist/builtins/net/query.fanout.d.ts +92 -0
  31. package/dist/builtins/net/query.fanout.js +171 -0
  32. package/dist/builtins/net/query.fanout.js.map +1 -0
  33. package/dist/builtins/net/query.js +709 -20
  34. package/dist/builtins/net/query.js.map +1 -1
  35. package/dist/builtins/net/status.js +4 -1
  36. package/dist/builtins/net/status.js.map +1 -1
  37. package/dist/builtins/proc.js +36 -6
  38. package/dist/builtins/proc.js.map +1 -1
  39. package/dist/builtins/procWatch.js +42 -2
  40. package/dist/builtins/procWatch.js.map +1 -1
  41. package/dist/builtins/res/feed.diagram.d.ts +13 -0
  42. package/dist/builtins/res/feed.diagram.js +34 -3
  43. package/dist/builtins/res/feed.diagram.js.map +1 -1
  44. package/dist/builtins/res/feed.js +43 -2
  45. package/dist/builtins/res/feed.js.map +1 -1
  46. package/dist/builtins/res/feed.tree.js +4 -1
  47. package/dist/builtins/res/feed.tree.js.map +1 -1
  48. package/dist/builtins/res/plugin.info.d.ts +32 -0
  49. package/dist/builtins/res/plugin.info.js +167 -0
  50. package/dist/builtins/res/plugin.info.js.map +1 -0
  51. package/dist/builtins/res/plugin.js +41 -1
  52. package/dist/builtins/res/plugin.js.map +1 -1
  53. package/dist/core/engine.d.ts +21 -0
  54. package/dist/core/engine.js +27 -0
  55. package/dist/core/engine.js.map +1 -1
  56. package/dist/core/promptContext.d.ts +1 -1
  57. package/dist/core/promptContext.js +9 -3
  58. package/dist/core/promptContext.js.map +1 -1
  59. package/dist/core/question.d.ts +27 -0
  60. package/dist/core/question.js +38 -0
  61. package/dist/core/question.js.map +1 -1
  62. package/dist/core/surface.d.ts +16 -3
  63. package/dist/core/surface.js.map +1 -1
  64. package/dist/lib/vfs/providers/static_content.js +10 -81
  65. package/dist/lib/vfs/providers/static_content.js.map +1 -1
  66. package/dist/lib/vfs/vfs.js +13 -1
  67. package/dist/lib/vfs/vfs.js.map +1 -1
  68. package/package.json +5 -5
@@ -210,6 +210,44 @@ async function feedComment_handle(parsed) {
210
210
  process.exitCode = 1;
211
211
  return envelope_error('', undefined, `${chalk.red(`Unknown comment op: ${op}. Use add, delete, or edit.`)}\n`);
212
212
  }
213
+ /**
214
+ * Removes a feed and everything hanging off it.
215
+ *
216
+ * Deletion is irreversible and takes the whole analysis with it — every
217
+ * plugin instance, every output — so it asks first, by default, naming what
218
+ * will go. `-f` skips the question for a caller that has already asked its
219
+ * own (a script, a surface that confirmed).
220
+ *
221
+ * @param parsed - The parsed argument tokens.
222
+ * @returns An envelope naming what was removed, or why it was not.
223
+ */
224
+ async function feedRemove_handle(parsed) {
225
+ const feedResult = await feedID_resolve(feedSpecifier_join(parsed._.slice(1)));
226
+ if (!feedResult.ok)
227
+ return feedResolution_error('Usage: feed rm [<feed>] [-f]');
228
+ const feedID = feedResult.value;
229
+ const forced = parsed.f === true || parsed.force === true;
230
+ if (!forced) {
231
+ const { repl_confirm } = await import('../../core/question.js');
232
+ let agreed = false;
233
+ try {
234
+ agreed = await repl_confirm(`Remove feed ${feedID} and everything in it? This cannot be undone `);
235
+ }
236
+ catch {
237
+ agreed = false;
238
+ }
239
+ if (!agreed) {
240
+ return envelope_ok(`feed ${feedID} was not removed\n`);
241
+ }
242
+ }
243
+ const { feed_delete } = await import('@fnndsc/cumin');
244
+ const removed = await feed_delete(feedID);
245
+ if (!removed.ok || !removed.value) {
246
+ process.exitCode = 1;
247
+ return envelope_error('', undefined, `${chalk.red(`feed rm: feed ${feedID} could not be removed`)}\n`);
248
+ }
249
+ return envelope_ok(`removed feed ${feedID}\n`, { kind: 'feed.rm', data: { feed: feedID } });
250
+ }
213
251
  /**
214
252
  * Handles feed commands.
215
253
  *
@@ -220,7 +258,7 @@ export async function builtin_feed(args) {
220
258
  const parsed = commandArgs_process(args);
221
259
  const subcommand = parsed._[0];
222
260
  if (!subcommand) {
223
- return envelope_ok(`${chalk.red("Usage: feed <list|create|inspect|search|note|comments|comment|tree> ...")}\n`);
261
+ return envelope_ok(`${chalk.red("Usage: feed <list|create|inspect|search|note|comments|comment|rm|tree> ...")}\n`);
224
262
  }
225
263
  try {
226
264
  if (subcommand === 'list') {
@@ -251,6 +289,9 @@ export async function builtin_feed(args) {
251
289
  process.exitCode = 1;
252
290
  return envelope_error('', undefined, `${chalk.red(`Failed to list comments for feed ${feedId}.`)}\n`);
253
291
  }
292
+ else if (subcommand === 'rm') {
293
+ return await feedRemove_handle(parsed);
294
+ }
254
295
  else if (subcommand === 'comment') {
255
296
  return await feedComment_handle(parsed);
256
297
  }
@@ -276,7 +317,7 @@ export async function builtin_feed(args) {
276
317
  return await feedDag_handle(feedResult.value, options.focusID, options.maxNodes, options.flat);
277
318
  }
278
319
  process.exitCode = 1;
279
- return envelope_error('', undefined, `${chalk.red(`Unknown subcommand: ${subcommand}. Usage: feed <list|create|inspect|search|note|comments|comment|tree|diagram>`)}\n`);
320
+ return envelope_error('', undefined, `${chalk.red(`Unknown subcommand: ${subcommand}. Usage: feed <list|create|inspect|search|note|comments|comment|rm|tree|diagram>`)}\n`);
280
321
  }
281
322
  catch (e) {
282
323
  const msg = e instanceof Error ? e.message : String(e);
@@ -1 +1 @@
1
- {"version":3,"file":"feed.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feed.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import chalk from 'chalk';
11
11
  import { feedGraphData_ensure, feedGraph_build } from '@fnndsc/salsa';
12
12
  import { envelope_ok, envelope_error } from '@fnndsc/cumin';
13
13
  import { feedTree_render } from './feed.tree.render.js';
14
+ import { feedIndexing_envelope } from './feed.diagram.js';
14
15
  /**
15
16
  * Handles `feed tree <feedId> [--focus <id>] [--max-nodes <n>] [--flat]`. Prepares the
16
17
  * feed's DAG cache-first (reusing warm ProcCache), then renders the tree.
@@ -22,7 +23,9 @@ import { feedTree_render } from './feed.tree.render.js';
22
23
  */
23
24
  export async function feedTree_handle(feedId, focusId, maxNodes, flat = false) {
24
25
  // Cache-first: reuse warm ProcCache, fetch only what's missing (see feedGraphData_ensure).
25
- await feedGraphData_ensure(feedId);
26
+ // A cold feed's walk is started and left to run: the answer is the indexing line.
27
+ if ((await feedGraphData_ensure(feedId)) === 'pending')
28
+ return feedIndexing_envelope(feedId);
26
29
  const graph = feedGraph_build(feedId);
27
30
  if (!graph) {
28
31
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"feed.tree.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAa,MAAM,eAAe,CAAC;AACjF,OAAO,EAAwB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAExE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,OAA2B,EAC3B,QAAgB,EAChB,OAAgB,KAAK;IAErB,2FAA2F;IAC3F,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAEnC,MAAM,KAAK,GAAqB,eAAe,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,MAAM,GAAmB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,KAAK,GAAc,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACxF,OAAO,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"feed.tree.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAa,MAAM,eAAe,CAAC;AACjF,OAAO,EAAwB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,OAA2B,EAC3B,QAAgB,EAChB,OAAgB,KAAK;IAErB,2FAA2F;IAC3F,kFAAkF;IAClF,IAAI,CAAC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE7F,MAAM,KAAK,GAAqB,eAAe,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,MAAM,GAAmB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,KAAK,GAAc,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACxF,OAAO,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { type Result } from '@fnndsc/cumin';
2
+ import { type PluginInfoModel } from '@fnndsc/menu';
3
+ /** A plugin's identity, as a `/bin` entry or a command line spells it. */
4
+ export interface PluginSpecifier {
5
+ name: string;
6
+ version: string;
7
+ /** The `/bin` basename that runs it. */
8
+ command: string;
9
+ }
10
+ /**
11
+ * Splits a `/bin` entry name into the plugin identity it addresses.
12
+ *
13
+ * @param entry - A `/bin` basename or full path (`pl-dcm2niix-v1.0.0`).
14
+ * @returns The name and version, or null when the entry names no version.
15
+ */
16
+ export declare function pluginSpecifier_parse(entry: string): PluginSpecifier | null;
17
+ /**
18
+ * Reads one registered plugin whole: its identity, its authoring facts, and
19
+ * every parameter it declares.
20
+ *
21
+ * @param specifier - The plugin's name, version and `/bin` command.
22
+ * @returns The model, or a failure with the reason on the error stack.
23
+ */
24
+ export declare function pluginInfo_build(specifier: PluginSpecifier): Promise<Result<PluginInfoModel>>;
25
+ /**
26
+ * Renders the plugin manual — the same text `cat /bin/<plugin>` has always
27
+ * printed, now a projection of the model rather than the only thing there is.
28
+ *
29
+ * @param model - The plugin model.
30
+ * @returns The formatted manual.
31
+ */
32
+ export declare function pluginInfoText_render(model: PluginInfoModel): string;
@@ -0,0 +1,167 @@
1
+ /**
2
+ * @file One registered plugin, as data — and the manual as a projection of it.
3
+ *
4
+ * A plugin is the one-node case of the compute graph, and until now its
5
+ * substance existed only as a rendered manual: `cat /bin/<plugin>` scraped
6
+ * CUBE and printed a table, and that table was the whole of what any surface
7
+ * could have. Nothing downstream could use it — not a card, not a parameter
8
+ * list, not a form.
9
+ *
10
+ * This module builds the model first and renders from it, so the text a
11
+ * terminal prints and the data a graphical surface reads are the same facts
12
+ * said twice rather than two independent scrapes that can disagree.
13
+ *
14
+ * Parameters are drained to exhaustion. The `{ limit: 100 }` this replaces
15
+ * dropped the tail of any plugin declaring more and said nothing about it —
16
+ * and a parameter table that stops early is worse than no table, because it
17
+ * still looks complete.
18
+ *
19
+ * @module
20
+ */
21
+ import chalk from 'chalk';
22
+ import { errorStack, plugin_find, pluginParameters_drain, Ok, Err, } from '@fnndsc/cumin';
23
+ import { session } from '../../session/index.js';
24
+ /** How a `/bin` entry names a plugin: `<name>-v<version>`. */
25
+ const BIN_VERSION_SEPARATOR = '-v';
26
+ /**
27
+ * Splits a `/bin` entry name into the plugin identity it addresses.
28
+ *
29
+ * @param entry - A `/bin` basename or full path (`pl-dcm2niix-v1.0.0`).
30
+ * @returns The name and version, or null when the entry names no version.
31
+ */
32
+ export function pluginSpecifier_parse(entry) {
33
+ const command = entry.replace(/^.*\//, '');
34
+ const cut = command.lastIndexOf(BIN_VERSION_SEPARATOR);
35
+ if (cut === -1)
36
+ return null;
37
+ const name = command.substring(0, cut);
38
+ const version = command.substring(cut + BIN_VERSION_SEPARATOR.length);
39
+ if (name === '' || version === '')
40
+ return null;
41
+ return { name, version, command };
42
+ }
43
+ /**
44
+ * Projects one wire parameter row onto the model's parameter shape.
45
+ *
46
+ * @param row - The parameter as CUBE serves it.
47
+ * @returns The typed parameter.
48
+ */
49
+ function parameter_project(row) {
50
+ const name = row.name;
51
+ const declaredFlag = row.flag;
52
+ const flag = typeof declaredFlag === 'string' && declaredFlag !== ''
53
+ ? declaredFlag
54
+ : `--${name}`;
55
+ return {
56
+ name,
57
+ type: row.type ?? 'string',
58
+ optional: row.optional ?? false,
59
+ flag,
60
+ ...(row.default === undefined ? {} : { default: row.default }),
61
+ ...(row.help === undefined || row.help === '' ? {} : { help: row.help }),
62
+ };
63
+ }
64
+ /**
65
+ * Reads one registered plugin whole: its identity, its authoring facts, and
66
+ * every parameter it declares.
67
+ *
68
+ * @param specifier - The plugin's name, version and `/bin` command.
69
+ * @returns The model, or a failure with the reason on the error stack.
70
+ */
71
+ export async function pluginInfo_build(specifier) {
72
+ const client = await session.connection.client_get();
73
+ if (!client) {
74
+ errorStack.stack_push('error', 'No active ChRIS connection to read a plugin.');
75
+ return Err();
76
+ }
77
+ const found = await plugin_find(client, specifier.name, specifier.version);
78
+ if (found === null) {
79
+ errorStack.stack_push('error', `Plugin not found on server: ${specifier.name} v${specifier.version}`);
80
+ return Err();
81
+ }
82
+ const rows = await pluginParameters_drain(found.handle);
83
+ const data = found.data;
84
+ return Ok({
85
+ ...(typeof data.id === 'number' ? { id: data.id } : {}),
86
+ name: data.name ?? specifier.name,
87
+ version: data.version ?? specifier.version,
88
+ type: data.type ?? 'ds',
89
+ ...(data.title === undefined || data.title === '' ? {} : { title: data.title }),
90
+ ...(data.description === undefined || data.description === '' ? {} : { description: data.description }),
91
+ ...(data.authors === undefined || data.authors === '' ? {} : { authors: data.authors }),
92
+ ...(data.documentation === undefined || data.documentation === '' ? {} : { documentation: data.documentation }),
93
+ ...(data.category === undefined || data.category === '' ? {} : { category: data.category }),
94
+ parameters: rows.map(parameter_project),
95
+ command: specifier.command,
96
+ });
97
+ }
98
+ /** Column widths of the rendered parameter table. */
99
+ const FLAG_WIDTH = 22;
100
+ const TYPE_WIDTH = 11;
101
+ const REQUIRED_WIDTH = 11;
102
+ const DEFAULT_WIDTH = 13;
103
+ /** Width of the rules that bracket the manual's sections. */
104
+ const RULE_WIDTH = 74;
105
+ /**
106
+ * Renders a parameter's default the way an operator reads it: the value, an
107
+ * explicit pair of quotes for the empty string, and `None` for no default at
108
+ * all — an empty cell would read as the empty string.
109
+ *
110
+ * @param parameter - The declared parameter.
111
+ * @returns The cell text.
112
+ */
113
+ function defaultCell_render(parameter) {
114
+ if (parameter.default === undefined || parameter.default === null)
115
+ return 'None';
116
+ const shown = String(parameter.default);
117
+ return shown === '' ? '""' : shown;
118
+ }
119
+ /**
120
+ * Renders the plugin manual — the same text `cat /bin/<plugin>` has always
121
+ * printed, now a projection of the model rather than the only thing there is.
122
+ *
123
+ * @param model - The plugin model.
124
+ * @returns The formatted manual.
125
+ */
126
+ export function pluginInfoText_render(model) {
127
+ const command = model.command ?? `${model.name}${BIN_VERSION_SEPARATOR}${model.version}`;
128
+ const lines = [];
129
+ lines.push('');
130
+ lines.push(chalk.bold.magenta(`${model.name.toUpperCase()} (Version ${model.version})`));
131
+ lines.push(chalk.gray('─'.repeat(RULE_WIDTH)));
132
+ lines.push(`${chalk.bold.blue('Type:')} ${model.type}`);
133
+ lines.push(`${chalk.bold.blue('Author:')} ${model.authors ?? 'FNNDSC <dev@babymri.org>'}`);
134
+ if (model.documentation !== undefined) {
135
+ lines.push(`${chalk.bold.blue('Repository:')} ${model.documentation}`);
136
+ }
137
+ lines.push('');
138
+ lines.push(chalk.bold.blue('DESCRIPTION'));
139
+ lines.push(` ${model.description ?? 'No description provided.'}`);
140
+ lines.push('');
141
+ lines.push(chalk.bold.blue('PARAMETERS'));
142
+ lines.push(` ${chalk.bold.white('Flag'.padEnd(FLAG_WIDTH))}${chalk.bold.white('Type'.padEnd(TYPE_WIDTH))}${chalk.bold.white('Required'.padEnd(REQUIRED_WIDTH))}${chalk.bold.white('Default'.padEnd(DEFAULT_WIDTH))}${chalk.bold.white('Description')}`);
143
+ lines.push(` ${chalk.gray('─'.repeat(RULE_WIDTH))}`);
144
+ for (const parameter of model.parameters) {
145
+ const required = parameter.optional ? 'No' : 'Yes';
146
+ lines.push(` ${chalk.yellow(parameter.flag.padEnd(FLAG_WIDTH))}${parameter.type.padEnd(TYPE_WIDTH)}${required.padEnd(REQUIRED_WIDTH)}${defaultCell_render(parameter).padEnd(DEFAULT_WIDTH)}${parameter.help ?? ''}`);
147
+ }
148
+ lines.push('');
149
+ lines.push(chalk.bold.blue('USAGE EXAMPLES'));
150
+ const required = model.parameters.filter((parameter) => !parameter.optional);
151
+ const optional = model.parameters.filter((parameter) => parameter.optional);
152
+ const requiredFlags = required
153
+ .map((parameter) => `${parameter.flag} "value"`)
154
+ .join(' ');
155
+ const basic = requiredFlags ? `${command} ${requiredFlags}` : command;
156
+ lines.push(` ${chalk.white(basic)} ${chalk.gray('# Basic execution')}`);
157
+ const first = optional[0];
158
+ if (first !== undefined) {
159
+ const withOptional = requiredFlags
160
+ ? `${command} ${requiredFlags} ${first.flag} "value"`
161
+ : `${command} ${first.flag} "value"`;
162
+ lines.push(` ${chalk.white(withOptional)} ${chalk.gray('# With optional parameter')}`);
163
+ }
164
+ lines.push('');
165
+ return lines.join('\n');
166
+ }
167
+ //# sourceMappingURL=plugin.info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.info.js","sourceRoot":"","sources":["../../../src/builtins/res/plugin.info.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ import { table_render } from '@fnndsc/chili/screen/screen.js';
22
22
  import { spinner } from '../../lib/spinner.js';
23
23
  import { errorStack, envelope_ok, envelope_error } from '@fnndsc/cumin';
24
24
  import { chili_capture } from '@fnndsc/chili/screen/output.js';
25
+ import { PLUGIN_INFO_MODEL_KIND } from '@fnndsc/menu';
26
+ import { pluginInfo_build, pluginInfoText_render, pluginSpecifier_parse, } from './plugin.info.js';
25
27
  import { authorizationFailure_is, sudoHint_build } from '../../core/elevation.js';
26
28
  /**
27
29
  * Handles plugin commands.
@@ -67,12 +69,15 @@ export async function builtin_plugin(args) {
67
69
  }
68
70
  return envelope_ok(`${chalk.gray('No fields found.')}\n`);
69
71
  }
72
+ else if (subcommand === 'info') {
73
+ return await pluginInfo_show(parsed._.slice(1));
74
+ }
70
75
  else if (subcommand === 'search') {
71
76
  const query = parsed._[1] ?? '';
72
77
  return await builtin_plugin(['list', `--search`, query]);
73
78
  }
74
79
  process.exitCode = 1;
75
- return envelope_error('', undefined, `${chalk.yellow(`Unknown subcommand: ${subcommand}. Usage: plugin <list|run|add|inspect|search>`)}\n`);
80
+ return envelope_error('', undefined, `${chalk.yellow(`Unknown subcommand: ${subcommand}. Usage: plugin <list|run|add|info|inspect|search>`)}\n`);
76
81
  }
77
82
  catch (e) {
78
83
  const msg = e instanceof Error ? e.message : String(e);
@@ -80,6 +85,41 @@ export async function builtin_plugin(args) {
80
85
  return envelope_error('', undefined, `${chalk.red(`Plugin error: ${msg}`)}\n`);
81
86
  }
82
87
  }
88
+ /**
89
+ * Shows one registered plugin: the manual on the terminal, the whole plugin
90
+ * on the wire.
91
+ *
92
+ * Spelled the way `/bin` spells it — `plugin info pl-dcm2niix-v1.0.0`, or the
93
+ * path itself — with `<name> <version>` accepted for an operator who has the
94
+ * two halves and not the entry name.
95
+ *
96
+ * @param words - The specifier: one `/bin` entry, or a name and a version.
97
+ * @returns An envelope carrying the manual and the `plugin.info` model.
98
+ */
99
+ async function pluginInfo_show(words) {
100
+ const entry = words[0];
101
+ if (entry === undefined) {
102
+ return envelope_ok(`${chalk.red('Usage: plugin info <name>-v<version> | <name> <version>')}\n`);
103
+ }
104
+ const version = words[1];
105
+ const specifier = version === undefined
106
+ ? pluginSpecifier_parse(entry)
107
+ : { name: entry.replace(/^.*\//, ''), version, command: `${entry.replace(/^.*\//, '')}-v${version}` };
108
+ if (specifier === null) {
109
+ process.exitCode = 1;
110
+ return envelope_error('', undefined, `${chalk.red(`Not a versioned plugin entry: ${entry}. Spell it '<name>-v<version>'.`)}\n`);
111
+ }
112
+ const built = await pluginInfo_build(specifier);
113
+ if (!built.ok) {
114
+ const problem = errorStack.stack_pop();
115
+ process.exitCode = 1;
116
+ return envelope_error('', undefined, `${chalk.red(problem?.message ?? 'Plugin not found.')}\n`);
117
+ }
118
+ return envelope_ok(pluginInfoText_render(built.value), {
119
+ kind: PLUGIN_INFO_MODEL_KIND,
120
+ data: built.value,
121
+ });
122
+ }
83
123
  /**
84
124
  * Interactive plugin add command with spinner and colored output.
85
125
  *
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/builtins/res/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/builtins/res/plugin.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,16 @@ export interface BrasaEngine {
50
50
  * @returns The file's bytes.
51
51
  */
52
52
  file_read?(filePath: string): Promise<Buffer>;
53
+ /**
54
+ * Writes bytes to one ChRIS path, resolved against the session's working
55
+ * directory. The twin of {@link Engine.file_read}: a surface that cannot
56
+ * reach the machine's disk (a browser) hands its bytes to the daemon,
57
+ * which puts them in the store through the kernel like any other write.
58
+ *
59
+ * @param filePath - The destination path (absolute or cwd-relative).
60
+ * @param bytes - The content to write.
61
+ */
62
+ file_write?(filePath: string, bytes: Buffer): Promise<void>;
53
63
  /**
54
64
  * Notes a regard write from a surface: the addressable thing the operator
55
65
  * most recently indicated. The engine retains it as session truth (last
@@ -155,6 +165,17 @@ export declare function command_handle(line: string): Promise<void>;
155
165
  * @returns The engine facade.
156
166
  */
157
167
  export declare function engine_create(): Promise<BrasaEngine>;
168
+ /**
169
+ * Writes bytes to one ChRIS path through the kernel's own create.
170
+ *
171
+ * A browser surface holds bytes the daemon's machine has never seen; this
172
+ * is how they reach the store without any surface talking to CUBE.
173
+ *
174
+ * @param filePath - The destination path (absolute or cwd-relative).
175
+ * @param bytes - The content to write.
176
+ * @throws {Error} When the store refused the write.
177
+ */
178
+ export declare function file_write(filePath: string, bytes: Buffer): Promise<void>;
158
179
  /**
159
180
  * Reads one ChRIS file's raw bytes through ChILI, resolved against the
160
181
  * session's working directory.
@@ -253,6 +253,7 @@ export async function engine_create() {
253
253
  line_cancel,
254
254
  line_complete,
255
255
  file_read,
256
+ file_write,
256
257
  regard_note: (regard) => session.regard_set(regard),
257
258
  regard_get: () => session.regard_get(),
258
259
  watch_set: (subject, owner, on) => {
@@ -268,6 +269,32 @@ export async function engine_create() {
268
269
  ambient_listen,
269
270
  };
270
271
  }
272
+ /**
273
+ * Writes bytes to one ChRIS path through the kernel's own create.
274
+ *
275
+ * A browser surface holds bytes the daemon's machine has never seen; this
276
+ * is how they reach the store without any surface talking to CUBE.
277
+ *
278
+ * @param filePath - The destination path (absolute or cwd-relative).
279
+ * @param bytes - The content to write.
280
+ * @throws {Error} When the store refused the write.
281
+ */
282
+ export async function file_write(filePath, bytes) {
283
+ const { path_resolve } = await import('../builtins/utils.js');
284
+ const { files_create } = await import('@fnndsc/salsa');
285
+ const { listCache_get } = await import('@fnndsc/cumin');
286
+ const resolved = await path_resolve(filePath);
287
+ const written = await files_create(bytes, resolved);
288
+ if (!written) {
289
+ throw new Error(`cannot write ${filePath}`);
290
+ }
291
+ // A write invalidates the listing it changed, as every writing builtin
292
+ // does. Without this the browser that delivered the file asks for the
293
+ // folder again and is served the folder as it was before the delivery —
294
+ // which reads as an upload that silently did nothing.
295
+ const parent = resolved.replace(/\/[^/]*$/, '') || '/';
296
+ listCache_get().cache_invalidate(parent);
297
+ }
271
298
  /**
272
299
  * Reads one ChRIS file's raw bytes through ChILI, resolved against the
273
300
  * session's working directory.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export interface SessionPromptContext {
34
34
  jobs: number;
35
35
  feeds: number;
36
36
  };
37
- /** The daemon's declared host-control tiers, when it acts on its own host. */
37
+ /** Calypso's declared host-control tiers, when it acts on its own host. */
38
38
  hostControl?: string[];
39
39
  /**
40
40
  * Warm-up steps that failed behind the prompt and have not since
@@ -46,19 +46,25 @@ export async function sessionPromptContext_build(options = {}) {
46
46
  // A feed's first-visit load and roster arrivals ride the same segment:
47
47
  // both are index movement no command announces, and the daemon keeps
48
48
  // pushing the promptline while the segment is present.
49
- const feedLoad = procCache_get().feedLoad_get();
49
+ const feedLoads = procCache_get().feedLoads_all();
50
+ const feedLoad = feedLoads[0] ?? null;
51
+ const feeds = feedLoads.map((load) => ({
52
+ id: load.feedID, loaded: load.loaded, total: load.total, ...(load.failed !== undefined ? { failed: load.failed } : {}),
53
+ }));
50
54
  const arrived = procCache_get().arrivals_recent();
55
+ const roster = procCache_get().rosterSync_get();
51
56
  const sweeping = warmupRaw.active || lifecycle.state === 'reconciling' || lifecycle.state === 'failed';
52
57
  const warmupFailures = warmupFailures_list();
53
- const procWarmup = sweeping || feedLoad !== null || arrived.length > 0
58
+ const procWarmup = sweeping || feedLoad !== null || arrived.length > 0 || roster !== null
54
59
  ? {
55
60
  loaded: warmupRaw.loaded,
56
61
  total: warmupRaw.total,
57
62
  restored,
58
63
  state: procState,
59
64
  sweeping,
60
- ...(feedLoad !== null ? { feed: { id: feedLoad.feedID, loaded: feedLoad.loaded, total: feedLoad.total } } : {}),
65
+ ...(feedLoad !== null ? { feed: feeds[0], feeds } : {}),
61
66
  ...(arrived.length > 0 ? { arrived } : {}),
67
+ ...(roster !== null ? { roster } : {}),
62
68
  }
63
69
  : undefined;
64
70
  // Steady-state counts stay visible after warm-up settles: warmup progress