@fnndsc/brasa 0.1.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 (226) hide show
  1. package/dist/builtins/debug.d.ts +8 -0
  2. package/dist/builtins/debug.js +39 -0
  3. package/dist/builtins/debug.js.map +1 -0
  4. package/dist/builtins/executable.d.ts +22 -0
  5. package/dist/builtins/executable.js +115 -0
  6. package/dist/builtins/executable.js.map +1 -0
  7. package/dist/builtins/fs/cat.d.ts +16 -0
  8. package/dist/builtins/fs/cat.js +266 -0
  9. package/dist/builtins/fs/cat.js.map +1 -0
  10. package/dist/builtins/fs/cd.d.ts +42 -0
  11. package/dist/builtins/fs/cd.js +193 -0
  12. package/dist/builtins/fs/cd.js.map +1 -0
  13. package/dist/builtins/fs/cp.d.ts +10 -0
  14. package/dist/builtins/fs/cp.js +86 -0
  15. package/dist/builtins/fs/cp.js.map +1 -0
  16. package/dist/builtins/fs/download.d.ts +6 -0
  17. package/dist/builtins/fs/download.js +45 -0
  18. package/dist/builtins/fs/download.js.map +1 -0
  19. package/dist/builtins/fs/du.d.ts +58 -0
  20. package/dist/builtins/fs/du.js +210 -0
  21. package/dist/builtins/fs/du.js.map +1 -0
  22. package/dist/builtins/fs/edit.d.ts +7 -0
  23. package/dist/builtins/fs/edit.js +104 -0
  24. package/dist/builtins/fs/edit.js.map +1 -0
  25. package/dist/builtins/fs/ls.d.ts +8 -0
  26. package/dist/builtins/fs/ls.js +68 -0
  27. package/dist/builtins/fs/ls.js.map +1 -0
  28. package/dist/builtins/fs/mkdir.d.ts +9 -0
  29. package/dist/builtins/fs/mkdir.js +52 -0
  30. package/dist/builtins/fs/mkdir.js.map +1 -0
  31. package/dist/builtins/fs/mv.d.ts +10 -0
  32. package/dist/builtins/fs/mv.js +88 -0
  33. package/dist/builtins/fs/mv.js.map +1 -0
  34. package/dist/builtins/fs/pull.args.d.ts +22 -0
  35. package/dist/builtins/fs/pull.args.js +30 -0
  36. package/dist/builtins/fs/pull.args.js.map +1 -0
  37. package/dist/builtins/fs/pull.d.ts +26 -0
  38. package/dist/builtins/fs/pull.js +445 -0
  39. package/dist/builtins/fs/pull.js.map +1 -0
  40. package/dist/builtins/fs/pwd.d.ts +10 -0
  41. package/dist/builtins/fs/pwd.js +73 -0
  42. package/dist/builtins/fs/pwd.js.map +1 -0
  43. package/dist/builtins/fs/rm.d.ts +37 -0
  44. package/dist/builtins/fs/rm.js +197 -0
  45. package/dist/builtins/fs/rm.js.map +1 -0
  46. package/dist/builtins/fs/touch.d.ts +9 -0
  47. package/dist/builtins/fs/touch.js +76 -0
  48. package/dist/builtins/fs/touch.js.map +1 -0
  49. package/dist/builtins/fs/tree.d.ts +15 -0
  50. package/dist/builtins/fs/tree.js +84 -0
  51. package/dist/builtins/fs/tree.js.map +1 -0
  52. package/dist/builtins/fs/upload.d.ts +6 -0
  53. package/dist/builtins/fs/upload.js +48 -0
  54. package/dist/builtins/fs/upload.js.map +1 -0
  55. package/dist/builtins/help.d.ts +74 -0
  56. package/dist/builtins/help.js +1217 -0
  57. package/dist/builtins/help.js.map +1 -0
  58. package/dist/builtins/index.d.ts +45 -0
  59. package/dist/builtins/index.js +45 -0
  60. package/dist/builtins/index.js.map +1 -0
  61. package/dist/builtins/net/connect.d.ts +7 -0
  62. package/dist/builtins/net/connect.js +42 -0
  63. package/dist/builtins/net/connect.js.map +1 -0
  64. package/dist/builtins/net/cubepath.d.ts +18 -0
  65. package/dist/builtins/net/cubepath.js +102 -0
  66. package/dist/builtins/net/cubepath.js.map +1 -0
  67. package/dist/builtins/net/logout.d.ts +6 -0
  68. package/dist/builtins/net/logout.js +24 -0
  69. package/dist/builtins/net/logout.js.map +1 -0
  70. package/dist/builtins/net/pacs.d.ts +24 -0
  71. package/dist/builtins/net/pacs.js +121 -0
  72. package/dist/builtins/net/pacs.js.map +1 -0
  73. package/dist/builtins/net/pacsUtils.d.ts +85 -0
  74. package/dist/builtins/net/pacsUtils.js +184 -0
  75. package/dist/builtins/net/pacsUtils.js.map +1 -0
  76. package/dist/builtins/net/query.d.ts +60 -0
  77. package/dist/builtins/net/query.js +324 -0
  78. package/dist/builtins/net/query.js.map +1 -0
  79. package/dist/builtins/parametersofplugin.d.ts +13 -0
  80. package/dist/builtins/parametersofplugin.js +43 -0
  81. package/dist/builtins/parametersofplugin.js.map +1 -0
  82. package/dist/builtins/pluginExecute.d.ts +27 -0
  83. package/dist/builtins/pluginExecute.js +165 -0
  84. package/dist/builtins/pluginExecute.js.map +1 -0
  85. package/dist/builtins/proc.d.ts +6 -0
  86. package/dist/builtins/proc.helpers.d.ts +68 -0
  87. package/dist/builtins/proc.helpers.js +102 -0
  88. package/dist/builtins/proc.helpers.js.map +1 -0
  89. package/dist/builtins/proc.js +289 -0
  90. package/dist/builtins/proc.js.map +1 -0
  91. package/dist/builtins/res/compute.d.ts +6 -0
  92. package/dist/builtins/res/compute.js +55 -0
  93. package/dist/builtins/res/compute.js.map +1 -0
  94. package/dist/builtins/res/feed.d.ts +6 -0
  95. package/dist/builtins/res/feed.js +244 -0
  96. package/dist/builtins/res/feed.js.map +1 -0
  97. package/dist/builtins/res/feed.notes.d.ts +28 -0
  98. package/dist/builtins/res/feed.notes.js +24 -0
  99. package/dist/builtins/res/feed.notes.js.map +1 -0
  100. package/dist/builtins/res/files.d.ts +18 -0
  101. package/dist/builtins/res/files.js +85 -0
  102. package/dist/builtins/res/files.js.map +1 -0
  103. package/dist/builtins/res/group.d.ts +6 -0
  104. package/dist/builtins/res/group.js +54 -0
  105. package/dist/builtins/res/group.js.map +1 -0
  106. package/dist/builtins/res/pipeline.args.d.ts +22 -0
  107. package/dist/builtins/res/pipeline.args.js +28 -0
  108. package/dist/builtins/res/pipeline.args.js.map +1 -0
  109. package/dist/builtins/res/pipeline.d.ts +20 -0
  110. package/dist/builtins/res/pipeline.js +252 -0
  111. package/dist/builtins/res/pipeline.js.map +1 -0
  112. package/dist/builtins/res/plugin.d.ts +13 -0
  113. package/dist/builtins/res/plugin.js +140 -0
  114. package/dist/builtins/res/plugin.js.map +1 -0
  115. package/dist/builtins/res/plugininstance.d.ts +6 -0
  116. package/dist/builtins/res/plugininstance.js +53 -0
  117. package/dist/builtins/res/plugininstance.js.map +1 -0
  118. package/dist/builtins/res/pluginmeta.d.ts +6 -0
  119. package/dist/builtins/res/pluginmeta.js +53 -0
  120. package/dist/builtins/res/pluginmeta.js.map +1 -0
  121. package/dist/builtins/res/tag.d.ts +6 -0
  122. package/dist/builtins/res/tag.js +53 -0
  123. package/dist/builtins/res/tag.js.map +1 -0
  124. package/dist/builtins/res/workflow.d.ts +6 -0
  125. package/dist/builtins/res/workflow.js +53 -0
  126. package/dist/builtins/res/workflow.js.map +1 -0
  127. package/dist/builtins/store.d.ts +6 -0
  128. package/dist/builtins/store.js +107 -0
  129. package/dist/builtins/store.js.map +1 -0
  130. package/dist/builtins/sys/context.d.ts +6 -0
  131. package/dist/builtins/sys/context.js +50 -0
  132. package/dist/builtins/sys/context.js.map +1 -0
  133. package/dist/builtins/sys/physicalmode.d.ts +8 -0
  134. package/dist/builtins/sys/physicalmode.js +34 -0
  135. package/dist/builtins/sys/physicalmode.js.map +1 -0
  136. package/dist/builtins/sys/timing.d.ts +8 -0
  137. package/dist/builtins/sys/timing.js +34 -0
  138. package/dist/builtins/sys/timing.js.map +1 -0
  139. package/dist/builtins/sys/version.d.ts +15 -0
  140. package/dist/builtins/sys/version.js +23 -0
  141. package/dist/builtins/sys/version.js.map +1 -0
  142. package/dist/builtins/sys/whoami.d.ts +17 -0
  143. package/dist/builtins/sys/whoami.js +44 -0
  144. package/dist/builtins/sys/whoami.js.map +1 -0
  145. package/dist/builtins/utils.d.ts +55 -0
  146. package/dist/builtins/utils.js +145 -0
  147. package/dist/builtins/utils.js.map +1 -0
  148. package/dist/builtins/wildcard.d.ts +26 -0
  149. package/dist/builtins/wildcard.js +120 -0
  150. package/dist/builtins/wildcard.js.map +1 -0
  151. package/dist/command-keys.d.ts +8 -0
  152. package/dist/command-keys.js +32 -0
  153. package/dist/command-keys.js.map +1 -0
  154. package/dist/config/storeConfig.d.ts +57 -0
  155. package/dist/config/storeConfig.js +78 -0
  156. package/dist/config/storeConfig.js.map +1 -0
  157. package/dist/core/chiliDelegate.d.ts +21 -0
  158. package/dist/core/chiliDelegate.js +32 -0
  159. package/dist/core/chiliDelegate.js.map +1 -0
  160. package/dist/core/connect.d.ts +38 -0
  161. package/dist/core/connect.js +46 -0
  162. package/dist/core/connect.js.map +1 -0
  163. package/dist/core/dispatch.d.ts +95 -0
  164. package/dist/core/dispatch.js +618 -0
  165. package/dist/core/dispatch.js.map +1 -0
  166. package/dist/core/engine.d.ts +91 -0
  167. package/dist/core/engine.js +222 -0
  168. package/dist/core/engine.js.map +1 -0
  169. package/dist/core/preprocess.d.ts +46 -0
  170. package/dist/core/preprocess.js +146 -0
  171. package/dist/core/preprocess.js.map +1 -0
  172. package/dist/core/progress.d.ts +50 -0
  173. package/dist/core/progress.js +21 -0
  174. package/dist/core/progress.js.map +1 -0
  175. package/dist/core/promptContext.d.ts +49 -0
  176. package/dist/core/promptContext.js +39 -0
  177. package/dist/core/promptContext.js.map +1 -0
  178. package/dist/core/question.d.ts +27 -0
  179. package/dist/core/question.js +33 -0
  180. package/dist/core/question.js.map +1 -0
  181. package/dist/core/sink.d.ts +207 -0
  182. package/dist/core/sink.js +329 -0
  183. package/dist/core/sink.js.map +1 -0
  184. package/dist/core/surface.d.ts +172 -0
  185. package/dist/core/surface.js +105 -0
  186. package/dist/core/surface.js.map +1 -0
  187. package/dist/core/version.d.ts +20 -0
  188. package/dist/core/version.js +82 -0
  189. package/dist/core/version.js.map +1 -0
  190. package/dist/index.d.ts +31 -0
  191. package/dist/index.js +32 -0
  192. package/dist/index.js.map +1 -0
  193. package/dist/lib/completer/index.d.ts +15 -0
  194. package/dist/lib/completer/index.js +212 -0
  195. package/dist/lib/completer/index.js.map +1 -0
  196. package/dist/lib/completer/pathComplete.helpers.d.ts +22 -0
  197. package/dist/lib/completer/pathComplete.helpers.js +49 -0
  198. package/dist/lib/completer/pathComplete.helpers.js.map +1 -0
  199. package/dist/lib/parser.d.ts +13 -0
  200. package/dist/lib/parser.js +52 -0
  201. package/dist/lib/parser.js.map +1 -0
  202. package/dist/lib/pipe.d.ts +11 -0
  203. package/dist/lib/pipe.js +90 -0
  204. package/dist/lib/pipe.js.map +1 -0
  205. package/dist/lib/prefetch.d.ts +25 -0
  206. package/dist/lib/prefetch.js +64 -0
  207. package/dist/lib/prefetch.js.map +1 -0
  208. package/dist/lib/semicolonParser.d.ts +22 -0
  209. package/dist/lib/semicolonParser.js +53 -0
  210. package/dist/lib/semicolonParser.js.map +1 -0
  211. package/dist/lib/spinner.d.ts +23 -0
  212. package/dist/lib/spinner.js +71 -0
  213. package/dist/lib/spinner.js.map +1 -0
  214. package/dist/lib/vfs/providers/static.d.ts +65 -0
  215. package/dist/lib/vfs/providers/static.js +164 -0
  216. package/dist/lib/vfs/providers/static.js.map +1 -0
  217. package/dist/lib/vfs/providers/static_content.d.ts +27 -0
  218. package/dist/lib/vfs/providers/static_content.js +180 -0
  219. package/dist/lib/vfs/providers/static_content.js.map +1 -0
  220. package/dist/lib/vfs/vfs.d.ts +59 -0
  221. package/dist/lib/vfs/vfs.js +202 -0
  222. package/dist/lib/vfs/vfs.js.map +1 -0
  223. package/dist/session/index.d.ts +76 -0
  224. package/dist/session/index.js +120 -0
  225. package/dist/session/index.js.map +1 -0
  226. package/package.json +58 -0
@@ -0,0 +1,140 @@
1
+ /**
2
+ * @file Builtin plugin/plugins command.
3
+ *
4
+ * Handles plugin management in chell. Subcommands:
5
+ * - `list` — fetch and render the plugin collection via chili
6
+ * - `run` — execute a plugin instance by searchable name/id
7
+ * - `add` — register a new plugin into CUBE (interactive, with spinner)
8
+ *
9
+ * Unknown subcommands fall through to a spawned chili process.
10
+ * `plugin` and `plugins` are both registered as aliases in COMMAND_HANDLERS.
11
+ *
12
+ * @module
13
+ */
14
+ import chalk from 'chalk';
15
+ import { commandArgs_process } from '../utils.js';
16
+ import { plugins_fetchList } from '@fnndsc/chili/commands/plugins/list.js';
17
+ import { pluginFields_fetch } from '@fnndsc/chili/commands/plugins/fields.js';
18
+ import { plugin_execute } from '@fnndsc/chili/commands/plugin/run.js';
19
+ import { plugin_add } from '@fnndsc/chili/commands/plugins/add.js';
20
+ import { pluginList_render, pluginRun_render } from '@fnndsc/chili/views/plugin.js';
21
+ import { table_display } from '@fnndsc/chili/screen/screen.js';
22
+ import { chiliCommand_run } from '../../core/chiliDelegate.js';
23
+ import { spinner } from '../../lib/spinner.js';
24
+ import { errorStack } from '@fnndsc/cumin';
25
+ import { adminPrompt_register } from '@fnndsc/chili/utils/admin_prompt.js';
26
+ import { repl_question, repl_questionHidden } from '../../core/question.js';
27
+ /**
28
+ * Handles plugin commands.
29
+ *
30
+ * @param args - command arguments.
31
+ */
32
+ export async function builtin_plugin(args) {
33
+ const parsed = commandArgs_process(args);
34
+ const subcommand = parsed._[0];
35
+ if (!subcommand) {
36
+ console.log(chalk.red("Usage: plugin <list|run|add> ..."));
37
+ return;
38
+ }
39
+ try {
40
+ if (subcommand === 'list') {
41
+ const { plugins, selectedFields, totalCount } = await plugins_fetchList(parsed);
42
+ console.log(pluginList_render(plugins, selectedFields, { table: !!parsed.table, csv: !!parsed.csv }));
43
+ if (totalCount !== undefined && plugins.length < totalCount) {
44
+ console.log(chalk.dim(` ↓ showing ${plugins.length} of ${totalCount} · --all to fetch all · --limit <n> for page size`));
45
+ }
46
+ }
47
+ else if (subcommand === 'run') {
48
+ const searchable = parsed._[1];
49
+ if (!searchable) {
50
+ console.log(chalk.red("Usage: plugin run <plugin> [args...]"));
51
+ return;
52
+ }
53
+ const params = args.slice(2).join(' ');
54
+ const instance = await plugin_execute(searchable, params);
55
+ if (instance) {
56
+ console.log(pluginRun_render(instance));
57
+ }
58
+ else {
59
+ console.error(chalk.red("Plugin execution failed."));
60
+ }
61
+ }
62
+ else if (subcommand === 'add') {
63
+ await plugin_addInteractive(parsed);
64
+ }
65
+ else if (subcommand === 'inspect') {
66
+ const fields = await pluginFields_fetch();
67
+ if (fields && fields.length > 0) {
68
+ table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Plugin fields', justification: 'center' } });
69
+ }
70
+ else {
71
+ console.log(chalk.gray('No fields found.'));
72
+ }
73
+ }
74
+ else if (subcommand === 'search') {
75
+ const query = parsed._[1] ?? '';
76
+ await builtin_plugin(['list', `--search`, query]);
77
+ }
78
+ else {
79
+ console.log(chalk.yellow('Directive not handled by chell... spawning chili directly'));
80
+ await chiliCommand_run('plugins', ['-s', ...args]);
81
+ }
82
+ }
83
+ catch (e) {
84
+ const msg = e instanceof Error ? e.message : String(e);
85
+ console.error(chalk.red(`Plugin error: ${msg}`));
86
+ }
87
+ }
88
+ /**
89
+ * Interactive plugin add command with spinner and colored output.
90
+ *
91
+ * @param parsed - Parsed command arguments.
92
+ */
93
+ export async function plugin_addInteractive(parsed) {
94
+ const pluginInput = parsed._[1];
95
+ if (!pluginInput) {
96
+ console.log(chalk.red('Usage: plugin add <name|image|url> [--compute <resources>] [--store <url>]'));
97
+ return;
98
+ }
99
+ const options = {
100
+ compute: parsed.compute,
101
+ store: parsed.store,
102
+ adminUser: parsed.adminUser,
103
+ adminPassword: parsed.adminPassword,
104
+ public_repo: parsed.publicRepo,
105
+ };
106
+ errorStack.stack_clear();
107
+ adminPrompt_register(repl_question, repl_questionHidden);
108
+ console.log(chalk.cyan(`\nAdding plugin: ${pluginInput}\n`));
109
+ const outcome = await plugin_add(pluginInput, options);
110
+ spinner.stop();
111
+ if (outcome === 'installed') {
112
+ console.log(chalk.green('\n[SUCCESS] Plugin added successfully!\n'));
113
+ }
114
+ else if (outcome === 'already_exists') {
115
+ console.log(chalk.yellow(`\n[INFO] '${pluginInput}' is already registered in this CUBE.\n`));
116
+ }
117
+ else {
118
+ process.exitCode = 1;
119
+ console.log(chalk.red('\n[FAILED] Failed to add plugin.\n'));
120
+ const errors = errorStack.allOfType_get('error');
121
+ if (errors.length > 0) {
122
+ console.log(chalk.red('Errors:'));
123
+ errors.forEach((error) => {
124
+ const cleanError = error.replace(/^\[.*?\]\s+\|\s+/, '');
125
+ console.log(chalk.red(` - ${cleanError}`));
126
+ });
127
+ console.log('');
128
+ }
129
+ const warnings = errorStack.allOfType_get('warning');
130
+ if (warnings.length > 0) {
131
+ console.log(chalk.yellow('Warnings:'));
132
+ warnings.forEach((warning) => {
133
+ const cleanWarning = warning.replace(/^\[.*?\]\s+\|\s+/, '');
134
+ console.log(chalk.yellow(` [WARNING] ${cleanWarning}`));
135
+ });
136
+ console.log('');
137
+ }
138
+ }
139
+ }
140
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/builtins/res/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Builtin handler for the `plugininstance` command.
3
+ *
4
+ * @param args - Parsed command arguments for the plugin-instance command.
5
+ */
6
+ export declare function builtin_plugininstance(args: string[]): Promise<void>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @file Builtin plugininstance command.
3
+ *
4
+ * Subcommands: list, search, inspect
5
+ * Aliases: plugininstance / plugininstances / instance / instances / job / jobs
6
+ */
7
+ import chalk from 'chalk';
8
+ import { commandArgs_process } from '../utils.js';
9
+ import { pluginInstances_fetchList } from '@fnndsc/chili/commands/plugininstances/list.js';
10
+ import { pluginInstanceFields_fetch } from '@fnndsc/chili/commands/plugininstances/fields.js';
11
+ import { table_display } from '@fnndsc/chili/screen/screen.js';
12
+ /**
13
+ * Builtin handler for the `plugininstance` command.
14
+ *
15
+ * @param args - Parsed command arguments for the plugin-instance command.
16
+ */
17
+ export async function builtin_plugininstance(args) {
18
+ const parsed = commandArgs_process(args);
19
+ const subcommand = parsed._[0];
20
+ if (!subcommand || subcommand === 'list') {
21
+ try {
22
+ const { pluginInstances, selectedFields, totalCount } = await pluginInstances_fetchList(parsed);
23
+ if (pluginInstances.length === 0) {
24
+ console.log(chalk.gray('No plugin instances found.'));
25
+ return;
26
+ }
27
+ table_display(pluginInstances, selectedFields, { title: { title: 'Plugin Instances', justification: 'center' }, pagination: totalCount !== undefined ? { shown: pluginInstances.length, total: totalCount } : undefined });
28
+ }
29
+ catch (e) {
30
+ process.exitCode = 1;
31
+ console.error(chalk.red(`plugininstance error: ${e instanceof Error ? e.message : String(e)}`));
32
+ }
33
+ return;
34
+ }
35
+ if (subcommand === 'search') {
36
+ const query = parsed._[1] ?? '';
37
+ await builtin_plugininstance([...args.filter((a) => a !== subcommand), `--search`, query]);
38
+ return;
39
+ }
40
+ if (subcommand === 'inspect') {
41
+ const fields = await pluginInstanceFields_fetch();
42
+ if (fields && fields.length > 0) {
43
+ table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Plugin Instance fields', justification: 'center' } });
44
+ }
45
+ else {
46
+ console.log(chalk.gray('No fields found for plugin instances.'));
47
+ }
48
+ return;
49
+ }
50
+ process.exitCode = 1;
51
+ console.log(chalk.red(`Unknown subcommand: ${subcommand}. Usage: plugininstances <list|search|inspect>`));
52
+ }
53
+ //# sourceMappingURL=plugininstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugininstance.js","sourceRoot":"","sources":["../../../src/builtins/res/plugininstance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAA4B,MAAM,gDAAgD,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D;;;;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,MAA+B,CAAC,CAAC;YACnJ,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACpG,aAAa,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;QAC7N,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClG,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,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACnG,OAAO;IACT,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,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,wBAAwB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/I,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,UAAU,gDAAgD,CAAC,CAAC,CAAC;AAC5G,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Builtin handler for the `pluginmeta` command.
3
+ *
4
+ * @param args - Parsed command arguments for the plugin-meta command.
5
+ */
6
+ export declare function builtin_pluginmeta(args: string[]): Promise<void>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @file Builtin pluginmeta command.
3
+ *
4
+ * Subcommands: list, search, inspect
5
+ * Aliases: pluginmeta / pluginmetas / meta / metas
6
+ */
7
+ import chalk from 'chalk';
8
+ import { commandArgs_process } from '../utils.js';
9
+ import { pluginMetas_fetchList } from '@fnndsc/chili/commands/pluginmetas/list.js';
10
+ import { pluginMetaFields_fetch } from '@fnndsc/chili/commands/pluginmetas/fields.js';
11
+ import { table_display } from '@fnndsc/chili/screen/screen.js';
12
+ /**
13
+ * Builtin handler for the `pluginmeta` command.
14
+ *
15
+ * @param args - Parsed command arguments for the plugin-meta command.
16
+ */
17
+ export async function builtin_pluginmeta(args) {
18
+ const parsed = commandArgs_process(args);
19
+ const subcommand = parsed._[0];
20
+ if (!subcommand || subcommand === 'list') {
21
+ try {
22
+ const { pluginMetas, selectedFields, totalCount } = await pluginMetas_fetchList(parsed);
23
+ if (pluginMetas.length === 0) {
24
+ console.log(chalk.gray('No plugin metas found.'));
25
+ return;
26
+ }
27
+ table_display(pluginMetas, selectedFields, { title: { title: 'Plugin Metas', justification: 'center' }, pagination: totalCount !== undefined ? { shown: pluginMetas.length, total: totalCount } : undefined });
28
+ }
29
+ catch (e) {
30
+ process.exitCode = 1;
31
+ console.error(chalk.red(`pluginmeta error: ${e instanceof Error ? e.message : String(e)}`));
32
+ }
33
+ return;
34
+ }
35
+ if (subcommand === 'search') {
36
+ const query = parsed._[1] ?? '';
37
+ await builtin_pluginmeta([...args.filter((a) => a !== subcommand), `--search`, query]);
38
+ return;
39
+ }
40
+ if (subcommand === 'inspect') {
41
+ const fields = await pluginMetaFields_fetch();
42
+ if (fields && fields.length > 0) {
43
+ table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Plugin Meta fields', justification: 'center' } });
44
+ }
45
+ else {
46
+ console.log(chalk.gray('No fields found for plugin metas.'));
47
+ }
48
+ return;
49
+ }
50
+ process.exitCode = 1;
51
+ console.log(chalk.red(`Unknown subcommand: ${subcommand}. Usage: pluginmetas <list|search|inspect>`));
52
+ }
53
+ //# sourceMappingURL=pluginmeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluginmeta.js","sourceRoot":"","sources":["../../../src/builtins/res/pluginmeta.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAwB,MAAM,4CAA4C,CAAC;AACzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAc;IACrD,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,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,GAAyB,MAAM,qBAAqB,CAAC,MAA+B,CAAC,CAAC;YACvI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC5F,aAAa,CAAC,WAAW,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACjN,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9F,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,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/F,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAoB,MAAM,sBAAsB,EAAE,CAAC;QAC/D,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,oBAAoB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3I,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,UAAU,4CAA4C,CAAC,CAAC,CAAC;AACxG,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Builtin handler for the `tag` command.
3
+ *
4
+ * @param args - Parsed command arguments for the tag command.
5
+ */
6
+ export declare function builtin_tag(args: string[]): Promise<void>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @file Builtin tag command.
3
+ *
4
+ * Subcommands: list, search, inspect
5
+ * Singular/plural aliases: tag / tags
6
+ */
7
+ import chalk from 'chalk';
8
+ import { commandArgs_process } from '../utils.js';
9
+ import { tags_fetchList } from '@fnndsc/chili/commands/tags/list.js';
10
+ import { tagFields_fetch } from '@fnndsc/chili/commands/tags/fields.js';
11
+ import { table_display } from '@fnndsc/chili/screen/screen.js';
12
+ /**
13
+ * Builtin handler for the `tag` command.
14
+ *
15
+ * @param args - Parsed command arguments for the tag command.
16
+ */
17
+ export async function builtin_tag(args) {
18
+ const parsed = commandArgs_process(args);
19
+ const subcommand = parsed._[0];
20
+ if (!subcommand || subcommand === 'list') {
21
+ try {
22
+ const { tags, selectedFields, totalCount } = await tags_fetchList(parsed);
23
+ if (tags.length === 0) {
24
+ console.log(chalk.gray('No tags found.'));
25
+ return;
26
+ }
27
+ table_display(tags, selectedFields, { title: { title: 'Tags', justification: 'center' }, pagination: totalCount !== undefined ? { shown: tags.length, total: totalCount } : undefined });
28
+ }
29
+ catch (e) {
30
+ process.exitCode = 1;
31
+ console.error(chalk.red(`tag error: ${e instanceof Error ? e.message : String(e)}`));
32
+ }
33
+ return;
34
+ }
35
+ if (subcommand === 'search') {
36
+ const query = parsed._[1] ?? '';
37
+ await builtin_tag([...args.filter((a) => a !== subcommand), `--search`, query]);
38
+ return;
39
+ }
40
+ if (subcommand === 'inspect') {
41
+ const fields = await tagFields_fetch();
42
+ if (fields && fields.length > 0) {
43
+ table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Tag fields', justification: 'center' } });
44
+ }
45
+ else {
46
+ console.log(chalk.gray('No fields found for tags.'));
47
+ }
48
+ return;
49
+ }
50
+ process.exitCode = 1;
51
+ console.log(chalk.red(`Unknown subcommand: ${subcommand}. Usage: tags <list|search|inspect>`));
52
+ }
53
+ //# sourceMappingURL=tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../../src/builtins/res/tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAiB,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,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,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,GAAkB,MAAM,cAAc,CAAC,MAA+B,CAAC,CAAC;YAClH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAC7E,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3L,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvF,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,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAoB,MAAM,eAAe,EAAE,CAAC;QACxD,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,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnI,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,UAAU,qCAAqC,CAAC,CAAC,CAAC;AACjG,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Builtin handler for the `workflow` command.
3
+ *
4
+ * @param args - Parsed command arguments for the workflow command.
5
+ */
6
+ export declare function builtin_workflow(args: string[]): Promise<void>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @file Builtin workflow command.
3
+ *
4
+ * Subcommands: list, search, inspect
5
+ * Aliases: workflow / workflows
6
+ */
7
+ import chalk from 'chalk';
8
+ import { commandArgs_process } from '../utils.js';
9
+ import { workflows_fetchList } from '@fnndsc/chili/commands/workflows/list.js';
10
+ import { workflowFields_fetch } from '@fnndsc/chili/commands/workflows/fields.js';
11
+ import { table_display } from '@fnndsc/chili/screen/screen.js';
12
+ /**
13
+ * Builtin handler for the `workflow` command.
14
+ *
15
+ * @param args - Parsed command arguments for the workflow command.
16
+ */
17
+ export async function builtin_workflow(args) {
18
+ const parsed = commandArgs_process(args);
19
+ const subcommand = parsed._[0];
20
+ if (!subcommand || subcommand === 'list') {
21
+ try {
22
+ const { workflows, selectedFields, totalCount } = await workflows_fetchList(parsed);
23
+ if (workflows.length === 0) {
24
+ console.log(chalk.gray('No workflows found.'));
25
+ return;
26
+ }
27
+ table_display(workflows, selectedFields, { title: { title: 'Workflows', justification: 'center' }, pagination: totalCount !== undefined ? { shown: workflows.length, total: totalCount } : undefined });
28
+ }
29
+ catch (e) {
30
+ process.exitCode = 1;
31
+ console.error(chalk.red(`workflow error: ${e instanceof Error ? e.message : String(e)}`));
32
+ }
33
+ return;
34
+ }
35
+ if (subcommand === 'search') {
36
+ const query = parsed._[1] ?? '';
37
+ await builtin_workflow([...args.filter((a) => a !== subcommand), `--search`, query]);
38
+ return;
39
+ }
40
+ if (subcommand === 'inspect') {
41
+ const fields = await workflowFields_fetch();
42
+ if (fields && fields.length > 0) {
43
+ table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Workflow fields', justification: 'center' } });
44
+ }
45
+ else {
46
+ console.log(chalk.gray('No fields found for workflows.'));
47
+ }
48
+ return;
49
+ }
50
+ process.exitCode = 1;
51
+ console.log(chalk.red(`Unknown subcommand: ${subcommand}. Usage: workflows <list|search|inspect>`));
52
+ }
53
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../../src/builtins/res/workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAsB,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAc;IACnD,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,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,GAAuB,MAAM,mBAAmB,CAAC,MAA+B,CAAC,CAAC;YACjI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACvF,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1M,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5F,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,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7F,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAoB,MAAM,oBAAoB,EAAE,CAAC;QAC7D,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,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxI,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,UAAU,0CAA0C,CAAC,CAAC,CAAC;AACtG,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Handles store commands.
3
+ *
4
+ * @param args - command arguments.
5
+ */
6
+ export declare function builtin_store(args: string[]): Promise<void>;
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @file Builtin store command.
3
+ * Manages peer store interactions (list, search, install).
4
+ */
5
+ import chalk from 'chalk';
6
+ import { commandArgs_process } from './utils.js';
7
+ import { store_listPlugins, store_searchPlugins } from '@fnndsc/chili/commands/store/list.js';
8
+ import { grid_render, long_render } from '@fnndsc/chili/views/ls.js';
9
+ import { spinner } from '../lib/spinner.js';
10
+ import { plugin_addInteractive } from './res/plugin.js';
11
+ import { DEFAULT_STORE_URL, storeUrl_get, storeUrl_isDefault, storeUrl_set, storeUrl_clear, storeConfig_persist, } from '../config/storeConfig.js';
12
+ /**
13
+ * Handles store commands.
14
+ *
15
+ * @param args - command arguments.
16
+ */
17
+ export async function builtin_store(args) {
18
+ const parsed = commandArgs_process(args);
19
+ const subcommand = parsed._[0];
20
+ if (!subcommand) {
21
+ console.log(chalk.red("Usage: store <list|search|install> ..."));
22
+ return;
23
+ }
24
+ const storeOptions = {
25
+ store: parsed.store
26
+ };
27
+ try {
28
+ spinner.start('Fetching from store...');
29
+ if (subcommand === 'list') {
30
+ const items = await store_listPlugins(storeOptions);
31
+ spinner.stop();
32
+ if (items.length === 0) {
33
+ console.log('No plugins found in store.');
34
+ return;
35
+ }
36
+ // Use grid render by default, or long render if -l flag (handled by view options in future,
37
+ // but currently ls view helpers accept options).
38
+ // chell's ls uses args to parse flags. Here we have parsed args.
39
+ // parsed.l is boolean.
40
+ if (parsed.l) {
41
+ console.log(long_render(items, { human: !!parsed.h }));
42
+ }
43
+ else {
44
+ console.log(grid_render(items));
45
+ }
46
+ }
47
+ else if (subcommand === 'search') {
48
+ const query = parsed._[1];
49
+ if (!query) {
50
+ spinner.stop();
51
+ console.log(chalk.red("Usage: store search <query>"));
52
+ return;
53
+ }
54
+ const items = await store_searchPlugins(query, storeOptions);
55
+ spinner.stop();
56
+ if (items.length === 0) {
57
+ console.log(`No plugins found matching '${query}'.`);
58
+ return;
59
+ }
60
+ if (parsed.l) {
61
+ console.log(long_render(items, { human: !!parsed.h }));
62
+ }
63
+ else {
64
+ console.log(grid_render(items));
65
+ }
66
+ }
67
+ else if (subcommand === 'install') {
68
+ spinner.stop();
69
+ const installParsed = { ...parsed, _: [parsed._[0], parsed._[1]] };
70
+ await plugin_addInteractive(installParsed);
71
+ }
72
+ else if (subcommand === 'inspect') {
73
+ spinner.stop();
74
+ const current = storeUrl_get();
75
+ const isDefault = storeUrl_isDefault();
76
+ console.log(`${chalk.bold('Peer store URL:')} ${chalk.blue(current)}${isDefault ? chalk.gray(' (default)') : chalk.yellow(' (custom)')}`);
77
+ }
78
+ else if (subcommand === 'set') {
79
+ spinner.stop();
80
+ const url = parsed._[1];
81
+ if (!url) {
82
+ console.log(chalk.red('Usage: store set <url>'));
83
+ process.exitCode = 1;
84
+ return;
85
+ }
86
+ storeUrl_set(url);
87
+ await storeConfig_persist();
88
+ console.log(chalk.green(`Store URL set to: ${chalk.blue(url)}`));
89
+ }
90
+ else if (subcommand === 'reset') {
91
+ spinner.stop();
92
+ storeUrl_clear();
93
+ await storeConfig_persist();
94
+ console.log(chalk.green(`Store URL reset to default: ${chalk.blue(DEFAULT_STORE_URL)}`));
95
+ }
96
+ else {
97
+ spinner.stop();
98
+ console.log(chalk.red(`Unknown subcommand: ${subcommand}. Usage: store <list|search|install|inspect|set|reset>`));
99
+ }
100
+ }
101
+ catch (e) {
102
+ spinner.stop();
103
+ const msg = e instanceof Error ? e.message : String(e);
104
+ console.error(chalk.red(`Store error: ${msg}`));
105
+ }
106
+ }
107
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/builtins/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Displays the current ChRIS context.
3
+ *
4
+ * @param args - Command line arguments (optional flags).
5
+ */
6
+ export declare function builtin_context(args: string[]): Promise<void>;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @file Builtin context command.
3
+ * Displays the current session context.
4
+ */
5
+ import chalk from 'chalk';
6
+ import { context_getSingle } from '@fnndsc/salsa';
7
+ import { session } from '../../session/index.js';
8
+ import { table_display } from '@fnndsc/chili/screen/screen.js';
9
+ /**
10
+ * Displays the current ChRIS context.
11
+ *
12
+ * @param args - Command line arguments (optional flags).
13
+ */
14
+ export async function builtin_context(args) {
15
+ const context = await context_getSingle();
16
+ const tableData = [
17
+ {
18
+ Context: 'ChRIS User',
19
+ Value: context.user || chalk.gray('Not set'),
20
+ },
21
+ {
22
+ Context: 'ChRIS URL',
23
+ Value: context.URL || chalk.gray('Not set'),
24
+ },
25
+ {
26
+ Context: 'ChRIS Folder',
27
+ Value: context.folder || chalk.gray('Not set'),
28
+ },
29
+ {
30
+ Context: 'ChRIS Feed',
31
+ Value: context.feed || chalk.gray('Not set'),
32
+ },
33
+ {
34
+ Context: 'ChRIS Plugin',
35
+ Value: context.plugin || chalk.gray('Not set'),
36
+ },
37
+ {
38
+ Context: 'PACS Server',
39
+ Value: context.pacsserver || chalk.gray('Not set'),
40
+ },
41
+ {
42
+ Context: 'Physical Mode',
43
+ Value: session.physicalMode_get() ? chalk.magenta('Enabled') : chalk.gray('Disabled'),
44
+ },
45
+ ];
46
+ table_display(tableData, ['Context', 'Value'], {
47
+ title: { title: 'ChRIS Context', justification: 'center' },
48
+ });
49
+ }
50
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/builtins/sys/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAU/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAc;IAClD,MAAM,OAAO,GAAkB,MAAM,iBAAiB,EAAE,CAAC;IAEzD,MAAM,SAAS,GAAiB;QAC9B;YACE,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SAC7C;QACD;YACE,OAAO,EAAE,WAAW;YACpB,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SAC5C;QACD;YACE,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SAC/C;QACD;YACE,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SAC7C;QACD;YACE,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SAC/C;QACD;YACE,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;SACnD;QACD;YACE,OAAO,EAAE,eAAe;YACxB,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;SACtF;KACF,CAAC;IAEF,aAAa,CACX,SAAS,EACT,CAAC,SAAS,EAAE,OAAO,CAAC,EACpB;QACE,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE;KAC3D,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { CommandEnvelope } from '@fnndsc/cumin';
2
+ /**
3
+ * Toggles or displays physical filesystem mode.
4
+ *
5
+ * @param args - Command line arguments: 'on', 'off', or empty to display status.
6
+ * @returns An envelope describing the (possibly updated) physical mode state.
7
+ */
8
+ export declare function builtin_physicalmode(args: string[]): Promise<CommandEnvelope>;