@fnndsc/brasa 0.1.0 → 0.2.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 (67) hide show
  1. package/dist/builtins/fs/du.d.ts +2 -1
  2. package/dist/builtins/fs/du.js +15 -7
  3. package/dist/builtins/fs/du.js.map +1 -1
  4. package/dist/builtins/fs/ls.d.ts +2 -1
  5. package/dist/builtins/fs/ls.js +22 -11
  6. package/dist/builtins/fs/ls.js.map +1 -1
  7. package/dist/builtins/fs/tree.d.ts +2 -1
  8. package/dist/builtins/fs/tree.js +10 -13
  9. package/dist/builtins/fs/tree.js.map +1 -1
  10. package/dist/builtins/help.d.ts +16 -1
  11. package/dist/builtins/help.js +39 -18
  12. package/dist/builtins/help.js.map +1 -1
  13. package/dist/builtins/net/cubepath.d.ts +2 -1
  14. package/dist/builtins/net/cubepath.js +19 -15
  15. package/dist/builtins/net/cubepath.js.map +1 -1
  16. package/dist/builtins/net/logout.d.ts +4 -2
  17. package/dist/builtins/net/logout.js +7 -4
  18. package/dist/builtins/net/logout.js.map +1 -1
  19. package/dist/builtins/net/query.d.ts +2 -2
  20. package/dist/builtins/net/query.js +20 -23
  21. package/dist/builtins/net/query.js.map +1 -1
  22. package/dist/builtins/parametersofplugin.d.ts +3 -2
  23. package/dist/builtins/parametersofplugin.js +8 -9
  24. package/dist/builtins/parametersofplugin.js.map +1 -1
  25. package/dist/builtins/proc.d.ts +3 -1
  26. package/dist/builtins/proc.js +74 -64
  27. package/dist/builtins/proc.js.map +1 -1
  28. package/dist/builtins/res/compute.d.ts +3 -1
  29. package/dist/builtins/res/compute.js +9 -12
  30. package/dist/builtins/res/compute.js.map +1 -1
  31. package/dist/builtins/res/feed.d.ts +3 -1
  32. package/dist/builtins/res/feed.js +58 -83
  33. package/dist/builtins/res/feed.js.map +1 -1
  34. package/dist/builtins/res/files.d.ts +7 -3
  35. package/dist/builtins/res/files.js +26 -25
  36. package/dist/builtins/res/files.js.map +1 -1
  37. package/dist/builtins/res/group.d.ts +3 -1
  38. package/dist/builtins/res/group.js +10 -14
  39. package/dist/builtins/res/group.js.map +1 -1
  40. package/dist/builtins/res/plugin.d.ts +6 -2
  41. package/dist/builtins/res/plugin.js +47 -50
  42. package/dist/builtins/res/plugin.js.map +1 -1
  43. package/dist/builtins/res/plugininstance.d.ts +2 -1
  44. package/dist/builtins/res/plugininstance.js +9 -14
  45. package/dist/builtins/res/plugininstance.js.map +1 -1
  46. package/dist/builtins/res/pluginmeta.d.ts +2 -1
  47. package/dist/builtins/res/pluginmeta.js +9 -14
  48. package/dist/builtins/res/pluginmeta.js.map +1 -1
  49. package/dist/builtins/res/tag.d.ts +3 -1
  50. package/dist/builtins/res/tag.js +10 -14
  51. package/dist/builtins/res/tag.js.map +1 -1
  52. package/dist/builtins/res/workflow.d.ts +2 -1
  53. package/dist/builtins/res/workflow.js +9 -14
  54. package/dist/builtins/res/workflow.js.map +1 -1
  55. package/dist/builtins/sys/context.d.ts +2 -1
  56. package/dist/builtins/sys/context.js +5 -4
  57. package/dist/builtins/sys/context.js.map +1 -1
  58. package/dist/core/dispatch.d.ts +6 -0
  59. package/dist/core/dispatch.js +77 -85
  60. package/dist/core/dispatch.js.map +1 -1
  61. package/dist/core/sink.d.ts +0 -18
  62. package/dist/core/sink.js +0 -77
  63. package/dist/core/sink.js.map +1 -1
  64. package/dist/lib/vfs/vfs.d.ts +2 -2
  65. package/dist/lib/vfs/vfs.js +10 -14
  66. package/dist/lib/vfs/vfs.js.map +1 -1
  67. package/package.json +2 -2
@@ -14,44 +14,46 @@ import { join } from 'path';
14
14
  import { feed_noteGet, feed_noteUpdate } from '@fnndsc/chili/commands/feed/note.js';
15
15
  import { feed_commentsList, feed_commentCreate, feed_commentDelete, feed_commentUpdate } from '@fnndsc/chili/commands/feed/comments.js';
16
16
  import { feedList_render, feedCreate_render, feedNote_render, feedComments_render } from '@fnndsc/chili/views/feed.js';
17
- import { chiliCommand_run } from '../../core/chiliDelegate.js';
18
- import { table_display } from '@fnndsc/chili/screen/screen.js';
17
+ import { table_render } from '@fnndsc/chili/screen/screen.js';
18
+ import { envelope_ok, envelope_error } from '@fnndsc/cumin';
19
19
  import { noteEditBody_format, noteEditBody_parse } from './feed.notes.js';
20
20
  /**
21
21
  * Handles `feed list`: fetches and renders the feed table.
22
22
  *
23
23
  * @param parsed - The parsed command arguments.
24
+ * @returns An envelope carrying the rendered feed table.
24
25
  */
25
26
  async function feedList_handle(parsed) {
26
27
  const { feeds, selectedFields, totalCount } = await feeds_fetchList(parsed);
27
- console.log(feedList_render(feeds, selectedFields, { table: !!parsed.table, csv: !!parsed.csv }));
28
+ let rendered = `${feedList_render(feeds, selectedFields, { table: !!parsed.table, csv: !!parsed.csv })}\n`;
28
29
  if (totalCount !== undefined && feeds.length < totalCount) {
29
- console.log(chalk.dim(` ↓ showing ${feeds.length} of ${totalCount} · --all to fetch all · --limit <n> for page size`));
30
+ rendered += `${chalk.dim(` ↓ showing ${feeds.length} of ${totalCount} · --all to fetch all · --limit <n> for page size`)}\n`;
30
31
  }
32
+ return envelope_ok(rendered);
31
33
  }
32
34
  /**
33
35
  * Handles `feed inspect`: lists the available feed fields.
36
+ *
37
+ * @returns An envelope carrying the field listing.
34
38
  */
35
39
  async function feedInspect_handle() {
36
40
  const fields = await feedFields_fetch();
37
41
  if (fields && fields.length > 0) {
38
- table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Feed fields', justification: 'center' } });
39
- }
40
- else {
41
- console.log(chalk.gray('No fields found.'));
42
+ return envelope_ok(table_render(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Feed fields', justification: 'center' } }));
42
43
  }
44
+ return envelope_ok(`${chalk.gray('No fields found.')}\n`);
43
45
  }
44
46
  /**
45
47
  * Edits a feed note interactively via `$EDITOR`.
46
48
  *
47
49
  * @param feedId - The feed whose note is edited.
50
+ * @returns An envelope carrying the edit outcome.
48
51
  */
49
52
  async function feedNote_edit(feedId) {
50
53
  const getResult = await feed_noteGet(feedId);
51
54
  if (!getResult.ok) {
52
55
  process.exitCode = 1;
53
- console.error(chalk.red(`Failed to get note for feed ${feedId}.`));
54
- return;
56
+ return envelope_error('', undefined, `${chalk.red(`Failed to get note for feed ${feedId}.`)}\n`);
55
57
  }
56
58
  const note = getResult.value;
57
59
  const tmpPath = join(tmpdir(), `chell-note-${feedId}-${Date.now()}.txt`);
@@ -66,38 +68,33 @@ async function feedNote_edit(feedId) {
66
68
  }
67
69
  catch { /* ignore */ }
68
70
  if (edited === body) {
69
- console.log(chalk.gray('(no changes)'));
70
- return;
71
+ return envelope_ok(`${chalk.gray('(no changes)')}\n`);
71
72
  }
72
73
  const { title, content } = noteEditBody_parse(edited, note.title);
73
74
  const updateResult = await feed_noteUpdate(feedId, { title, content });
74
75
  if (updateResult.ok)
75
- console.log(chalk.green(`Note updated on feed ${feedId}.`));
76
- else {
77
- process.exitCode = 1;
78
- console.error(chalk.red('Failed to save note.'));
79
- }
76
+ return envelope_ok(`${chalk.green(`Note updated on feed ${feedId}.`)}\n`);
77
+ process.exitCode = 1;
78
+ return envelope_error('', undefined, `${chalk.red('Failed to save note.')}\n`);
80
79
  }
81
80
  /**
82
81
  * Handles `feed note ...`: interactive edit, direct update, or display.
83
82
  *
84
83
  * @param parsed - The parsed command arguments.
84
+ * @returns An envelope carrying the note or update outcome.
85
85
  */
86
86
  async function feedNote_handle(parsed) {
87
87
  const second = String(parsed._[1] ?? '');
88
88
  if (second === 'edit') {
89
89
  const feedId = parseInt(String(parsed._[2]), 10);
90
90
  if (isNaN(feedId)) {
91
- console.error(chalk.red('Usage: feed note edit <feedId>'));
92
- return;
91
+ return envelope_error('', undefined, `${chalk.red('Usage: feed note edit <feedId>')}\n`);
93
92
  }
94
- await feedNote_edit(feedId);
95
- return;
93
+ return feedNote_edit(feedId);
96
94
  }
97
95
  const feedId = parseInt(second, 10);
98
96
  if (isNaN(feedId)) {
99
- console.error(chalk.red('Usage: feed note <feedId> [--title <t>] [--content <c>] | feed note edit <feedId>'));
100
- return;
97
+ return envelope_error('', undefined, `${chalk.red('Usage: feed note <feedId> [--title <t>] [--content <c>] | feed note edit <feedId>')}\n`);
101
98
  }
102
99
  const hasUpdate = !!(parsed.title || parsed.content);
103
100
  if (hasUpdate) {
@@ -106,33 +103,27 @@ async function feedNote_handle(parsed) {
106
103
  content: parsed.content,
107
104
  });
108
105
  if (result.ok)
109
- console.log(chalk.green(`Note updated on feed ${feedId}.`));
110
- else {
111
- process.exitCode = 1;
112
- console.error(chalk.red('Failed to update note.'));
113
- }
114
- }
115
- else {
116
- const result = await feed_noteGet(feedId);
117
- if (result.ok)
118
- console.log(feedNote_render(result.value, feedId));
119
- else {
120
- process.exitCode = 1;
121
- console.error(chalk.red(`Failed to get note for feed ${feedId}.`));
122
- }
106
+ return envelope_ok(`${chalk.green(`Note updated on feed ${feedId}.`)}\n`);
107
+ process.exitCode = 1;
108
+ return envelope_error('', undefined, `${chalk.red('Failed to update note.')}\n`);
123
109
  }
110
+ const result = await feed_noteGet(feedId);
111
+ if (result.ok)
112
+ return envelope_ok(`${feedNote_render(result.value, feedId)}\n`);
113
+ process.exitCode = 1;
114
+ return envelope_error('', undefined, `${chalk.red(`Failed to get note for feed ${feedId}.`)}\n`);
124
115
  }
125
116
  /**
126
117
  * Handles `feed comment <add|delete|edit> ...`.
127
118
  *
128
119
  * @param parsed - The parsed command arguments.
120
+ * @returns An envelope carrying the comment operation outcome.
129
121
  */
130
122
  async function feedComment_handle(parsed) {
131
123
  const op = parsed._[1] ?? '';
132
124
  const feedId = parseInt(String(parsed._[2]), 10);
133
125
  if (!op || isNaN(feedId)) {
134
- console.error(chalk.red('Usage: feed comment <add|delete|edit> <feedId> [commentId] [--title <t>] [--content <c>]'));
135
- return;
126
+ return envelope_error('', undefined, `${chalk.red('Usage: feed comment <add|delete|edit> <feedId> [commentId] [--title <t>] [--content <c>]')}\n`);
136
127
  }
137
128
  if (op === 'add') {
138
129
  const result = await feed_commentCreate(feedId, {
@@ -140,105 +131,89 @@ async function feedComment_handle(parsed) {
140
131
  content: parsed.content,
141
132
  });
142
133
  if (result.ok)
143
- console.log(chalk.green(`Comment added (id: ${result.value.id}) on feed ${feedId}.`));
144
- else {
145
- process.exitCode = 1;
146
- console.error(chalk.red('Failed to add comment.'));
147
- }
134
+ return envelope_ok(`${chalk.green(`Comment added (id: ${result.value.id}) on feed ${feedId}.`)}\n`);
135
+ process.exitCode = 1;
136
+ return envelope_error('', undefined, `${chalk.red('Failed to add comment.')}\n`);
148
137
  }
149
138
  else if (op === 'delete') {
150
139
  const commentId = parseInt(String(parsed._[3]), 10);
151
140
  if (isNaN(commentId)) {
152
- console.error(chalk.red('Usage: feed comment delete <feedId> <commentId>'));
153
- return;
141
+ return envelope_error('', undefined, `${chalk.red('Usage: feed comment delete <feedId> <commentId>')}\n`);
154
142
  }
155
143
  const result = await feed_commentDelete(feedId, commentId);
156
144
  if (result.ok)
157
- console.log(chalk.green(`Comment ${commentId} deleted.`));
158
- else {
159
- process.exitCode = 1;
160
- console.error(chalk.red('Failed to delete comment.'));
161
- }
145
+ return envelope_ok(`${chalk.green(`Comment ${commentId} deleted.`)}\n`);
146
+ process.exitCode = 1;
147
+ return envelope_error('', undefined, `${chalk.red('Failed to delete comment.')}\n`);
162
148
  }
163
149
  else if (op === 'edit') {
164
150
  const commentId = parseInt(String(parsed._[3]), 10);
165
151
  if (isNaN(commentId)) {
166
- console.error(chalk.red('Usage: feed comment edit <feedId> <commentId> [--title <t>] [--content <c>]'));
167
- return;
152
+ return envelope_error('', undefined, `${chalk.red('Usage: feed comment edit <feedId> <commentId> [--title <t>] [--content <c>]')}\n`);
168
153
  }
169
154
  const result = await feed_commentUpdate(feedId, commentId, {
170
155
  title: parsed.title,
171
156
  content: parsed.content,
172
157
  });
173
158
  if (result.ok)
174
- console.log(chalk.green(`Comment ${commentId} updated.`));
175
- else {
176
- process.exitCode = 1;
177
- console.error(chalk.red('Failed to update comment.'));
178
- }
179
- }
180
- else {
181
- console.error(chalk.red(`Unknown comment op: ${op}. Use add, delete, or edit.`));
159
+ return envelope_ok(`${chalk.green(`Comment ${commentId} updated.`)}\n`);
182
160
  process.exitCode = 1;
161
+ return envelope_error('', undefined, `${chalk.red('Failed to update comment.')}\n`);
183
162
  }
163
+ process.exitCode = 1;
164
+ return envelope_error('', undefined, `${chalk.red(`Unknown comment op: ${op}. Use add, delete, or edit.`)}\n`);
184
165
  }
185
166
  /**
186
167
  * Handles feed commands.
187
168
  *
188
169
  * @param args - command arguments.
170
+ * @returns An envelope carrying the rendered feed output.
189
171
  */
190
172
  export async function builtin_feed(args) {
191
173
  const parsed = commandArgs_process(args);
192
174
  const subcommand = parsed._[0];
193
175
  if (!subcommand) {
194
- console.log(chalk.red("Usage: feed <list|create> ..."));
195
- return;
176
+ return envelope_ok(`${chalk.red("Usage: feed <list|create> ...")}\n`);
196
177
  }
197
178
  try {
198
179
  if (subcommand === 'list') {
199
- await feedList_handle(parsed);
180
+ return await feedList_handle(parsed);
200
181
  }
201
182
  else if (subcommand === 'create') {
202
183
  const feed = await feed_create(parsed);
203
- if (feed) {
204
- console.log(feedCreate_render(feed));
205
- }
184
+ return envelope_ok(feed ? `${feedCreate_render(feed)}\n` : '');
206
185
  }
207
186
  else if (subcommand === 'inspect') {
208
- await feedInspect_handle();
187
+ return await feedInspect_handle();
209
188
  }
210
189
  else if (subcommand === 'search') {
211
190
  const query = parsed._[1] ?? '';
212
- await builtin_feed(['list', '--search', query]);
191
+ return await builtin_feed(['list', '--search', query]);
213
192
  }
214
193
  else if (subcommand === 'note') {
215
- await feedNote_handle(parsed);
194
+ return await feedNote_handle(parsed);
216
195
  }
217
196
  else if (subcommand === 'comments') {
218
197
  const feedId = parseInt(String(parsed._[1]), 10);
219
198
  if (isNaN(feedId)) {
220
- console.error(chalk.red('Usage: feed comments <feedId>'));
221
- return;
199
+ return envelope_error('', undefined, `${chalk.red('Usage: feed comments <feedId>')}\n`);
222
200
  }
223
201
  const result = await feed_commentsList(feedId);
224
202
  if (result.ok)
225
- console.log(feedComments_render(result.value, feedId));
226
- else {
227
- process.exitCode = 1;
228
- console.error(chalk.red(`Failed to list comments for feed ${feedId}.`));
229
- }
203
+ return envelope_ok(`${feedComments_render(result.value, feedId)}\n`);
204
+ process.exitCode = 1;
205
+ return envelope_error('', undefined, `${chalk.red(`Failed to list comments for feed ${feedId}.`)}\n`);
230
206
  }
231
207
  else if (subcommand === 'comment') {
232
- await feedComment_handle(parsed);
233
- }
234
- else {
235
- console.log(chalk.yellow('Directive not handled by chell... spawning chili directly'));
236
- await chiliCommand_run('feeds', ['-s', ...args]);
208
+ return await feedComment_handle(parsed);
237
209
  }
210
+ process.exitCode = 1;
211
+ return envelope_error('', undefined, `${chalk.red(`Unknown subcommand: ${subcommand}. Usage: feed <list|create|inspect|search|note|comments|comment>`)}\n`);
238
212
  }
239
213
  catch (e) {
240
214
  const msg = e instanceof Error ? e.message : String(e);
241
- console.error(chalk.red(`Feed error: ${msg}`));
215
+ process.exitCode = 1;
216
+ return envelope_error('', undefined, `${chalk.red(`Feed error: ${msg}`)}\n`);
242
217
  }
243
218
  }
244
219
  //# sourceMappingURL=feed.js.map
@@ -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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"}
@@ -1,18 +1,22 @@
1
+ import { type CommandEnvelope } from '@fnndsc/cumin';
1
2
  /**
2
3
  * Handles files commands.
3
4
  *
4
5
  * @param args - command arguments.
6
+ * @returns An envelope carrying the files listing or fields.
5
7
  */
6
- export declare function builtin_files(args: string[]): Promise<void>;
8
+ export declare function builtin_files(args: string[]): Promise<CommandEnvelope>;
7
9
  /**
8
10
  * Handles links commands.
9
11
  *
10
12
  * @param args - command arguments.
13
+ * @returns An envelope carrying the links listing or fields.
11
14
  */
12
- export declare function builtin_links(args: string[]): Promise<void>;
15
+ export declare function builtin_links(args: string[]): Promise<CommandEnvelope>;
13
16
  /**
14
17
  * Handles dirs commands.
15
18
  *
16
19
  * @param args - command arguments.
20
+ * @returns An envelope carrying the dirs listing or fields.
17
21
  */
18
- export declare function builtin_dirs(args: string[]): Promise<void>;
22
+ export declare function builtin_dirs(args: string[]): Promise<CommandEnvelope>;
@@ -6,80 +6,81 @@ import chalk from 'chalk';
6
6
  import { commandArgs_process } from '../utils.js';
7
7
  import { files_fetchList } from '@fnndsc/chili/commands/files/list.js';
8
8
  import { fileFields_fetch } from '@fnndsc/chili/commands/files/fields.js';
9
- import { table_display } from '@fnndsc/chili/screen/screen.js';
10
- import { chiliCommand_run } from '../../core/chiliDelegate.js';
9
+ import { envelope_ok, envelope_error } from '@fnndsc/cumin';
10
+ import { table_render } from '@fnndsc/chili/screen/screen.js';
11
11
  /**
12
12
  * Generic handler for file group commands (files, links, dirs).
13
13
  *
14
14
  * @param args - command arguments.
15
15
  * @param assetName - the asset type ('files', 'links', 'dirs').
16
+ * @returns An envelope carrying the listing or fields.
16
17
  */
17
18
  async function builtin_fileGroup(args, assetName) {
18
19
  const parsed = commandArgs_process(args);
19
20
  const subcommand = parsed._[0];
20
21
  if (!subcommand) {
21
- console.log(chalk.red(`Usage: ${assetName} <list|search|inspect> ...`));
22
- return;
22
+ return envelope_ok(`${chalk.red(`Usage: ${assetName} <list|search|inspect> ...`)}\n`);
23
23
  }
24
24
  try {
25
25
  if (subcommand === 'list') {
26
26
  const path = parsed._[1];
27
27
  const results = await files_fetchList(parsed, assetName, path);
28
28
  if (!results) {
29
- console.error(`No ${assetName} resources found. Perhaps check your current context?`);
30
- return;
29
+ return envelope_error('', undefined, `No ${assetName} resources found. Perhaps check your current context?\n`);
31
30
  }
32
31
  if (results.tableData.length === 0) {
33
- console.log(`No ${assetName} found matching the criteria.`);
34
- }
35
- else {
36
- table_display(results.tableData, results.selectedFields, {
37
- title: { title: assetName, justification: "center" },
38
- pagination: results.totalCount !== undefined ? { shown: results.tableData.length, total: results.totalCount } : undefined,
39
- });
32
+ return envelope_ok(`No ${assetName} found matching the criteria.\n`);
40
33
  }
34
+ return envelope_ok(table_render(results.tableData, results.selectedFields, {
35
+ title: { title: assetName, justification: "center" },
36
+ pagination: results.totalCount !== undefined ? { shown: results.tableData.length, total: results.totalCount } : undefined,
37
+ }));
38
+ }
39
+ else if (subcommand === 'search') {
40
+ const query = parsed._[1] ?? '';
41
+ return builtin_fileGroup([...args.filter((a) => a !== subcommand), '--search', query], assetName);
41
42
  }
42
43
  else if (subcommand === 'inspect' || subcommand === 'fieldslist') {
43
44
  const fields = await fileFields_fetch(assetName);
44
45
  if (fields && fields.length > 0) {
45
- table_display(fields.map(f => ({ fields: f })), ["fields"]);
46
+ return envelope_ok(table_render(fields.map(f => ({ fields: f })), ["fields"]));
46
47
  }
47
- else {
48
- console.log(`No resource fields found for ${assetName}.`);
49
- }
50
- }
51
- else {
52
- console.log(chalk.yellow('Directive not handled by chell... spawning chili directly'));
53
- await chiliCommand_run(assetName, ['-s', ...args]);
48
+ return envelope_ok(`No resource fields found for ${assetName}.\n`);
54
49
  }
50
+ process.exitCode = 1;
51
+ return envelope_error(`${chalk.yellow(`Unknown subcommand: ${subcommand}. Usage: ${assetName} <list|search|inspect>`)}\n`);
55
52
  }
56
53
  catch (e) {
57
54
  const msg = e instanceof Error ? e.message : String(e);
58
- console.error(chalk.red(`${assetName} error: ${msg}`));
55
+ process.exitCode = 1;
56
+ return envelope_error('', undefined, `${chalk.red(`${assetName} error: ${msg}`)}\n`);
59
57
  }
60
58
  }
61
59
  /**
62
60
  * Handles files commands.
63
61
  *
64
62
  * @param args - command arguments.
63
+ * @returns An envelope carrying the files listing or fields.
65
64
  */
66
65
  export async function builtin_files(args) {
67
- await builtin_fileGroup(args, 'files');
66
+ return builtin_fileGroup(args, 'files');
68
67
  }
69
68
  /**
70
69
  * Handles links commands.
71
70
  *
72
71
  * @param args - command arguments.
72
+ * @returns An envelope carrying the links listing or fields.
73
73
  */
74
74
  export async function builtin_links(args) {
75
- await builtin_fileGroup(args, 'links');
75
+ return builtin_fileGroup(args, 'links');
76
76
  }
77
77
  /**
78
78
  * Handles dirs commands.
79
79
  *
80
80
  * @param args - command arguments.
81
+ * @returns An envelope carrying the dirs listing or fields.
81
82
  */
82
83
  export async function builtin_dirs(args) {
83
- await builtin_fileGroup(args, 'dirs');
84
+ return builtin_fileGroup(args, 'dirs');
84
85
  }
85
86
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/builtins/res/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/builtins/res/files.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ import { CommandEnvelope } from '@fnndsc/cumin';
1
2
  /**
2
3
  * Builtin handler for the `group` command.
3
4
  *
4
5
  * @param args - Parsed command arguments for the group command.
6
+ * @returns An envelope carrying the group listing or fields.
5
7
  */
6
- export declare function builtin_group(args: string[]): Promise<void>;
8
+ export declare function builtin_group(args: string[]): Promise<CommandEnvelope>;
@@ -6,14 +6,16 @@
6
6
  * Singular/plural aliases: group / groups
7
7
  */
8
8
  import chalk from 'chalk';
9
+ import { envelope_ok, envelope_error } from '@fnndsc/cumin';
9
10
  import { commandArgs_process } from '../utils.js';
10
11
  import { groups_fetchList } from '@fnndsc/chili/commands/groups/list.js';
11
12
  import { groupFields_fetch } from '@fnndsc/chili/commands/groups/fields.js';
12
- import { table_display } from '@fnndsc/chili/screen/screen.js';
13
+ import { table_render } from '@fnndsc/chili/screen/screen.js';
13
14
  /**
14
15
  * Builtin handler for the `group` command.
15
16
  *
16
17
  * @param args - Parsed command arguments for the group command.
18
+ * @returns An envelope carrying the group listing or fields.
17
19
  */
18
20
  export async function builtin_group(args) {
19
21
  const parsed = commandArgs_process(args);
@@ -22,33 +24,27 @@ export async function builtin_group(args) {
22
24
  try {
23
25
  const { groups, selectedFields, totalCount } = await groups_fetchList(parsed);
24
26
  if (groups.length === 0) {
25
- console.log(chalk.gray('No groups found.'));
26
- return;
27
+ return envelope_ok(`${chalk.gray('No groups found.')}\n`);
27
28
  }
28
- table_display(groups, selectedFields, { title: { title: 'Groups', justification: 'center' }, pagination: totalCount !== undefined ? { shown: groups.length, total: totalCount } : undefined });
29
+ return envelope_ok(table_render(groups, selectedFields, { title: { title: 'Groups', justification: 'center' }, pagination: totalCount !== undefined ? { shown: groups.length, total: totalCount } : undefined }));
29
30
  }
30
31
  catch (e) {
31
32
  process.exitCode = 1;
32
- console.error(chalk.red(`group error: ${e instanceof Error ? e.message : String(e)}`));
33
+ return envelope_error('', undefined, `${chalk.red(`group error: ${e instanceof Error ? e.message : String(e)}`)}\n`);
33
34
  }
34
- return;
35
35
  }
36
36
  if (subcommand === 'search') {
37
37
  const query = parsed._[1] ?? '';
38
- await builtin_group([...args.filter((a) => a !== subcommand), `--search`, query]);
39
- return;
38
+ return builtin_group([...args.filter((a) => a !== subcommand), `--search`, query]);
40
39
  }
41
40
  if (subcommand === 'inspect') {
42
41
  const fields = await groupFields_fetch();
43
42
  if (fields && fields.length > 0) {
44
- table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Group fields', justification: 'center' } });
43
+ return envelope_ok(table_render(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Group fields', justification: 'center' } }));
45
44
  }
46
- else {
47
- console.log(chalk.gray('No fields found for groups.'));
48
- }
49
- return;
45
+ return envelope_ok(`${chalk.gray('No fields found for groups.')}\n`);
50
46
  }
51
47
  process.exitCode = 1;
52
- console.log(chalk.red(`Unknown subcommand: ${subcommand}. Usage: groups <list|search|inspect>`));
48
+ return envelope_error(`${chalk.red(`Unknown subcommand: ${subcommand}. Usage: groups <list|search|inspect>`)}\n`);
53
49
  }
54
50
  //# sourceMappingURL=group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/builtins/res/group.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,MAAM,GAAe,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,UAAU,GAAuB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAoB,MAAM,gBAAgB,CAAC,MAA+B,CAAC,CAAC;YACxH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACjF,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACjM,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAoB,MAAM,iBAAiB,EAAE,CAAC;QAC1D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrI,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,UAAU,uCAAuC,CAAC,CAAC,CAAC;AACnG,CAAC"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/builtins/res/group.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<void>;
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<void>;
17
+ export declare function plugin_addInteractive(parsed: ParsedArgs): Promise<CommandEnvelope>;