@fnndsc/brasa 0.1.0 → 0.3.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.
- package/dist/builtins/fs/cat.js +3 -63
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/download.d.ts +3 -1
- package/dist/builtins/fs/download.js +10 -7
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/du.d.ts +2 -1
- package/dist/builtins/fs/du.js +15 -7
- package/dist/builtins/fs/du.js.map +1 -1
- package/dist/builtins/fs/edit.d.ts +3 -1
- package/dist/builtins/fs/edit.js +17 -23
- package/dist/builtins/fs/edit.js.map +1 -1
- package/dist/builtins/fs/ls.d.ts +2 -1
- package/dist/builtins/fs/ls.js +22 -11
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +2 -1
- package/dist/builtins/fs/pull.js +31 -27
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/tree.d.ts +2 -1
- package/dist/builtins/fs/tree.js +10 -13
- package/dist/builtins/fs/tree.js.map +1 -1
- package/dist/builtins/fs/upload.d.ts +3 -1
- package/dist/builtins/fs/upload.js +10 -8
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/help.d.ts +16 -1
- package/dist/builtins/help.js +39 -18
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/net/connect.d.ts +3 -2
- package/dist/builtins/net/connect.js +6 -8
- package/dist/builtins/net/connect.js.map +1 -1
- package/dist/builtins/net/cubepath.d.ts +2 -1
- package/dist/builtins/net/cubepath.js +19 -15
- package/dist/builtins/net/cubepath.js.map +1 -1
- package/dist/builtins/net/logout.d.ts +4 -2
- package/dist/builtins/net/logout.js +7 -4
- package/dist/builtins/net/logout.js.map +1 -1
- package/dist/builtins/net/pacs.d.ts +4 -1
- package/dist/builtins/net/pacs.js +38 -39
- package/dist/builtins/net/pacs.js.map +1 -1
- package/dist/builtins/net/query.d.ts +2 -2
- package/dist/builtins/net/query.js +20 -23
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/parametersofplugin.d.ts +3 -2
- package/dist/builtins/parametersofplugin.js +8 -9
- package/dist/builtins/parametersofplugin.js.map +1 -1
- package/dist/builtins/proc.d.ts +3 -1
- package/dist/builtins/proc.js +74 -64
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/res/compute.d.ts +3 -1
- package/dist/builtins/res/compute.js +9 -12
- package/dist/builtins/res/compute.js.map +1 -1
- package/dist/builtins/res/feed.d.ts +3 -1
- package/dist/builtins/res/feed.js +58 -83
- package/dist/builtins/res/feed.js.map +1 -1
- package/dist/builtins/res/files.d.ts +7 -3
- package/dist/builtins/res/files.js +26 -25
- package/dist/builtins/res/files.js.map +1 -1
- package/dist/builtins/res/group.d.ts +3 -1
- package/dist/builtins/res/group.js +10 -14
- package/dist/builtins/res/group.js.map +1 -1
- package/dist/builtins/res/pipeline.d.ts +2 -1
- package/dist/builtins/res/pipeline.js +53 -53
- package/dist/builtins/res/pipeline.js.map +1 -1
- package/dist/builtins/res/plugin.d.ts +6 -2
- package/dist/builtins/res/plugin.js +47 -50
- package/dist/builtins/res/plugin.js.map +1 -1
- package/dist/builtins/res/plugininstance.d.ts +2 -1
- package/dist/builtins/res/plugininstance.js +9 -14
- package/dist/builtins/res/plugininstance.js.map +1 -1
- package/dist/builtins/res/pluginmeta.d.ts +2 -1
- package/dist/builtins/res/pluginmeta.js +9 -14
- package/dist/builtins/res/pluginmeta.js.map +1 -1
- package/dist/builtins/res/tag.d.ts +3 -1
- package/dist/builtins/res/tag.js +10 -14
- package/dist/builtins/res/tag.js.map +1 -1
- package/dist/builtins/res/workflow.d.ts +2 -1
- package/dist/builtins/res/workflow.js +9 -14
- package/dist/builtins/res/workflow.js.map +1 -1
- package/dist/builtins/store.d.ts +3 -1
- package/dist/builtins/store.js +19 -35
- package/dist/builtins/store.js.map +1 -1
- package/dist/builtins/sys/context.d.ts +2 -1
- package/dist/builtins/sys/context.js +5 -4
- package/dist/builtins/sys/context.js.map +1 -1
- package/dist/core/chiliDelegate.d.ts +10 -7
- package/dist/core/chiliDelegate.js +20 -11
- package/dist/core/chiliDelegate.js.map +1 -1
- package/dist/core/dispatch.d.ts +6 -0
- package/dist/core/dispatch.js +121 -169
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/sink.d.ts +57 -18
- package/dist/core/sink.js +77 -77
- package/dist/core/sink.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +2 -2
- package/dist/lib/vfs/vfs.js +10 -14
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/package.json +2 -2
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
* @module
|
|
14
14
|
*/
|
|
15
15
|
import chalk from 'chalk';
|
|
16
|
-
import { chrisContext, errorStack, pipeline_resolve, } from '@fnndsc/cumin';
|
|
16
|
+
import { chrisContext, errorStack, pipeline_resolve, envelope_ok, envelope_error, } from '@fnndsc/cumin';
|
|
17
17
|
import { pipelines_list, pipeline_run, pipeline_sourceGet, } from '@fnndsc/salsa';
|
|
18
18
|
import { pipelineFields_fetch } from '@fnndsc/chili/commands/pipeline/fields.js';
|
|
19
|
-
import {
|
|
20
|
-
import { args_checkHasHelpFlag,
|
|
19
|
+
import { table_render } from '@fnndsc/chili/screen/screen.js';
|
|
20
|
+
import { args_checkHasHelpFlag, help_render } from '../help.js';
|
|
21
|
+
import { sink_get, sink_dataLine, sink_errLine } from '../../core/sink.js';
|
|
21
22
|
import { pipelineRunArgs_parse } from './pipeline.args.js';
|
|
22
23
|
import { session } from '../../session/index.js';
|
|
23
24
|
/**
|
|
@@ -28,33 +29,33 @@ import { session } from '../../session/index.js';
|
|
|
28
29
|
async function pipelineNodes_print(pipelineId) {
|
|
29
30
|
const client = await session.connection.client_get();
|
|
30
31
|
if (!client) {
|
|
31
|
-
|
|
32
|
+
sink_errLine(chalk.red('pipeline info: not connected to ChRIS'));
|
|
32
33
|
return;
|
|
33
34
|
}
|
|
34
35
|
try {
|
|
35
36
|
const pipelineObj = await client.getPipeline(pipelineId);
|
|
36
37
|
if (!pipelineObj) {
|
|
37
|
-
|
|
38
|
+
sink_errLine(chalk.red(`pipeline info: pipeline ${pipelineId} not found`));
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
const pipingsResponse = await pipelineObj.getPluginPipings({ limit: 1000 });
|
|
41
42
|
const pipings = pipingsResponse.getItems();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
sink_dataLine(chalk.bold.blue('\nNodes:\n'));
|
|
44
|
+
sink_dataLine(` ${chalk.bold('ID'.padEnd(6))}${chalk.bold('Title'.padEnd(30))}${chalk.bold('Plugin')}`);
|
|
45
|
+
sink_dataLine(` ${chalk.gray('─'.repeat(70))}`);
|
|
45
46
|
for (const piping of pipings) {
|
|
46
47
|
const d = piping.data;
|
|
47
48
|
const id = String(d.id ?? '').padEnd(6);
|
|
48
49
|
const title = String(d.title ?? '(untitled)').padEnd(30);
|
|
49
50
|
const plugin = String(d.plugin_name ?? '') + ' v' + String(d.plugin_version ?? '');
|
|
50
51
|
const previous = d.previous_id ? chalk.gray(` ← node ${d.previous_id}`) : chalk.gray(' (root)');
|
|
51
|
-
|
|
52
|
+
sink_dataLine(` ${chalk.cyan(id)}${chalk.white(title)}${chalk.yellow(plugin)}${previous}`);
|
|
52
53
|
}
|
|
53
|
-
|
|
54
|
+
sink_dataLine('');
|
|
54
55
|
}
|
|
55
56
|
catch (error) {
|
|
56
57
|
const msg = error instanceof Error ? error.message : String(error);
|
|
57
|
-
|
|
58
|
+
sink_errLine(chalk.red(`pipeline info: ${msg}`));
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
/**
|
|
@@ -66,20 +67,20 @@ async function pipelineList_handle(args) {
|
|
|
66
67
|
const search = args[1];
|
|
67
68
|
const data = await pipelines_list(search);
|
|
68
69
|
if (!data || data.tableData.length === 0) {
|
|
69
|
-
|
|
70
|
+
sink_dataLine(chalk.yellow('No pipelines registered.'));
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
sink_dataLine('');
|
|
74
|
+
sink_dataLine(` ${chalk.bold('ID'.padEnd(6))}${chalk.bold('Name'.padEnd(40))}${chalk.bold('Category'.padEnd(16))}${chalk.bold('Authors')}`);
|
|
75
|
+
sink_dataLine(` ${chalk.gray('─'.repeat(80))}`);
|
|
75
76
|
for (const row of data.tableData) {
|
|
76
77
|
const id = String(row.id ?? '').padEnd(6);
|
|
77
78
|
const name = String(row.name ?? '').padEnd(40);
|
|
78
79
|
const cat = String(row.category ?? '').padEnd(16);
|
|
79
80
|
const authors = String(row.authors ?? '');
|
|
80
|
-
|
|
81
|
+
sink_dataLine(` ${chalk.cyan(id)}${chalk.magenta(name)}${chalk.gray(cat)}${chalk.gray(authors)}`);
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
+
sink_dataLine('');
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
86
|
* Handles `pipeline info <name|id>`.
|
|
@@ -89,27 +90,27 @@ async function pipelineList_handle(args) {
|
|
|
89
90
|
async function pipelineInfo_handle(args) {
|
|
90
91
|
const nameOrId = args[1];
|
|
91
92
|
if (!nameOrId) {
|
|
92
|
-
|
|
93
|
+
sink_errLine(chalk.red('Usage: pipeline info <name|id>'));
|
|
93
94
|
process.exitCode = 1;
|
|
94
95
|
return;
|
|
95
96
|
}
|
|
96
97
|
const result = await pipeline_resolve(nameOrId);
|
|
97
98
|
if (!result.ok) {
|
|
98
99
|
const err = errorStack.stack_pop();
|
|
99
|
-
|
|
100
|
+
sink_errLine(chalk.red(`pipeline info: ${err?.message ?? 'not found'}`));
|
|
100
101
|
process.exitCode = 1;
|
|
101
102
|
return;
|
|
102
103
|
}
|
|
103
104
|
const p = result.value;
|
|
104
|
-
|
|
105
|
-
|
|
105
|
+
sink_dataLine('');
|
|
106
|
+
sink_dataLine(`${chalk.bold.magenta(p.name)} ${chalk.gray(`[id: ${p.id}]`)}`);
|
|
106
107
|
if (p.description)
|
|
107
|
-
|
|
108
|
+
sink_dataLine(chalk.white(` ${p.description}`));
|
|
108
109
|
if (p.authors)
|
|
109
|
-
|
|
110
|
+
sink_dataLine(chalk.gray(` Authors: ${p.authors}`));
|
|
110
111
|
if (p.category)
|
|
111
|
-
|
|
112
|
-
|
|
112
|
+
sink_dataLine(chalk.gray(` Category: ${p.category}`));
|
|
113
|
+
sink_dataLine(chalk.gray(` Locked: ${p.locked ? 'yes' : 'no'}`));
|
|
113
114
|
await pipelineNodes_print(p.id);
|
|
114
115
|
}
|
|
115
116
|
/**
|
|
@@ -124,14 +125,14 @@ async function pipelineRun_previousInstId(previousOverride) {
|
|
|
124
125
|
return previousOverride;
|
|
125
126
|
const contextStr = await chrisContext.ChRISplugin_get();
|
|
126
127
|
if (!contextStr) {
|
|
127
|
-
|
|
128
|
-
|
|
128
|
+
sink_errLine(chalk.red('pipeline run: no plugin instance in context.'));
|
|
129
|
+
sink_errLine(chalk.gray(' Navigate to a feed node first, or use --previous <id>'));
|
|
129
130
|
process.exitCode = 1;
|
|
130
131
|
return null;
|
|
131
132
|
}
|
|
132
133
|
const previousInstId = parseInt(contextStr, 10);
|
|
133
134
|
if (isNaN(previousInstId)) {
|
|
134
|
-
|
|
135
|
+
sink_errLine(chalk.red(`pipeline run: invalid context instance '${contextStr}'`));
|
|
135
136
|
process.exitCode = 1;
|
|
136
137
|
return null;
|
|
137
138
|
}
|
|
@@ -145,7 +146,7 @@ async function pipelineRun_previousInstId(previousOverride) {
|
|
|
145
146
|
async function pipelineRun_handle(args) {
|
|
146
147
|
const nameOrId = args[1];
|
|
147
148
|
if (!nameOrId) {
|
|
148
|
-
|
|
149
|
+
sink_errLine(chalk.red('Usage: pipeline run <name|id> [--compute <resource>] [--previous <inst_id>]'));
|
|
149
150
|
process.exitCode = 1;
|
|
150
151
|
return;
|
|
151
152
|
}
|
|
@@ -156,21 +157,21 @@ async function pipelineRun_handle(args) {
|
|
|
156
157
|
const pipelineResult = await pipeline_resolve(nameOrId);
|
|
157
158
|
if (!pipelineResult.ok) {
|
|
158
159
|
const err = errorStack.stack_pop();
|
|
159
|
-
|
|
160
|
+
sink_errLine(chalk.red(`pipeline run: ${err?.message ?? 'pipeline not found'}`));
|
|
160
161
|
process.exitCode = 1;
|
|
161
162
|
return;
|
|
162
163
|
}
|
|
163
|
-
|
|
164
|
+
sink_dataLine(chalk.gray(`Running pipeline '${pipelineResult.value.name}' on instance ${previousInstId}...`));
|
|
164
165
|
const runResult = await pipeline_run(nameOrId, previousInstId, computeOverride);
|
|
165
166
|
if (!runResult.ok) {
|
|
166
167
|
const err = errorStack.stack_pop();
|
|
167
|
-
|
|
168
|
+
sink_errLine(chalk.red(`pipeline run: ${err?.message ?? 'workflow creation failed'}`));
|
|
168
169
|
process.exitCode = 1;
|
|
169
170
|
return;
|
|
170
171
|
}
|
|
171
172
|
const { workflowId, pluginInstanceIds } = runResult.value;
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
sink_dataLine(chalk.green(`✓ Workflow ${workflowId} created — ${pluginInstanceIds.length} node(s) queued`));
|
|
174
|
+
sink_dataLine(chalk.gray(` Instance IDs: ${pluginInstanceIds.join(', ')}`));
|
|
174
175
|
}
|
|
175
176
|
/**
|
|
176
177
|
* Handles `pipeline source <name|id>`.
|
|
@@ -180,18 +181,18 @@ async function pipelineRun_handle(args) {
|
|
|
180
181
|
async function pipelineSource_handle(args) {
|
|
181
182
|
const nameOrId = args[1];
|
|
182
183
|
if (!nameOrId) {
|
|
183
|
-
|
|
184
|
+
sink_errLine(chalk.red('Usage: pipeline source <name|id>'));
|
|
184
185
|
process.exitCode = 1;
|
|
185
186
|
return;
|
|
186
187
|
}
|
|
187
188
|
const sourceResult = await pipeline_sourceGet(nameOrId);
|
|
188
189
|
if (!sourceResult.ok) {
|
|
189
190
|
const err = errorStack.stack_pop();
|
|
190
|
-
|
|
191
|
+
sink_errLine(chalk.red(`pipeline source: ${err?.message ?? 'source not found'}`));
|
|
191
192
|
process.exitCode = 1;
|
|
192
193
|
return;
|
|
193
194
|
}
|
|
194
|
-
|
|
195
|
+
sink_dataLine(sourceResult.value);
|
|
195
196
|
}
|
|
196
197
|
/**
|
|
197
198
|
* Handles `pipeline inspect`: lists available pipeline fields.
|
|
@@ -199,10 +200,10 @@ async function pipelineSource_handle(args) {
|
|
|
199
200
|
async function pipelineInspect_handle() {
|
|
200
201
|
const fields = await pipelineFields_fetch();
|
|
201
202
|
if (fields && fields.length > 0) {
|
|
202
|
-
|
|
203
|
+
sink_get().data_write(table_render(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Pipeline fields', justification: 'center' } }));
|
|
203
204
|
}
|
|
204
205
|
else {
|
|
205
|
-
|
|
206
|
+
sink_dataLine(chalk.gray('No fields found.'));
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
209
|
/**
|
|
@@ -212,41 +213,40 @@ async function pipelineInspect_handle() {
|
|
|
212
213
|
*/
|
|
213
214
|
export async function builtin_pipeline(args) {
|
|
214
215
|
if (args_checkHasHelpFlag(args, 'pipeline')) {
|
|
215
|
-
|
|
216
|
-
return;
|
|
216
|
+
return envelope_ok(help_render('pipeline'));
|
|
217
217
|
}
|
|
218
218
|
const subcommand = args[0];
|
|
219
219
|
if (!subcommand) {
|
|
220
220
|
const current = await chrisContext.ChRISplugin_get();
|
|
221
|
-
|
|
221
|
+
sink_dataLine(chalk.gray('Usage: pipeline <list|info|run|source> [args]'));
|
|
222
222
|
if (current) {
|
|
223
|
-
|
|
223
|
+
sink_dataLine(chalk.gray(` Current context node: instance ${current}`));
|
|
224
224
|
}
|
|
225
|
-
return;
|
|
225
|
+
return envelope_ok('');
|
|
226
226
|
}
|
|
227
227
|
switch (subcommand) {
|
|
228
228
|
case 'list':
|
|
229
229
|
await pipelineList_handle(args);
|
|
230
|
-
return;
|
|
230
|
+
return envelope_ok('');
|
|
231
231
|
case 'info':
|
|
232
232
|
await pipelineInfo_handle(args);
|
|
233
|
-
return;
|
|
233
|
+
return envelope_ok('');
|
|
234
234
|
case 'run':
|
|
235
235
|
await pipelineRun_handle(args);
|
|
236
|
-
return;
|
|
236
|
+
return envelope_ok('');
|
|
237
237
|
case 'source':
|
|
238
238
|
await pipelineSource_handle(args);
|
|
239
|
-
return;
|
|
239
|
+
return envelope_ok('');
|
|
240
240
|
case 'inspect':
|
|
241
241
|
await pipelineInspect_handle();
|
|
242
|
-
return;
|
|
242
|
+
return envelope_ok('');
|
|
243
243
|
case 'search':
|
|
244
|
-
|
|
245
|
-
return;
|
|
244
|
+
return builtin_pipeline(['list', args[1] ?? '']);
|
|
246
245
|
default:
|
|
247
|
-
|
|
248
|
-
|
|
246
|
+
sink_errLine(chalk.red(`pipeline: unknown subcommand '${subcommand}'`));
|
|
247
|
+
sink_dataLine(chalk.gray(' Subcommands: list, search, inspect, info, run, source'));
|
|
249
248
|
process.exitCode = 1;
|
|
249
|
+
return envelope_error('');
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
252
|
//# sourceMappingURL=pipeline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/builtins/res/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/builtins/res/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { ParsedArgs } from '../utils.js';
|
|
2
|
+
import { type CommandEnvelope } from '@fnndsc/cumin';
|
|
2
3
|
/**
|
|
3
4
|
* Handles plugin commands.
|
|
4
5
|
*
|
|
5
6
|
* @param args - command arguments.
|
|
7
|
+
* @returns An envelope carrying the rendered plugin output.
|
|
6
8
|
*/
|
|
7
|
-
export declare function builtin_plugin(args: string[]): Promise<
|
|
9
|
+
export declare function builtin_plugin(args: string[]): Promise<CommandEnvelope>;
|
|
8
10
|
/**
|
|
9
11
|
* Interactive plugin add command with spinner and colored output.
|
|
10
12
|
*
|
|
11
13
|
* @param parsed - Parsed command arguments.
|
|
14
|
+
* @returns An envelope carrying the add outcome. The spinner streams live via
|
|
15
|
+
* the status channel; the result summary is carried in the envelope.
|
|
12
16
|
*/
|
|
13
|
-
export declare function plugin_addInteractive(parsed: ParsedArgs): Promise<
|
|
17
|
+
export declare function plugin_addInteractive(parsed: ParsedArgs): Promise<CommandEnvelope>;
|
|
@@ -18,83 +18,79 @@ import { pluginFields_fetch } from '@fnndsc/chili/commands/plugins/fields.js';
|
|
|
18
18
|
import { plugin_execute } from '@fnndsc/chili/commands/plugin/run.js';
|
|
19
19
|
import { plugin_add } from '@fnndsc/chili/commands/plugins/add.js';
|
|
20
20
|
import { pluginList_render, pluginRun_render } from '@fnndsc/chili/views/plugin.js';
|
|
21
|
-
import {
|
|
22
|
-
import { chiliCommand_run } from '../../core/chiliDelegate.js';
|
|
21
|
+
import { table_render } from '@fnndsc/chili/screen/screen.js';
|
|
23
22
|
import { spinner } from '../../lib/spinner.js';
|
|
24
|
-
import { errorStack } from '@fnndsc/cumin';
|
|
23
|
+
import { errorStack, envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
25
24
|
import { adminPrompt_register } from '@fnndsc/chili/utils/admin_prompt.js';
|
|
26
25
|
import { repl_question, repl_questionHidden } from '../../core/question.js';
|
|
27
26
|
/**
|
|
28
27
|
* Handles plugin commands.
|
|
29
28
|
*
|
|
30
29
|
* @param args - command arguments.
|
|
30
|
+
* @returns An envelope carrying the rendered plugin output.
|
|
31
31
|
*/
|
|
32
32
|
export async function builtin_plugin(args) {
|
|
33
33
|
const parsed = commandArgs_process(args);
|
|
34
34
|
const subcommand = parsed._[0];
|
|
35
35
|
if (!subcommand) {
|
|
36
|
-
|
|
37
|
-
return;
|
|
36
|
+
return envelope_ok(`${chalk.red("Usage: plugin <list|run|add> ...")}\n`);
|
|
38
37
|
}
|
|
39
38
|
try {
|
|
40
39
|
if (subcommand === 'list') {
|
|
41
40
|
const { plugins, selectedFields, totalCount } = await plugins_fetchList(parsed);
|
|
42
|
-
|
|
41
|
+
let rendered = `${pluginList_render(plugins, selectedFields, { table: !!parsed.table, csv: !!parsed.csv })}\n`;
|
|
43
42
|
if (totalCount !== undefined && plugins.length < totalCount) {
|
|
44
|
-
|
|
43
|
+
rendered += `${chalk.dim(` ↓ showing ${plugins.length} of ${totalCount} · --all to fetch all · --limit <n> for page size`)}\n`;
|
|
45
44
|
}
|
|
45
|
+
return envelope_ok(rendered);
|
|
46
46
|
}
|
|
47
47
|
else if (subcommand === 'run') {
|
|
48
48
|
const searchable = parsed._[1];
|
|
49
49
|
if (!searchable) {
|
|
50
|
-
|
|
51
|
-
return;
|
|
50
|
+
return envelope_ok(`${chalk.red("Usage: plugin run <plugin> [args...]")}\n`);
|
|
52
51
|
}
|
|
53
52
|
const params = args.slice(2).join(' ');
|
|
54
53
|
const instance = await plugin_execute(searchable, params);
|
|
55
54
|
if (instance) {
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
console.error(chalk.red("Plugin execution failed."));
|
|
55
|
+
return envelope_ok(`${pluginRun_render(instance)}\n`);
|
|
60
56
|
}
|
|
57
|
+
process.exitCode = 1;
|
|
58
|
+
return envelope_error('', undefined, `${chalk.red("Plugin execution failed.")}\n`);
|
|
61
59
|
}
|
|
62
60
|
else if (subcommand === 'add') {
|
|
63
|
-
await plugin_addInteractive(parsed);
|
|
61
|
+
return await plugin_addInteractive(parsed);
|
|
64
62
|
}
|
|
65
63
|
else if (subcommand === 'inspect') {
|
|
66
64
|
const fields = await pluginFields_fetch();
|
|
67
65
|
if (fields && fields.length > 0) {
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
console.log(chalk.gray('No fields found.'));
|
|
66
|
+
return envelope_ok(table_render(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Plugin fields', justification: 'center' } }));
|
|
72
67
|
}
|
|
68
|
+
return envelope_ok(`${chalk.gray('No fields found.')}\n`);
|
|
73
69
|
}
|
|
74
70
|
else if (subcommand === 'search') {
|
|
75
71
|
const query = parsed._[1] ?? '';
|
|
76
|
-
await builtin_plugin(['list', `--search`, query]);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
console.log(chalk.yellow('Directive not handled by chell... spawning chili directly'));
|
|
80
|
-
await chiliCommand_run('plugins', ['-s', ...args]);
|
|
72
|
+
return await builtin_plugin(['list', `--search`, query]);
|
|
81
73
|
}
|
|
74
|
+
process.exitCode = 1;
|
|
75
|
+
return envelope_error('', undefined, `${chalk.yellow(`Unknown subcommand: ${subcommand}. Usage: plugin <list|run|add|inspect|search>`)}\n`);
|
|
82
76
|
}
|
|
83
77
|
catch (e) {
|
|
84
78
|
const msg = e instanceof Error ? e.message : String(e);
|
|
85
|
-
|
|
79
|
+
process.exitCode = 1;
|
|
80
|
+
return envelope_error('', undefined, `${chalk.red(`Plugin error: ${msg}`)}\n`);
|
|
86
81
|
}
|
|
87
82
|
}
|
|
88
83
|
/**
|
|
89
84
|
* Interactive plugin add command with spinner and colored output.
|
|
90
85
|
*
|
|
91
86
|
* @param parsed - Parsed command arguments.
|
|
87
|
+
* @returns An envelope carrying the add outcome. The spinner streams live via
|
|
88
|
+
* the status channel; the result summary is carried in the envelope.
|
|
92
89
|
*/
|
|
93
90
|
export async function plugin_addInteractive(parsed) {
|
|
94
91
|
const pluginInput = parsed._[1];
|
|
95
92
|
if (!pluginInput) {
|
|
96
|
-
|
|
97
|
-
return;
|
|
93
|
+
return envelope_ok(`${chalk.red('Usage: plugin add <name|image|url> [--compute <resources>] [--store <url>]')}\n`);
|
|
98
94
|
}
|
|
99
95
|
const options = {
|
|
100
96
|
compute: parsed.compute,
|
|
@@ -105,36 +101,37 @@ export async function plugin_addInteractive(parsed) {
|
|
|
105
101
|
};
|
|
106
102
|
errorStack.stack_clear();
|
|
107
103
|
adminPrompt_register(repl_question, repl_questionHidden);
|
|
108
|
-
|
|
104
|
+
let rendered = `${chalk.cyan(`\nAdding plugin: ${pluginInput}\n`)}\n`;
|
|
109
105
|
const outcome = await plugin_add(pluginInput, options);
|
|
110
106
|
spinner.stop();
|
|
111
107
|
if (outcome === 'installed') {
|
|
112
|
-
|
|
108
|
+
rendered += `${chalk.green('\n[SUCCESS] Plugin added successfully!\n')}\n`;
|
|
109
|
+
return envelope_ok(rendered);
|
|
113
110
|
}
|
|
114
111
|
else if (outcome === 'already_exists') {
|
|
115
|
-
|
|
112
|
+
rendered += `${chalk.yellow(`\n[INFO] '${pluginInput}' is already registered in this CUBE.\n`)}\n`;
|
|
113
|
+
return envelope_ok(rendered);
|
|
116
114
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
console.log('');
|
|
137
|
-
}
|
|
115
|
+
process.exitCode = 1;
|
|
116
|
+
rendered += `${chalk.red('\n[FAILED] Failed to add plugin.\n')}\n`;
|
|
117
|
+
const errors = errorStack.allOfType_get('error');
|
|
118
|
+
if (errors.length > 0) {
|
|
119
|
+
rendered += `${chalk.red('Errors:')}\n`;
|
|
120
|
+
errors.forEach((error) => {
|
|
121
|
+
const cleanError = error.replace(/^\[.*?\]\s+\|\s+/, '');
|
|
122
|
+
rendered += `${chalk.red(` - ${cleanError}`)}\n`;
|
|
123
|
+
});
|
|
124
|
+
rendered += '\n';
|
|
125
|
+
}
|
|
126
|
+
const warnings = errorStack.allOfType_get('warning');
|
|
127
|
+
if (warnings.length > 0) {
|
|
128
|
+
rendered += `${chalk.yellow('Warnings:')}\n`;
|
|
129
|
+
warnings.forEach((warning) => {
|
|
130
|
+
const cleanWarning = warning.replace(/^\[.*?\]\s+\|\s+/, '');
|
|
131
|
+
rendered += `${chalk.yellow(` [WARNING] ${cleanWarning}`)}\n`;
|
|
132
|
+
});
|
|
133
|
+
rendered += '\n';
|
|
138
134
|
}
|
|
135
|
+
return envelope_ok(rendered);
|
|
139
136
|
}
|
|
140
137
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/builtins/res/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAoB,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/builtins/res/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Builtin handler for the `plugininstance` command.
|
|
3
4
|
*
|
|
4
5
|
* @param args - Parsed command arguments for the plugin-instance command.
|
|
5
6
|
*/
|
|
6
|
-
export declare function builtin_plugininstance(args: string[]): Promise<
|
|
7
|
+
export declare function builtin_plugininstance(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
* Aliases: plugininstance / plugininstances / instance / instances / job / jobs
|
|
6
6
|
*/
|
|
7
7
|
import chalk from 'chalk';
|
|
8
|
+
import { envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
8
9
|
import { commandArgs_process } from '../utils.js';
|
|
9
10
|
import { pluginInstances_fetchList } from '@fnndsc/chili/commands/plugininstances/list.js';
|
|
10
11
|
import { pluginInstanceFields_fetch } from '@fnndsc/chili/commands/plugininstances/fields.js';
|
|
11
|
-
import {
|
|
12
|
+
import { table_render } from '@fnndsc/chili/screen/screen.js';
|
|
12
13
|
/**
|
|
13
14
|
* Builtin handler for the `plugininstance` command.
|
|
14
15
|
*
|
|
@@ -21,33 +22,27 @@ export async function builtin_plugininstance(args) {
|
|
|
21
22
|
try {
|
|
22
23
|
const { pluginInstances, selectedFields, totalCount } = await pluginInstances_fetchList(parsed);
|
|
23
24
|
if (pluginInstances.length === 0) {
|
|
24
|
-
|
|
25
|
-
return;
|
|
25
|
+
return envelope_ok(`${chalk.gray('No plugin instances found.')}\n`);
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
return envelope_ok(table_render(pluginInstances, selectedFields, { title: { title: 'Plugin Instances', justification: 'center' }, pagination: totalCount !== undefined ? { shown: pluginInstances.length, total: totalCount } : undefined }));
|
|
28
28
|
}
|
|
29
29
|
catch (e) {
|
|
30
30
|
process.exitCode = 1;
|
|
31
|
-
|
|
31
|
+
return envelope_error('', undefined, `${chalk.red(`plugininstance error: ${e instanceof Error ? e.message : String(e)}`)}\n`);
|
|
32
32
|
}
|
|
33
|
-
return;
|
|
34
33
|
}
|
|
35
34
|
if (subcommand === 'search') {
|
|
36
35
|
const query = parsed._[1] ?? '';
|
|
37
|
-
|
|
38
|
-
return;
|
|
36
|
+
return builtin_plugininstance([...args.filter((a) => a !== subcommand), `--search`, query]);
|
|
39
37
|
}
|
|
40
38
|
if (subcommand === 'inspect') {
|
|
41
39
|
const fields = await pluginInstanceFields_fetch();
|
|
42
40
|
if (fields && fields.length > 0) {
|
|
43
|
-
|
|
41
|
+
return envelope_ok(table_render(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Plugin Instance fields', justification: 'center' } }));
|
|
44
42
|
}
|
|
45
|
-
|
|
46
|
-
console.log(chalk.gray('No fields found for plugin instances.'));
|
|
47
|
-
}
|
|
48
|
-
return;
|
|
43
|
+
return envelope_ok(`${chalk.gray('No fields found for plugin instances.')}\n`);
|
|
49
44
|
}
|
|
50
45
|
process.exitCode = 1;
|
|
51
|
-
|
|
46
|
+
return envelope_error(`${chalk.red(`Unknown subcommand: ${subcommand}. Usage: plugininstances <list|search|inspect>`)}\n`);
|
|
52
47
|
}
|
|
53
48
|
//# sourceMappingURL=plugininstance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugininstance.js","sourceRoot":"","sources":["../../../src/builtins/res/plugininstance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAA4B,MAAM,gDAAgD,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"plugininstance.js","sourceRoot":"","sources":["../../../src/builtins/res/plugininstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Builtin handler for the `pluginmeta` command.
|
|
3
4
|
*
|
|
4
5
|
* @param args - Parsed command arguments for the plugin-meta command.
|
|
5
6
|
*/
|
|
6
|
-
export declare function builtin_pluginmeta(args: string[]): Promise<
|
|
7
|
+
export declare function builtin_pluginmeta(args: string[]): Promise<CommandEnvelope>;
|