@fnndsc/brasa 0.9.2 → 0.10.1

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 (170) hide show
  1. package/dist/buildinfo.json +1 -0
  2. package/dist/builtins/argumentTokens.d.ts +18 -0
  3. package/dist/builtins/argumentTokens.js +58 -0
  4. package/dist/builtins/argumentTokens.js.map +1 -0
  5. package/dist/builtins/executable.d.ts +3 -7
  6. package/dist/builtins/executable.js +32 -29
  7. package/dist/builtins/executable.js.map +1 -1
  8. package/dist/builtins/feedCreation.d.ts +23 -0
  9. package/dist/builtins/feedCreation.js +45 -0
  10. package/dist/builtins/feedCreation.js.map +1 -0
  11. package/dist/builtins/fs/cat.args.d.ts +36 -0
  12. package/dist/builtins/fs/cat.args.js +63 -0
  13. package/dist/builtins/fs/cat.args.js.map +1 -0
  14. package/dist/builtins/fs/cat.d.ts +2 -2
  15. package/dist/builtins/fs/cat.js +222 -101
  16. package/dist/builtins/fs/cat.js.map +1 -1
  17. package/dist/builtins/fs/cd.js +41 -5
  18. package/dist/builtins/fs/cd.js.map +1 -1
  19. package/dist/builtins/fs/cp.js +3 -2
  20. package/dist/builtins/fs/cp.js.map +1 -1
  21. package/dist/builtins/fs/download.d.ts +1 -1
  22. package/dist/builtins/fs/download.js +52 -13
  23. package/dist/builtins/fs/download.js.map +1 -1
  24. package/dist/builtins/fs/du.js +15 -1
  25. package/dist/builtins/fs/du.js.map +1 -1
  26. package/dist/builtins/fs/ls.js +10 -1
  27. package/dist/builtins/fs/ls.js.map +1 -1
  28. package/dist/builtins/fs/mv.js +7 -3
  29. package/dist/builtins/fs/mv.js.map +1 -1
  30. package/dist/builtins/fs/pull.args.d.ts +14 -1
  31. package/dist/builtins/fs/pull.args.js +72 -9
  32. package/dist/builtins/fs/pull.args.js.map +1 -1
  33. package/dist/builtins/fs/pull.d.ts +1 -0
  34. package/dist/builtins/fs/pull.js +191 -259
  35. package/dist/builtins/fs/pull.js.map +1 -1
  36. package/dist/builtins/fs/rm.js +4 -0
  37. package/dist/builtins/fs/rm.js.map +1 -1
  38. package/dist/builtins/fs/tree.js +7 -3
  39. package/dist/builtins/fs/tree.js.map +1 -1
  40. package/dist/builtins/fs/upload.js +29 -2
  41. package/dist/builtins/fs/upload.js.map +1 -1
  42. package/dist/builtins/help.d.ts +7 -0
  43. package/dist/builtins/help.js +144 -36
  44. package/dist/builtins/help.js.map +1 -1
  45. package/dist/builtins/index.d.ts +1 -0
  46. package/dist/builtins/index.js +1 -0
  47. package/dist/builtins/index.js.map +1 -1
  48. package/dist/builtins/net/cubepath.js +1 -2
  49. package/dist/builtins/net/cubepath.js.map +1 -1
  50. package/dist/builtins/net/pacs.d.ts +1 -0
  51. package/dist/builtins/net/pacs.js +5 -1
  52. package/dist/builtins/net/pacs.js.map +1 -1
  53. package/dist/builtins/net/pacsUtils.d.ts +4 -23
  54. package/dist/builtins/net/pacsUtils.js +11 -32
  55. package/dist/builtins/net/pacsUtils.js.map +1 -1
  56. package/dist/builtins/net/query.js +4 -1
  57. package/dist/builtins/net/query.js.map +1 -1
  58. package/dist/builtins/net/status.d.ts +14 -0
  59. package/dist/builtins/net/status.js +210 -0
  60. package/dist/builtins/net/status.js.map +1 -0
  61. package/dist/builtins/pluginExecute.d.ts +3 -2
  62. package/dist/builtins/pluginExecute.js +41 -70
  63. package/dist/builtins/pluginExecute.js.map +1 -1
  64. package/dist/builtins/pluginSelector.d.ts +15 -0
  65. package/dist/builtins/pluginSelector.js +21 -0
  66. package/dist/builtins/pluginSelector.js.map +1 -0
  67. package/dist/builtins/proc.js +106 -4
  68. package/dist/builtins/proc.js.map +1 -1
  69. package/dist/builtins/res/compute.js +8 -3
  70. package/dist/builtins/res/compute.js.map +1 -1
  71. package/dist/builtins/res/feed.js +3 -3
  72. package/dist/builtins/res/feed.js.map +1 -1
  73. package/dist/builtins/res/files.js +2 -2
  74. package/dist/builtins/res/files.js.map +1 -1
  75. package/dist/builtins/res/group.d.ts +1 -1
  76. package/dist/builtins/res/group.js +124 -7
  77. package/dist/builtins/res/group.js.map +1 -1
  78. package/dist/builtins/res/pipeline.args.d.ts +4 -0
  79. package/dist/builtins/res/pipeline.args.js +63 -12
  80. package/dist/builtins/res/pipeline.args.js.map +1 -1
  81. package/dist/builtins/res/pipeline.d.ts +3 -1
  82. package/dist/builtins/res/pipeline.js +155 -60
  83. package/dist/builtins/res/pipeline.js.map +1 -1
  84. package/dist/builtins/res/pipeline.manifest.d.ts +15 -0
  85. package/dist/builtins/res/pipeline.manifest.js +93 -0
  86. package/dist/builtins/res/pipeline.manifest.js.map +1 -0
  87. package/dist/builtins/res/plugin.js +16 -9
  88. package/dist/builtins/res/plugin.js.map +1 -1
  89. package/dist/builtins/res/plugininstance.js +2 -2
  90. package/dist/builtins/res/plugininstance.js.map +1 -1
  91. package/dist/builtins/res/pluginmeta.js +2 -2
  92. package/dist/builtins/res/pluginmeta.js.map +1 -1
  93. package/dist/builtins/res/tag.js +2 -2
  94. package/dist/builtins/res/tag.js.map +1 -1
  95. package/dist/builtins/res/user.d.ts +8 -0
  96. package/dist/builtins/res/user.js +87 -0
  97. package/dist/builtins/res/user.js.map +1 -0
  98. package/dist/builtins/res/workflow.js +2 -2
  99. package/dist/builtins/res/workflow.js.map +1 -1
  100. package/dist/builtins/store.js +24 -3
  101. package/dist/builtins/store.js.map +1 -1
  102. package/dist/builtins/sys/fortune.d.ts +9 -0
  103. package/dist/builtins/sys/fortune.js +16 -1
  104. package/dist/builtins/sys/fortune.js.map +1 -1
  105. package/dist/builtins/sys/whoami.d.ts +13 -1
  106. package/dist/builtins/sys/whoami.js +47 -2
  107. package/dist/builtins/sys/whoami.js.map +1 -1
  108. package/dist/builtins/utils.d.ts +25 -1
  109. package/dist/builtins/utils.js +30 -3
  110. package/dist/builtins/utils.js.map +1 -1
  111. package/dist/builtins/wildcard.d.ts +31 -0
  112. package/dist/builtins/wildcard.js +114 -51
  113. package/dist/builtins/wildcard.js.map +1 -1
  114. package/dist/command-keys.js +2 -1
  115. package/dist/command-keys.js.map +1 -1
  116. package/dist/core/cancellation.d.ts +28 -0
  117. package/dist/core/cancellation.js +70 -0
  118. package/dist/core/cancellation.js.map +1 -0
  119. package/dist/core/dispatch.d.ts +1 -8
  120. package/dist/core/dispatch.js +82 -82
  121. package/dist/core/dispatch.js.map +1 -1
  122. package/dist/core/elevation.d.ts +35 -0
  123. package/dist/core/elevation.js +77 -0
  124. package/dist/core/elevation.js.map +1 -0
  125. package/dist/core/engine.d.ts +12 -0
  126. package/dist/core/engine.js +35 -8
  127. package/dist/core/engine.js.map +1 -1
  128. package/dist/core/preprocess.d.ts +11 -4
  129. package/dist/core/preprocess.js +43 -10
  130. package/dist/core/preprocess.js.map +1 -1
  131. package/dist/core/progress.d.ts +15 -5
  132. package/dist/core/progress.js +14 -0
  133. package/dist/core/progress.js.map +1 -1
  134. package/dist/core/promptContext.d.ts +3 -5
  135. package/dist/core/promptContext.js +9 -2
  136. package/dist/core/promptContext.js.map +1 -1
  137. package/dist/core/sink.d.ts +9 -0
  138. package/dist/core/sink.js +23 -3
  139. package/dist/core/sink.js.map +1 -1
  140. package/dist/core/surface.d.ts +14 -0
  141. package/dist/core/surface.js +5 -0
  142. package/dist/core/surface.js.map +1 -1
  143. package/dist/core/version.d.ts +34 -0
  144. package/dist/core/version.js +51 -0
  145. package/dist/core/version.js.map +1 -1
  146. package/dist/index.d.ts +1 -0
  147. package/dist/index.js +1 -0
  148. package/dist/index.js.map +1 -1
  149. package/dist/lib/completer/index.js +41 -2
  150. package/dist/lib/completer/index.js.map +1 -1
  151. package/dist/lib/parser.d.ts +75 -2
  152. package/dist/lib/parser.js +158 -15
  153. package/dist/lib/parser.js.map +1 -1
  154. package/dist/lib/vfs/listing.d.ts +22 -0
  155. package/dist/lib/vfs/listing.js +14 -0
  156. package/dist/lib/vfs/listing.js.map +1 -0
  157. package/dist/lib/vfs/providers/binEntry.d.ts +20 -0
  158. package/dist/lib/vfs/providers/binEntry.js +47 -0
  159. package/dist/lib/vfs/providers/binEntry.js.map +1 -0
  160. package/dist/lib/vfs/providers/static.js +1 -0
  161. package/dist/lib/vfs/providers/static.js.map +1 -1
  162. package/dist/lib/vfs/providers/static_content.js +7 -38
  163. package/dist/lib/vfs/providers/static_content.js.map +1 -1
  164. package/dist/lib/vfs/vfs.d.ts +7 -0
  165. package/dist/lib/vfs/vfs.js +28 -2
  166. package/dist/lib/vfs/vfs.js.map +1 -1
  167. package/dist/session/index.d.ts +18 -0
  168. package/dist/session/index.js +29 -1
  169. package/dist/session/index.js.map +1 -1
  170. package/package.json +10 -5
@@ -4,7 +4,7 @@
4
4
  * Handles plugin management in chell. Subcommands:
5
5
  * - `list` — fetch and render the plugin collection via chili
6
6
  * - `run` — execute a plugin instance by searchable name/id
7
- * - `add` — register a new plugin into CUBE (interactive, with spinner)
7
+ * - `add` — register a new plugin into CUBE (with spinner)
8
8
  *
9
9
  * Unknown subcommands fall through to a spawned chili process.
10
10
  * `plugin` and `plugins` are both registered as aliases in COMMAND_HANDLERS.
@@ -12,7 +12,7 @@
12
12
  * @module
13
13
  */
14
14
  import chalk from 'chalk';
15
- import { commandArgs_process } from '../utils.js';
15
+ import { commandArgs_process, cliOptions_from } from '../utils.js';
16
16
  import { plugins_fetchList } from '@fnndsc/chili/commands/plugins/list.js';
17
17
  import { pluginFields_fetch } from '@fnndsc/chili/commands/plugins/fields.js';
18
18
  import { plugin_execute } from '@fnndsc/chili/commands/plugin/run.js';
@@ -21,8 +21,8 @@ import { pluginList_render, pluginRun_render } from '@fnndsc/chili/views/plugin.
21
21
  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
- import { adminPrompt_register } from '@fnndsc/chili/utils/admin_prompt.js';
25
- import { repl_question, repl_questionHidden } from '../../core/question.js';
24
+ import { chili_capture } from '@fnndsc/chili/screen/output.js';
25
+ import { authorizationFailure_is, sudoHint_build } from '../../core/elevation.js';
26
26
  /**
27
27
  * Handles plugin commands.
28
28
  *
@@ -37,7 +37,7 @@ export async function builtin_plugin(args) {
37
37
  }
38
38
  try {
39
39
  if (subcommand === 'list') {
40
- const { plugins, selectedFields, totalCount } = await plugins_fetchList(parsed);
40
+ const { plugins, selectedFields, totalCount } = await plugins_fetchList(cliOptions_from(parsed));
41
41
  let rendered = `${pluginList_render(plugins, selectedFields, { table: !!parsed.table, csv: !!parsed.csv })}\n`;
42
42
  if (totalCount !== undefined && plugins.length < totalCount) {
43
43
  rendered += `${chalk.dim(` ↓ showing ${plugins.length} of ${totalCount} · --all to fetch all · --limit <n> for page size`)}\n`;
@@ -100,15 +100,19 @@ export async function plugin_addInteractive(parsed) {
100
100
  public_repo: parsed.publicRepo,
101
101
  };
102
102
  errorStack.stack_clear();
103
- adminPrompt_register(repl_question, repl_questionHidden);
104
103
  let rendered = `${chalk.cyan(`\nAdding plugin: ${pluginInput}\n`)}\n`;
105
- const outcome = await plugin_add(pluginInput, options);
104
+ const result = { outcome: 'failed' };
105
+ const captured = await chili_capture(async () => {
106
+ result.outcome = await plugin_add(pluginInput, options);
107
+ });
108
+ rendered += captured.out;
109
+ rendered += captured.err;
106
110
  spinner.stop();
107
- if (outcome === 'installed') {
111
+ if (result.outcome === 'installed') {
108
112
  rendered += `${chalk.green('\n[SUCCESS] Plugin added successfully!\n')}\n`;
109
113
  return envelope_ok(rendered);
110
114
  }
111
- else if (outcome === 'already_exists') {
115
+ else if (result.outcome === 'already_exists') {
112
116
  rendered += `${chalk.yellow(`\n[INFO] '${pluginInput}' is already registered in this CUBE.\n`)}\n`;
113
117
  return envelope_ok(rendered);
114
118
  }
@@ -123,6 +127,9 @@ export async function plugin_addInteractive(parsed) {
123
127
  });
124
128
  rendered += '\n';
125
129
  }
130
+ if (errors.some(authorizationFailure_is)) {
131
+ rendered += `\n${sudoHint_build('plugin add', [pluginInput])}`;
132
+ }
126
133
  const warnings = errorStack.allOfType_get('warning');
127
134
  if (warnings.length > 0) {
128
135
  rendered += `${chalk.yellow('Warnings:')}\n`;
@@ -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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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import chalk from 'chalk';
8
8
  import { envelope_ok, envelope_error } from '@fnndsc/cumin';
9
- import { commandArgs_process } from '../utils.js';
9
+ import { commandArgs_process, cliOptions_from } from '../utils.js';
10
10
  import { pluginInstances_fetchList } from '@fnndsc/chili/commands/plugininstances/list.js';
11
11
  import { pluginInstanceFields_fetch } from '@fnndsc/chili/commands/plugininstances/fields.js';
12
12
  import { table_render } from '@fnndsc/chili/screen/screen.js';
@@ -20,7 +20,7 @@ export async function builtin_plugininstance(args) {
20
20
  const subcommand = parsed._[0];
21
21
  if (!subcommand || subcommand === 'list') {
22
22
  try {
23
- const { pluginInstances, selectedFields, totalCount } = await pluginInstances_fetchList(parsed);
23
+ const { pluginInstances, selectedFields, totalCount } = await pluginInstances_fetchList(cliOptions_from(parsed));
24
24
  if (pluginInstances.length === 0) {
25
25
  return envelope_ok(`${chalk.gray('No plugin instances found.')}\n`);
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugininstance.js","sourceRoot":"","sources":["../../../src/builtins/res/plugininstance.ts"],"names":[],"mappings":"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"}
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,EAAmB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAc,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAA4B,MAAM,gDAAgD,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAG9D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAc;IACzD,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,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,GAA6B,MAAM,yBAAyB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3I,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAC1G,OAAO,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAChP,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAChI,CAAC;IACH,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAoB,MAAM,0BAA0B,EAAE,CAAC;QACnE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,WAAW,CAAC,YAAY,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,wBAAwB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAClK,CAAC;QACD,OAAO,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,uBAAuB,UAAU,gDAAgD,CAAC,IAAI,CAAC,CAAC;AAC7H,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import chalk from 'chalk';
8
8
  import { envelope_ok, envelope_error } from '@fnndsc/cumin';
9
- import { commandArgs_process } from '../utils.js';
9
+ import { commandArgs_process, cliOptions_from } from '../utils.js';
10
10
  import { pluginMetas_fetchList } from '@fnndsc/chili/commands/pluginmetas/list.js';
11
11
  import { pluginMetaFields_fetch } from '@fnndsc/chili/commands/pluginmetas/fields.js';
12
12
  import { table_render } from '@fnndsc/chili/screen/screen.js';
@@ -20,7 +20,7 @@ export async function builtin_pluginmeta(args) {
20
20
  const subcommand = parsed._[0];
21
21
  if (!subcommand || subcommand === 'list') {
22
22
  try {
23
- const { pluginMetas, selectedFields, totalCount } = await pluginMetas_fetchList(parsed);
23
+ const { pluginMetas, selectedFields, totalCount } = await pluginMetas_fetchList(cliOptions_from(parsed));
24
24
  if (pluginMetas.length === 0) {
25
25
  return envelope_ok(`${chalk.gray('No plugin metas found.')}\n`);
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pluginmeta.js","sourceRoot":"","sources":["../../../src/builtins/res/pluginmeta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginmeta.js","sourceRoot":"","sources":["../../../src/builtins/res/pluginmeta.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import chalk from 'chalk';
8
8
  import { envelope_ok, envelope_error } from '@fnndsc/cumin';
9
- import { commandArgs_process } from '../utils.js';
9
+ import { commandArgs_process, cliOptions_from } from '../utils.js';
10
10
  import { tags_fetchList } from '@fnndsc/chili/commands/tags/list.js';
11
11
  import { tagFields_fetch } from '@fnndsc/chili/commands/tags/fields.js';
12
12
  import { table_render } from '@fnndsc/chili/screen/screen.js';
@@ -21,7 +21,7 @@ export async function builtin_tag(args) {
21
21
  const subcommand = parsed._[0];
22
22
  if (!subcommand || subcommand === 'list') {
23
23
  try {
24
- const { tags, selectedFields, totalCount } = await tags_fetchList(parsed);
24
+ const { tags, selectedFields, totalCount } = await tags_fetchList(cliOptions_from(parsed));
25
25
  if (tags.length === 0) {
26
26
  return envelope_ok(`${chalk.gray('No tags found.')}\n`);
27
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../src/builtins/res/tag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../src/builtins/res/tag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type CommandEnvelope } from '@fnndsc/cumin';
2
+ /**
3
+ * Handles targeted local-account lifecycle commands.
4
+ *
5
+ * @param args - Parsed command arguments beginning with an account operation.
6
+ * @returns Envelope containing a local-account result or operation error.
7
+ */
8
+ export declare function builtin_user(args: string[]): Promise<CommandEnvelope>;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @file CUBE-local account administration builtin.
3
+ *
4
+ * This is a targeted control-plane command rather than a ChRIS Resource
5
+ * Command: federated identities remain outside its authority.
6
+ *
7
+ * @module
8
+ */
9
+ import chalk from 'chalk';
10
+ import { errorStack, envelope_error, envelope_ok } from '@fnndsc/cumin';
11
+ import { table_render } from '@fnndsc/chili/screen/screen.js';
12
+ import { localAccount_action, localAccount_adminAccessEnsure, localAccount_create, localAccount_find, } from '@fnndsc/chili/commands/users/local.js';
13
+ import { surface_get } from '../../core/surface.js';
14
+ import { authorizationFailure_is, sudoHint_build } from '../../core/elevation.js';
15
+ /**
16
+ * Renders a local-account command error and records a failing process status.
17
+ *
18
+ * @param message - User-facing error text.
19
+ * @returns Error envelope for the active command surface.
20
+ */
21
+ function user_error(message) {
22
+ process.exitCode = 1;
23
+ return envelope_error('', undefined, `${chalk.red(message)}\n`);
24
+ }
25
+ /**
26
+ * Renders an account-operation failure, including elevation guidance when apt.
27
+ *
28
+ * @param verb - Failed local-account operation.
29
+ * @param username - Target local username.
30
+ * @returns Error envelope for the active command surface.
31
+ */
32
+ function user_operationError(verb, username) {
33
+ const detail = errorStack.stack_pop()?.message ?? `user ${verb} failed.`;
34
+ const hint = authorizationFailure_is(detail) ? sudoHint_build(`user ${verb}`, [username]) : '';
35
+ return user_error(`${detail}\n${hint}`);
36
+ }
37
+ /**
38
+ * Renders one local account as a stable, operator-oriented table.
39
+ *
40
+ * @param account - Local account returned by CUBE.
41
+ * @returns Success envelope containing the rendered account.
42
+ */
43
+ function user_render(account) {
44
+ return envelope_ok(table_render([{ ...account }], ['id', 'username', 'email', 'is_active', 'disabled_at', 'removed_at']));
45
+ }
46
+ /**
47
+ * Handles targeted local-account lifecycle commands.
48
+ *
49
+ * @param args - Parsed command arguments beginning with an account operation.
50
+ * @returns Envelope containing a local-account result or operation error.
51
+ */
52
+ export async function builtin_user(args) {
53
+ const [verb, username] = args;
54
+ if (verb === 'add' || verb === 'inspect' || verb === 'disable' || verb === 'enable' || verb === 'remove') {
55
+ if (!username)
56
+ return user_error(`Usage: user ${verb} <username>`);
57
+ const access = await localAccount_adminAccessEnsure();
58
+ if (!access.ok)
59
+ return user_operationError(verb, username);
60
+ }
61
+ if (verb === 'add') {
62
+ const surface = surface_get();
63
+ if (!surface.capabilities.hiddenInput)
64
+ return user_error('user add: this surface cannot securely collect a password.');
65
+ const email = await surface.prompt({ message: 'Email address: ' });
66
+ const password = await surface.prompt({ message: 'New password: ', hidden: true });
67
+ const confirmation = await surface.prompt({ message: 'Retype new password: ', hidden: true });
68
+ if (password !== confirmation)
69
+ return user_error('user add: passwords do not match.');
70
+ const result = await localAccount_create(username, email, password);
71
+ return result.ok ? user_render(result.value) : user_operationError('add', username);
72
+ }
73
+ if (verb === 'inspect') {
74
+ const result = await localAccount_find(username);
75
+ return result.ok ? user_render(result.value) : user_error(errorStack.stack_pop()?.message ?? `No CUBE-local account named '${username}'.`);
76
+ }
77
+ if (verb === 'disable' || verb === 'enable' || verb === 'remove') {
78
+ const found = await localAccount_find(username);
79
+ if (!found.ok)
80
+ return user_error(errorStack.stack_pop()?.message ?? `No CUBE-local account named '${username}'.`);
81
+ const action = verb;
82
+ const result = await localAccount_action(found.value.id, action);
83
+ return result.ok ? user_render(result.value) : user_operationError(verb, username);
84
+ }
85
+ return user_error('Usage: user <add|inspect|disable|enable|remove> ...');
86
+ }
87
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/builtins/res/user.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import chalk from 'chalk';
8
8
  import { envelope_ok, envelope_error } from '@fnndsc/cumin';
9
- import { commandArgs_process } from '../utils.js';
9
+ import { commandArgs_process, cliOptions_from } from '../utils.js';
10
10
  import { workflows_fetchList } from '@fnndsc/chili/commands/workflows/list.js';
11
11
  import { workflowFields_fetch } from '@fnndsc/chili/commands/workflows/fields.js';
12
12
  import { table_render } from '@fnndsc/chili/screen/screen.js';
@@ -20,7 +20,7 @@ export async function builtin_workflow(args) {
20
20
  const subcommand = parsed._[0];
21
21
  if (!subcommand || subcommand === 'list') {
22
22
  try {
23
- const { workflows, selectedFields, totalCount } = await workflows_fetchList(parsed);
23
+ const { workflows, selectedFields, totalCount } = await workflows_fetchList(cliOptions_from(parsed));
24
24
  if (workflows.length === 0) {
25
25
  return envelope_ok(`${chalk.gray('No workflows found.')}\n`);
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/builtins/res/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/builtins/res/workflow.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,21 @@ import { store_listPlugins, store_searchPlugins } from '@fnndsc/chili/commands/s
8
8
  import { grid_render, long_render } from '@fnndsc/chili/views/ls.js';
9
9
  import { spinner } from '../lib/spinner.js';
10
10
  import { plugin_addInteractive } from './res/plugin.js';
11
- import { envelope_ok, envelope_error } from '@fnndsc/cumin';
11
+ import { envelope_ok, envelope_error, errorStack } from '@fnndsc/cumin';
12
12
  import { DEFAULT_STORE_URL, storeUrl_get, storeUrl_isDefault, storeUrl_set, storeUrl_clear, storeConfig_persist, } from '../config/storeConfig.js';
13
+ /**
14
+ * Renders a store fetch failure as an error envelope, draining the reason the
15
+ * fetch pushed onto the error stack.
16
+ *
17
+ * @param fallback - Message used when the stack holds no detail.
18
+ * @returns An error envelope with the failure on the err channel.
19
+ */
20
+ function storeFailure_envelope(fallback) {
21
+ const lastError = errorStack.stack_pop();
22
+ const detail = lastError ? lastError.message : fallback;
23
+ process.exitCode = 1;
24
+ return envelope_error('', undefined, `${chalk.red(detail)}\n`);
25
+ }
13
26
  /**
14
27
  * Handles store commands.
15
28
  *
@@ -28,8 +41,12 @@ export async function builtin_store(args) {
28
41
  try {
29
42
  spinner.start('Fetching from store...');
30
43
  if (subcommand === 'list') {
31
- const items = await store_listPlugins(storeOptions);
44
+ const listResult = await store_listPlugins(storeOptions);
32
45
  spinner.stop();
46
+ if (!listResult.ok) {
47
+ return storeFailure_envelope('store list failed');
48
+ }
49
+ const items = listResult.value;
33
50
  if (items.length === 0) {
34
51
  return envelope_ok('No plugins found in store.\n');
35
52
  }
@@ -42,8 +59,12 @@ export async function builtin_store(args) {
42
59
  spinner.stop();
43
60
  return envelope_ok(`${chalk.red("Usage: store search <query>")}\n`);
44
61
  }
45
- const items = await store_searchPlugins(query, storeOptions);
62
+ const searchResult = await store_searchPlugins(query, storeOptions);
46
63
  spinner.stop();
64
+ if (!searchResult.ok) {
65
+ return storeFailure_envelope(`store search failed for '${query}'`);
66
+ }
67
+ const items = searchResult.value;
47
68
  if (items.length === 0) {
48
69
  return envelope_ok(`No plugins found matching '${query}'.\n`);
49
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/builtins/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/builtins/store.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,15 @@
9
9
  * @module
10
10
  */
11
11
  import { CommandEnvelope } from '@fnndsc/cumin';
12
+ /**
13
+ * Picks a random fortune from the bundled collection.
14
+ *
15
+ * @param maxLines - Optional upper bound on the fortune's line count, so a
16
+ * boot banner can favour short cookies. When the bound filters everything
17
+ * out, the full collection is used rather than returning nothing.
18
+ * @returns The chosen fortune text (no trailing newline).
19
+ */
20
+ export declare function fortune_random(maxLines?: number): string;
12
21
  /**
13
22
  * Reports a random fortune as a command envelope.
14
23
  *
@@ -10,6 +10,21 @@
10
10
  */
11
11
  import { envelope_ok } from '@fnndsc/cumin';
12
12
  import { FORTUNES } from './fortunes.data.js';
13
+ /**
14
+ * Picks a random fortune from the bundled collection.
15
+ *
16
+ * @param maxLines - Optional upper bound on the fortune's line count, so a
17
+ * boot banner can favour short cookies. When the bound filters everything
18
+ * out, the full collection is used rather than returning nothing.
19
+ * @returns The chosen fortune text (no trailing newline).
20
+ */
21
+ export function fortune_random(maxLines) {
22
+ const bounded = maxLines !== undefined
23
+ ? FORTUNES.filter((f) => f.split('\n').length <= maxLines)
24
+ : FORTUNES;
25
+ const pool = bounded.length > 0 ? bounded : FORTUNES;
26
+ return pool[Math.floor(Math.random() * pool.length)];
27
+ }
13
28
  /**
14
29
  * Reports a random fortune as a command envelope.
15
30
  *
@@ -17,7 +32,7 @@ import { FORTUNES } from './fortunes.data.js';
17
32
  * @returns An envelope carrying the chosen fortune and a typed model of it.
18
33
  */
19
34
  export async function builtin_fortune(_args) {
20
- const fortune = FORTUNES[Math.floor(Math.random() * FORTUNES.length)];
35
+ const fortune = fortune_random();
21
36
  return envelope_ok(`${fortune}\n`, {
22
37
  kind: 'sys.fortune',
23
38
  data: { fortune },
@@ -1 +1 @@
1
- {"version":3,"file":"fortune.js","sourceRoot":"","sources":["../../../src/builtins/sys/fortune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAe;IACnD,MAAM,OAAO,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,OAAO,WAAW,CAAC,GAAG,OAAO,IAAI,EAAE;QACjC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,EAAE,OAAO,EAAE;KAClB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"fortune.js","sourceRoot":"","sources":["../../../src/builtins/sys/fortune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB;IAC9C,MAAM,OAAO,GACX,QAAQ,KAAK,SAAS;QACpB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAS,EAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC;QAC3E,CAAC,CAAC,QAAQ,CAAC;IACf,MAAM,IAAI,GAAsB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAe;IACnD,MAAM,OAAO,GAAW,cAAc,EAAE,CAAC;IACzC,OAAO,WAAW,CAAC,GAAG,OAAO,IAAI,EAAE;QACjC,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,EAAE,OAAO,EAAE;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,16 @@
1
- import { CommandEnvelope } from '@fnndsc/cumin';
1
+ import { type CommandEnvelope } from '@fnndsc/cumin';
2
+ /**
3
+ * Reports the current ChRIS identity using Unix `id` notation.
4
+ *
5
+ * CUBE exposes a numeric user ID but no primary-group field. ChELL therefore
6
+ * uses the same POSIX projection as `/etc/passwd`: the primary GID and group
7
+ * name equal the user's ID and username.
8
+ *
9
+ * @param _args - Unused.
10
+ * @returns An envelope carrying numeric UID/GID identity and every CUBE group
11
+ * membership, or an error envelope when identity cannot be resolved.
12
+ */
13
+ export declare function builtin_id(_args: string[]): Promise<CommandEnvelope>;
2
14
  /**
3
15
  * Reports the current authenticated ChRIS username.
4
16
  *
@@ -1,10 +1,55 @@
1
1
  /**
2
- * @file Builtins whoami and whereami.
2
+ * @file Builtins id, whoami, and whereami.
3
3
  * Quick single-line identity queries, reported as command envelopes.
4
4
  */
5
5
  import chalk from 'chalk';
6
6
  import { context_getSingle } from '@fnndsc/salsa';
7
- import { envelope_ok, envelope_error } from '@fnndsc/cumin';
7
+ import { currentIdentity_get, envelope_error, envelope_ok, } from '@fnndsc/cumin';
8
+ /**
9
+ * Reports the current ChRIS identity using Unix `id` notation.
10
+ *
11
+ * CUBE exposes a numeric user ID but no primary-group field. ChELL therefore
12
+ * uses the same POSIX projection as `/etc/passwd`: the primary GID and group
13
+ * name equal the user's ID and username.
14
+ *
15
+ * @param _args - Unused.
16
+ * @returns An envelope carrying numeric UID/GID identity and every CUBE group
17
+ * membership, or an error envelope when identity cannot be resolved.
18
+ */
19
+ export async function builtin_id(_args) {
20
+ const result = await currentIdentity_get();
21
+ if (!result.ok) {
22
+ process.exitCode = 1;
23
+ return envelope_error(`${chalk.gray('(identity unavailable)')}\n`);
24
+ }
25
+ const identity = result.value;
26
+ const primaryGroup = {
27
+ gid: identity.user.id,
28
+ group: identity.user.username,
29
+ };
30
+ const memberships = identity.groups
31
+ .map((membership) => ({
32
+ gid: membership.id,
33
+ group: membership.name,
34
+ }))
35
+ .filter((membership) => membership.gid !== primaryGroup.gid || membership.group !== primaryGroup.group)
36
+ .sort((left, right) => left.gid - right.gid || left.group.localeCompare(right.group));
37
+ const groups = [primaryGroup, ...memberships];
38
+ const renderedGroups = groups
39
+ .map((membership) => `${membership.gid}(${membership.group})`)
40
+ .join(',');
41
+ return envelope_ok(`uid=${identity.user.id}(${identity.user.username}) `
42
+ + `gid=${primaryGroup.gid}(${primaryGroup.group}) groups=${renderedGroups}\n`, {
43
+ kind: 'session.posixIdentity',
44
+ data: {
45
+ uid: identity.user.id,
46
+ user: identity.user.username,
47
+ gid: primaryGroup.gid,
48
+ group: primaryGroup.group,
49
+ groups,
50
+ },
51
+ });
52
+ }
8
53
  /**
9
54
  * Reports the current authenticated ChRIS username.
10
55
  *
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/builtins/sys/whoami.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAkC,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5F;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAe;IAClD,MAAM,OAAO,GAAkB,MAAM,iBAAiB,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;YAClD,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAe;IACpD,MAAM,OAAO,GAAkB,MAAM,iBAAiB,EAAE,CAAC;IACzD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;YACjD,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/builtins/sys/whoami.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { CLIoptions } from '@fnndsc/chili/utils/cli.js';
1
2
  /**
2
3
  * Structure for parsed command line arguments.
3
4
  */
@@ -5,11 +6,34 @@ export interface ParsedArgs {
5
6
  _: string[];
6
7
  [key: string]: string | boolean | string[];
7
8
  }
9
+ /**
10
+ * Bridges POSIX-parsed builtin arguments to chili's CLI option bag.
11
+ *
12
+ * ParsedArgs and CLIoptions carry incompatible index signatures, so the
13
+ * conversion is a real copy (positional `_` dropped), not a cast.
14
+ *
15
+ * @param parsed - Arguments from `commandArgs_process`.
16
+ * @returns The same flags as a chili CLIoptions object.
17
+ */
18
+ export declare function cliOptions_from(parsed: ParsedArgs): CLIoptions;
19
+ /**
20
+ * Parsing policy for command-specific long options.
21
+ *
22
+ * @property booleanLongOptions - Flags that must retain a following operand.
23
+ */
24
+ export interface CommandArgsOptions {
25
+ /** Long options which are flags and must never consume a following operand. */
26
+ booleanLongOptions?: readonly string[];
27
+ }
8
28
  /**
9
29
  * Parses raw argument strings into a structured object.
10
30
  * Supports `--` as an end-of-options marker (everything after is treated as positional args).
31
+ *
32
+ * @param args - Tokenized command arguments.
33
+ * @param options - Command-specific long-option policy.
34
+ * @returns Parsed option values and positional operands.
11
35
  */
12
- export declare function commandArgs_process(args: string[]): ParsedArgs;
36
+ export declare function commandArgs_process(args: string[], options?: CommandArgsOptions): ParsedArgs;
13
37
  /**
14
38
  * Context required for path resolution.
15
39
  */