@fnndsc/brasa 0.2.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/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/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/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/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/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/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/store.d.ts +3 -1
- package/dist/builtins/store.js +19 -35
- package/dist/builtins/store.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.js +53 -93
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/sink.d.ts +57 -0
- package/dist/core/sink.js +77 -0
- package/dist/core/sink.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/builtins/fs/upload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAiB,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/builtins/fs/upload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAiB,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,aAAa,EAAwB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,IAAI,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,SAAS,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAW,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAkB,MAAM,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE;YAC7E,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;SACtD,CAAC,CAAC;QAEH,IAAI,QAAQ,GAAW,IAAI,CAAC;QAC5B,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC9B,QAAQ,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,gBAAgB,UAAU,CAAC,IAAI,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,OAAO,CAAC,gBAAgB,aAAa,OAAO,CAAC,WAAW,SAAS,CAAC,IAAI,CAAC;QACnH,CAAC;QACD,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAEtJ,yEAAyE;QACzE,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;YAClC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACrD,gDAAgD;YAChD,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { type CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Connects to a ChRIS CUBE instance using provided credentials.
|
|
3
4
|
*
|
|
4
5
|
* @param args - An array of arguments containing user, password, and URL.
|
|
5
|
-
* @returns
|
|
6
|
+
* @returns An envelope carrying the login result.
|
|
6
7
|
*/
|
|
7
|
-
export declare function builtin_connect(args: string[]): Promise<
|
|
8
|
+
export declare function builtin_connect(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -7,12 +7,12 @@ import { commandArgs_process } from '../utils.js';
|
|
|
7
7
|
import { connect_login } from '@fnndsc/chili/commands/connect/login.js';
|
|
8
8
|
import { login_render } from '@fnndsc/chili/views/connect.js';
|
|
9
9
|
import { session } from '../../session/index.js';
|
|
10
|
-
import { chrisContext } from '@fnndsc/cumin';
|
|
10
|
+
import { chrisContext, envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
11
11
|
/**
|
|
12
12
|
* Connects to a ChRIS CUBE instance using provided credentials.
|
|
13
13
|
*
|
|
14
14
|
* @param args - An array of arguments containing user, password, and URL.
|
|
15
|
-
* @returns
|
|
15
|
+
* @returns An envelope carrying the login result.
|
|
16
16
|
*/
|
|
17
17
|
export async function builtin_connect(args) {
|
|
18
18
|
const parsed = commandArgs_process(args);
|
|
@@ -27,16 +27,14 @@ export async function builtin_connect(args) {
|
|
|
27
27
|
// Refresh context to update prompt with new user/url
|
|
28
28
|
await chrisContext.currentContext_update();
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
return envelope_ok(`${login_render(success, url, user)}\n`);
|
|
31
31
|
}
|
|
32
32
|
catch (error) {
|
|
33
33
|
const msg = error instanceof Error ? error.message : String(error);
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
process.exitCode = 1;
|
|
35
|
+
return envelope_error(`${login_render(false, url, user)}\n`, undefined, `${chalk.red(`Connection failed: ${msg}`)}\n`);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
console.log(chalk.red('Usage: connect --user <username> --password <password> <url>'));
|
|
40
|
-
}
|
|
38
|
+
return envelope_ok(`${chalk.red('Usage: connect --user <username> --password <password> <url>')}\n`);
|
|
41
39
|
}
|
|
42
40
|
//# sourceMappingURL=connect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/builtins/net/connect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/builtins/net/connect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAwB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAc;IAClD,MAAM,MAAM,GAAe,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GAAW,MAAM,CAAC,IAAc,CAAC;IAC3C,MAAM,QAAQ,GAAW,MAAM,CAAC,QAAkB,CAAC;IACnD,MAAM,GAAG,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;IAE1C,IAAI,IAAI,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAY,MAAM,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACpF,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;gBACxB,qDAAqD;gBACrD,MAAM,YAAY,CAAC,qBAAqB,EAAE,CAAC;YAC7C,CAAC;YACD,OAAO,WAAW,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,GAAG,GAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,cAAc,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,sBAAsB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,IAAI,CAAC,CAAC;AACvG,CAAC"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
|
+
import { type CommandEnvelope } from '@fnndsc/cumin';
|
|
10
11
|
/**
|
|
11
12
|
* PACS subsystem command — server context management, query, and pull.
|
|
12
13
|
*
|
|
@@ -20,5 +21,7 @@
|
|
|
20
21
|
* pacs pull <vfs-path...> — pull DICOM series into ChRIS storage
|
|
21
22
|
*
|
|
22
23
|
* @param args - Command arguments (subcommand + its own args).
|
|
24
|
+
* @returns An envelope; streaming subcommands carry empty rendered text and
|
|
25
|
+
* emit their output live, while query/pull return their own envelopes.
|
|
23
26
|
*/
|
|
24
|
-
export declare function builtin_pacs(args: string[]): Promise<
|
|
27
|
+
export declare function builtin_pacs(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -8,33 +8,34 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
import chalk from 'chalk';
|
|
11
|
-
import { chrisContext, pacsServers_list } from '@fnndsc/cumin';
|
|
11
|
+
import { chrisContext, pacsServers_list, envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
12
12
|
import { builtin_query } from './query.js';
|
|
13
13
|
import { builtin_pull } from '../fs/pull.js';
|
|
14
|
-
import { args_checkHasHelpFlag,
|
|
14
|
+
import { args_checkHasHelpFlag, help_render } from '../help.js';
|
|
15
|
+
import { sink_dataLine, sink_errLine } from '../../core/sink.js';
|
|
15
16
|
/**
|
|
16
|
-
*
|
|
17
|
+
* Streams the list of registered PACS servers, marking the active one.
|
|
17
18
|
*
|
|
18
19
|
* @param active - Current active PACS server identifier or null.
|
|
19
20
|
*/
|
|
20
21
|
async function servers_print(active) {
|
|
21
22
|
const result = await pacsServers_list();
|
|
22
23
|
if (!result.ok || result.value.length === 0) {
|
|
23
|
-
|
|
24
|
+
sink_dataLine(chalk.yellow('No PACS servers registered in CUBE.'));
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
+
sink_dataLine('');
|
|
27
28
|
for (const srv of result.value) {
|
|
28
29
|
const label = srv.identifier ?? srv.name ?? String(srv.id);
|
|
29
30
|
const isActive = active !== null &&
|
|
30
31
|
(label === active || String(srv.id) === active);
|
|
31
32
|
const marker = isActive ? chalk.green(' ✓ active') : '';
|
|
32
33
|
const idStr = chalk.gray(`[${srv.id}]`);
|
|
33
|
-
|
|
34
|
+
sink_dataLine(` ${idStr} ${chalk.cyan(label.padEnd(20))}${marker}`);
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
sink_dataLine('');
|
|
37
|
+
sink_dataLine(chalk.gray(' Use: pacs connect <name|id>'));
|
|
38
|
+
sink_dataLine('');
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
40
41
|
* PACS subsystem command — server context management, query, and pull.
|
|
@@ -49,27 +50,28 @@ async function servers_print(active) {
|
|
|
49
50
|
* pacs pull <vfs-path...> — pull DICOM series into ChRIS storage
|
|
50
51
|
*
|
|
51
52
|
* @param args - Command arguments (subcommand + its own args).
|
|
53
|
+
* @returns An envelope; streaming subcommands carry empty rendered text and
|
|
54
|
+
* emit their output live, while query/pull return their own envelopes.
|
|
52
55
|
*/
|
|
53
56
|
export async function builtin_pacs(args) {
|
|
54
57
|
if (args_checkHasHelpFlag(args, 'pacs')) {
|
|
55
|
-
|
|
56
|
-
return;
|
|
58
|
+
return envelope_ok(help_render('pacs'));
|
|
57
59
|
}
|
|
58
60
|
const subcommand = args[0];
|
|
59
61
|
// No subcommand — show active server
|
|
60
62
|
if (!subcommand) {
|
|
61
63
|
const active = await chrisContext.PACSserver_get();
|
|
62
64
|
if (active) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
sink_dataLine(`Active PACS server: ${chalk.cyan(active)}`);
|
|
66
|
+
sink_dataLine(chalk.gray(' pacs connect — list all servers'));
|
|
67
|
+
sink_dataLine(chalk.gray(' pacs disconnect — clear active server'));
|
|
66
68
|
}
|
|
67
69
|
else {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
sink_dataLine(chalk.yellow('No PACS server set.'));
|
|
71
|
+
sink_dataLine(chalk.gray(' pacs connect — list available servers'));
|
|
72
|
+
sink_dataLine(chalk.gray(' pacs connect <id> — set active server'));
|
|
71
73
|
}
|
|
72
|
-
return;
|
|
74
|
+
return envelope_ok('');
|
|
73
75
|
}
|
|
74
76
|
switch (subcommand) {
|
|
75
77
|
case 'connect': {
|
|
@@ -77,45 +79,42 @@ export async function builtin_pacs(args) {
|
|
|
77
79
|
if (!target) {
|
|
78
80
|
const active = await chrisContext.PACSserver_get();
|
|
79
81
|
await servers_print(active);
|
|
80
|
-
return;
|
|
82
|
+
return envelope_ok('');
|
|
81
83
|
}
|
|
82
84
|
const ok = await chrisContext.PACSserver_set(target);
|
|
83
85
|
if (ok) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
else {
|
|
87
|
-
console.error(chalk.red(`pacs connect: Failed to set server '${target}'`));
|
|
88
|
-
process.exitCode = 1;
|
|
86
|
+
sink_dataLine(chalk.green(`[+] PACS server set to '${target}'`));
|
|
87
|
+
return envelope_ok('');
|
|
89
88
|
}
|
|
90
|
-
|
|
89
|
+
sink_errLine(chalk.red(`pacs connect: Failed to set server '${target}'`));
|
|
90
|
+
process.exitCode = 1;
|
|
91
|
+
return envelope_error('');
|
|
91
92
|
}
|
|
92
93
|
case 'disconnect': {
|
|
93
94
|
const ok = await chrisContext.PACSserver_set('');
|
|
94
95
|
if (ok) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
else {
|
|
98
|
-
console.error(chalk.red('pacs disconnect: Failed to clear PACS server context.'));
|
|
99
|
-
process.exitCode = 1;
|
|
96
|
+
sink_dataLine(chalk.green('[-] PACS server context cleared.'));
|
|
97
|
+
return envelope_ok('');
|
|
100
98
|
}
|
|
101
|
-
|
|
99
|
+
sink_errLine(chalk.red('pacs disconnect: Failed to clear PACS server context.'));
|
|
100
|
+
process.exitCode = 1;
|
|
101
|
+
return envelope_error('');
|
|
102
102
|
}
|
|
103
103
|
case 'list': {
|
|
104
104
|
const active = await chrisContext.PACSserver_get();
|
|
105
105
|
await servers_print(active);
|
|
106
|
-
return;
|
|
106
|
+
return envelope_ok('');
|
|
107
107
|
}
|
|
108
108
|
case 'query':
|
|
109
|
-
|
|
110
|
-
return;
|
|
109
|
+
return builtin_query(args.slice(1));
|
|
111
110
|
case 'pull':
|
|
112
|
-
|
|
113
|
-
return;
|
|
111
|
+
return builtin_pull(args.slice(1));
|
|
114
112
|
default:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
sink_errLine(chalk.red(`pacs: Unknown subcommand '${subcommand}'`));
|
|
114
|
+
sink_dataLine(chalk.gray(' Subcommands: connect, disconnect, list, query, pull'));
|
|
115
|
+
sink_dataLine(chalk.gray(' Try: help pacs'));
|
|
118
116
|
process.exitCode = 1;
|
|
117
|
+
return envelope_error('');
|
|
119
118
|
}
|
|
120
119
|
}
|
|
121
120
|
//# sourceMappingURL=pacs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pacs.js","sourceRoot":"","sources":["../../../src/builtins/net/pacs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"pacs.js","sourceRoot":"","sources":["../../../src/builtins/net/pacs.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,10 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @module
|
|
14
14
|
*/
|
|
15
|
+
import { type CommandEnvelope } from '@fnndsc/cumin';
|
|
15
16
|
/**
|
|
16
17
|
* Manages ChRIS pipeline registration, inspection, and execution.
|
|
17
18
|
*
|
|
18
19
|
* @param args - Command arguments.
|
|
19
20
|
*/
|
|
20
|
-
export declare function builtin_pipeline(args: string[]): Promise<
|
|
21
|
+
export declare function builtin_pipeline(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -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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"}
|
package/dist/builtins/store.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { type CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Handles store commands.
|
|
3
4
|
*
|
|
4
5
|
* @param args - command arguments.
|
|
6
|
+
* @returns An envelope carrying the rendered store output.
|
|
5
7
|
*/
|
|
6
|
-
export declare function builtin_store(args: string[]): Promise<
|
|
8
|
+
export declare function builtin_store(args: string[]): Promise<CommandEnvelope>;
|