@fnndsc/brasa 0.56.2 → 0.56.3

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 (322) hide show
  1. package/dist/buildinfo.json +1 -1
  2. package/dist/builtins/berth/berthCube.d.ts +3 -2
  3. package/dist/builtins/berth/berthCube.js +5 -10
  4. package/dist/builtins/berth/berthCube.js.map +1 -1
  5. package/dist/builtins/debug.d.ts +24 -3
  6. package/dist/builtins/debug.js +66 -13
  7. package/dist/builtins/debug.js.map +1 -1
  8. package/dist/builtins/fs/acl.args.d.ts +5 -38
  9. package/dist/builtins/fs/acl.args.js +6 -72
  10. package/dist/builtins/fs/acl.args.js.map +1 -1
  11. package/dist/builtins/fs/acl.d.ts +100 -10
  12. package/dist/builtins/fs/acl.js +222 -68
  13. package/dist/builtins/fs/acl.js.map +1 -1
  14. package/dist/builtins/fs/cat.args.d.ts +14 -15
  15. package/dist/builtins/fs/cat.args.js +13 -40
  16. package/dist/builtins/fs/cat.args.js.map +1 -1
  17. package/dist/builtins/fs/cat.d.ts +40 -3
  18. package/dist/builtins/fs/cat.js +89 -10
  19. package/dist/builtins/fs/cat.js.map +1 -1
  20. package/dist/builtins/fs/cd.d.ts +24 -6
  21. package/dist/builtins/fs/cd.js +71 -18
  22. package/dist/builtins/fs/cd.js.map +1 -1
  23. package/dist/builtins/fs/configWrite.d.ts +24 -8
  24. package/dist/builtins/fs/configWrite.js +77 -36
  25. package/dist/builtins/fs/configWrite.js.map +1 -1
  26. package/dist/builtins/fs/cp.d.ts +39 -4
  27. package/dist/builtins/fs/cp.js +120 -55
  28. package/dist/builtins/fs/cp.js.map +1 -1
  29. package/dist/builtins/fs/du.d.ts +59 -33
  30. package/dist/builtins/fs/du.js +111 -79
  31. package/dist/builtins/fs/du.js.map +1 -1
  32. package/dist/builtins/fs/edit.d.ts +19 -4
  33. package/dist/builtins/fs/edit.js +77 -16
  34. package/dist/builtins/fs/edit.js.map +1 -1
  35. package/dist/builtins/fs/find.d.ts +25 -0
  36. package/dist/builtins/fs/find.js +76 -5
  37. package/dist/builtins/fs/find.js.map +1 -1
  38. package/dist/builtins/fs/mkdir.d.ts +28 -18
  39. package/dist/builtins/fs/mkdir.js +95 -66
  40. package/dist/builtins/fs/mkdir.js.map +1 -1
  41. package/dist/builtins/fs/mv.d.ts +34 -4
  42. package/dist/builtins/fs/mv.js +129 -64
  43. package/dist/builtins/fs/mv.js.map +1 -1
  44. package/dist/builtins/fs/pull.args.d.ts +56 -17
  45. package/dist/builtins/fs/pull.args.js +16 -66
  46. package/dist/builtins/fs/pull.args.js.map +1 -1
  47. package/dist/builtins/fs/pull.d.ts +62 -0
  48. package/dist/builtins/fs/pull.js +86 -22
  49. package/dist/builtins/fs/pull.js.map +1 -1
  50. package/dist/builtins/fs/pwd.d.ts +19 -5
  51. package/dist/builtins/fs/pwd.js +62 -8
  52. package/dist/builtins/fs/pwd.js.map +1 -1
  53. package/dist/builtins/fs/rm.d.ts +58 -21
  54. package/dist/builtins/fs/rm.js +99 -82
  55. package/dist/builtins/fs/rm.js.map +1 -1
  56. package/dist/builtins/fs/rmdir.d.ts +29 -11
  57. package/dist/builtins/fs/rmdir.js +87 -36
  58. package/dist/builtins/fs/rmdir.js.map +1 -1
  59. package/dist/builtins/fs/touch.d.ts +44 -9
  60. package/dist/builtins/fs/touch.js +91 -27
  61. package/dist/builtins/fs/touch.js.map +1 -1
  62. package/dist/builtins/fs/tree.d.ts +36 -9
  63. package/dist/builtins/fs/tree.js +126 -36
  64. package/dist/builtins/fs/tree.js.map +1 -1
  65. package/dist/builtins/fs/upload.d.ts +22 -3
  66. package/dist/builtins/fs/upload.js +82 -14
  67. package/dist/builtins/fs/upload.js.map +1 -1
  68. package/dist/builtins/fs/xattr.args.d.ts +12 -33
  69. package/dist/builtins/fs/xattr.args.js +17 -95
  70. package/dist/builtins/fs/xattr.args.js.map +1 -1
  71. package/dist/builtins/fs/xattr.d.ts +98 -8
  72. package/dist/builtins/fs/xattr.js +163 -24
  73. package/dist/builtins/fs/xattr.js.map +1 -1
  74. package/dist/builtins/games/bytes.d.ts +201 -5
  75. package/dist/builtins/games/bytes.js +255 -54
  76. package/dist/builtins/games/bytes.js.map +1 -1
  77. package/dist/builtins/games/chimes.d.ts +180 -3
  78. package/dist/builtins/games/chimes.js +203 -26
  79. package/dist/builtins/games/chimes.js.map +1 -1
  80. package/dist/builtins/games/chrislab.d.ts +101 -3
  81. package/dist/builtins/games/chrislab.js +117 -17
  82. package/dist/builtins/games/chrislab.js.map +1 -1
  83. package/dist/builtins/games/cowsay.d.ts +93 -2
  84. package/dist/builtins/games/cowsay.js +90 -31
  85. package/dist/builtins/games/cowsay.js.map +1 -1
  86. package/dist/builtins/games/figlet.d.ts +70 -2
  87. package/dist/builtins/games/figlet.js +83 -6
  88. package/dist/builtins/games/figlet.js.map +1 -1
  89. package/dist/builtins/games/lab.d.ts +104 -5
  90. package/dist/builtins/games/lab.js +144 -6
  91. package/dist/builtins/games/lab.js.map +1 -1
  92. package/dist/builtins/games/lolcat.d.ts +61 -1
  93. package/dist/builtins/games/lolcat.js +59 -24
  94. package/dist/builtins/games/lolcat.js.map +1 -1
  95. package/dist/builtins/games/morse.d.ts +36 -1
  96. package/dist/builtins/games/morse.js +50 -2
  97. package/dist/builtins/games/morse.js.map +1 -1
  98. package/dist/builtins/games/numbers.d.ts +241 -5
  99. package/dist/builtins/games/numbers.js +298 -23
  100. package/dist/builtins/games/numbers.js.map +1 -1
  101. package/dist/builtins/games/play.d.ts +96 -6
  102. package/dist/builtins/games/play.js +137 -6
  103. package/dist/builtins/games/play.js.map +1 -1
  104. package/dist/builtins/games/qr.d.ts +40 -1
  105. package/dist/builtins/games/qr.js +51 -2
  106. package/dist/builtins/games/qr.js.map +1 -1
  107. package/dist/builtins/games/show.d.ts +131 -6
  108. package/dist/builtins/games/show.js +208 -20
  109. package/dist/builtins/games/show.js.map +1 -1
  110. package/dist/builtins/games/sky.d.ts +178 -4
  111. package/dist/builtins/games/sky.js +228 -12
  112. package/dist/builtins/games/sky.js.map +1 -1
  113. package/dist/builtins/games/text.d.ts +258 -7
  114. package/dist/builtins/games/text.js +310 -29
  115. package/dist/builtins/games/text.js.map +1 -1
  116. package/dist/builtins/games/trek.d.ts +67 -3
  117. package/dist/builtins/games/trek.js +63 -10
  118. package/dist/builtins/games/trek.js.map +1 -1
  119. package/dist/builtins/games/wtf.d.ts +58 -1
  120. package/dist/builtins/games/wtf.js +67 -6
  121. package/dist/builtins/games/wtf.js.map +1 -1
  122. package/dist/builtins/help.d.ts +38 -2
  123. package/dist/builtins/help.js +76 -769
  124. package/dist/builtins/help.js.map +1 -1
  125. package/dist/builtins/net/connect.d.ts +36 -3
  126. package/dist/builtins/net/connect.js +84 -26
  127. package/dist/builtins/net/connect.js.map +1 -1
  128. package/dist/builtins/net/cubepath.d.ts +49 -5
  129. package/dist/builtins/net/cubepath.js +69 -27
  130. package/dist/builtins/net/cubepath.js.map +1 -1
  131. package/dist/builtins/net/logout.d.ts +13 -4
  132. package/dist/builtins/net/logout.js +49 -3
  133. package/dist/builtins/net/logout.js.map +1 -1
  134. package/dist/builtins/net/netstat.d.ts +29 -4
  135. package/dist/builtins/net/netstat.js +64 -23
  136. package/dist/builtins/net/netstat.js.map +1 -1
  137. package/dist/builtins/net/pacs.d.ts +169 -15
  138. package/dist/builtins/net/pacs.js +92 -33
  139. package/dist/builtins/net/pacs.js.map +1 -1
  140. package/dist/builtins/net/query.args.d.ts +95 -0
  141. package/dist/builtins/net/query.args.js +26 -0
  142. package/dist/builtins/net/query.args.js.map +1 -0
  143. package/dist/builtins/net/query.d.ts +98 -5
  144. package/dist/builtins/net/query.js +89 -83
  145. package/dist/builtins/net/query.js.map +1 -1
  146. package/dist/builtins/net/status.d.ts +5 -3
  147. package/dist/builtins/net/status.js +5 -12
  148. package/dist/builtins/net/status.js.map +1 -1
  149. package/dist/builtins/parametersofplugin.d.ts +82 -3
  150. package/dist/builtins/parametersofplugin.js +79 -23
  151. package/dist/builtins/parametersofplugin.js.map +1 -1
  152. package/dist/builtins/proc.d.ts +210 -3
  153. package/dist/builtins/proc.js +210 -119
  154. package/dist/builtins/proc.js.map +1 -1
  155. package/dist/builtins/res/compute.d.ts +67 -3
  156. package/dist/builtins/res/compute.js +121 -35
  157. package/dist/builtins/res/compute.js.map +1 -1
  158. package/dist/builtins/res/dicom.d.ts +52 -3
  159. package/dist/builtins/res/dicom.js +82 -34
  160. package/dist/builtins/res/dicom.js.map +1 -1
  161. package/dist/builtins/res/expect.d.ts +52 -3
  162. package/dist/builtins/res/expect.js +92 -29
  163. package/dist/builtins/res/expect.js.map +1 -1
  164. package/dist/builtins/res/feed.d.ts +475 -3
  165. package/dist/builtins/res/feed.js +253 -158
  166. package/dist/builtins/res/feed.js.map +1 -1
  167. package/dist/builtins/res/files.d.ts +517 -3
  168. package/dist/builtins/res/files.js +124 -44
  169. package/dist/builtins/res/files.js.map +1 -1
  170. package/dist/builtins/res/gather.d.ts +113 -3
  171. package/dist/builtins/res/gather.js +153 -44
  172. package/dist/builtins/res/gather.js.map +1 -1
  173. package/dist/builtins/res/gather.process.d.ts +27 -19
  174. package/dist/builtins/res/gather.process.js +29 -59
  175. package/dist/builtins/res/gather.process.js.map +1 -1
  176. package/dist/builtins/res/group.d.ts +284 -3
  177. package/dist/builtins/res/group.js +147 -76
  178. package/dist/builtins/res/group.js.map +1 -1
  179. package/dist/builtins/res/image.d.ts +30 -2
  180. package/dist/builtins/res/image.js +62 -10
  181. package/dist/builtins/res/image.js.map +1 -1
  182. package/dist/builtins/res/play.d.ts +71 -9
  183. package/dist/builtins/res/play.js +124 -82
  184. package/dist/builtins/res/play.js.map +1 -1
  185. package/dist/builtins/res/plugininstance.d.ts +307 -2
  186. package/dist/builtins/res/plugininstance.js +122 -50
  187. package/dist/builtins/res/plugininstance.js.map +1 -1
  188. package/dist/builtins/res/pluginmeta.d.ts +244 -2
  189. package/dist/builtins/res/pluginmeta.js +98 -40
  190. package/dist/builtins/res/pluginmeta.js.map +1 -1
  191. package/dist/builtins/res/record.d.ts +37 -3
  192. package/dist/builtins/res/record.js +127 -57
  193. package/dist/builtins/res/record.js.map +1 -1
  194. package/dist/builtins/res/resourceList.d.ts +136 -0
  195. package/dist/builtins/res/resourceList.js +51 -0
  196. package/dist/builtins/res/resourceList.js.map +1 -0
  197. package/dist/builtins/res/tag.d.ts +244 -3
  198. package/dist/builtins/res/tag.js +97 -41
  199. package/dist/builtins/res/tag.js.map +1 -1
  200. package/dist/builtins/res/user.d.ts +122 -3
  201. package/dist/builtins/res/user.js +83 -21
  202. package/dist/builtins/res/user.js.map +1 -1
  203. package/dist/builtins/res/workflow.d.ts +244 -2
  204. package/dist/builtins/res/workflow.js +97 -40
  205. package/dist/builtins/res/workflow.js.map +1 -1
  206. package/dist/builtins/store.d.ts +85 -3
  207. package/dist/builtins/store.js +135 -68
  208. package/dist/builtins/store.js.map +1 -1
  209. package/dist/builtins/sys/apropos.d.ts +80 -5
  210. package/dist/builtins/sys/apropos.js +121 -15
  211. package/dist/builtins/sys/apropos.js.map +1 -1
  212. package/dist/builtins/sys/cal.d.ts +44 -5
  213. package/dist/builtins/sys/cal.js +57 -10
  214. package/dist/builtins/sys/cal.js.map +1 -1
  215. package/dist/builtins/sys/command.d.ts +20 -0
  216. package/dist/builtins/sys/command.js +31 -0
  217. package/dist/builtins/sys/command.js.map +1 -1
  218. package/dist/builtins/sys/context.d.ts +13 -3
  219. package/dist/builtins/sys/context.js +51 -4
  220. package/dist/builtins/sys/context.js.map +1 -1
  221. package/dist/builtins/sys/date.d.ts +56 -5
  222. package/dist/builtins/sys/date.js +63 -9
  223. package/dist/builtins/sys/date.js.map +1 -1
  224. package/dist/builtins/sys/echo.d.ts +63 -2
  225. package/dist/builtins/sys/echo.js +87 -8
  226. package/dist/builtins/sys/echo.js.map +1 -1
  227. package/dist/builtins/sys/fortune.d.ts +27 -2
  228. package/dist/builtins/sys/fortune.js +44 -2
  229. package/dist/builtins/sys/fortune.js.map +1 -1
  230. package/dist/builtins/sys/grep.d.ts +245 -11
  231. package/dist/builtins/sys/grep.js +418 -131
  232. package/dist/builtins/sys/grep.js.map +1 -1
  233. package/dist/builtins/sys/joblets.d.ts +66 -7
  234. package/dist/builtins/sys/joblets.js +101 -14
  235. package/dist/builtins/sys/joblets.js.map +1 -1
  236. package/dist/builtins/sys/motd.d.ts +37 -3
  237. package/dist/builtins/sys/motd.js +49 -8
  238. package/dist/builtins/sys/motd.js.map +1 -1
  239. package/dist/builtins/sys/notes.d.ts +75 -3
  240. package/dist/builtins/sys/notes.js +90 -29
  241. package/dist/builtins/sys/notes.js.map +1 -1
  242. package/dist/builtins/sys/physicalmode.d.ts +24 -3
  243. package/dist/builtins/sys/physicalmode.js +68 -14
  244. package/dist/builtins/sys/physicalmode.js.map +1 -1
  245. package/dist/builtins/sys/tasks.d.ts +74 -5
  246. package/dist/builtins/sys/tasks.js +102 -14
  247. package/dist/builtins/sys/tasks.js.map +1 -1
  248. package/dist/builtins/sys/textFilters.d.ts +673 -41
  249. package/dist/builtins/sys/textFilters.js +718 -263
  250. package/dist/builtins/sys/textFilters.js.map +1 -1
  251. package/dist/builtins/sys/timing.d.ts +24 -3
  252. package/dist/builtins/sys/timing.js +67 -14
  253. package/dist/builtins/sys/timing.js.map +1 -1
  254. package/dist/builtins/sys/variables.d.ts +70 -4
  255. package/dist/builtins/sys/variables.js +103 -31
  256. package/dist/builtins/sys/variables.js.map +1 -1
  257. package/dist/builtins/sys/version.d.ts +27 -2
  258. package/dist/builtins/sys/version.js +48 -3
  259. package/dist/builtins/sys/version.js.map +1 -1
  260. package/dist/builtins/sys/weather.d.ts +92 -15
  261. package/dist/builtins/sys/weather.js +71 -45
  262. package/dist/builtins/sys/weather.js.map +1 -1
  263. package/dist/builtins/sys/whoami.d.ts +38 -18
  264. package/dist/builtins/sys/whoami.js +112 -8
  265. package/dist/builtins/sys/whoami.js.map +1 -1
  266. package/dist/builtins/utils.d.ts +0 -37
  267. package/dist/builtins/utils.js +0 -86
  268. package/dist/builtins/utils.js.map +1 -1
  269. package/dist/chris/chrisCommands.js +58 -152
  270. package/dist/chris/chrisCommands.js.map +1 -1
  271. package/dist/chris/commandFallback.d.ts +12 -0
  272. package/dist/chris/commandFallback.js +47 -0
  273. package/dist/chris/commandFallback.js.map +1 -1
  274. package/dist/chris/filesystem.js +7 -5
  275. package/dist/chris/filesystem.js.map +1 -1
  276. package/dist/chris/help.js +0 -1018
  277. package/dist/chris/help.js.map +1 -1
  278. package/dist/chris/kinds.d.ts +21 -0
  279. package/dist/chris/kinds.js +114 -2
  280. package/dist/chris/kinds.js.map +1 -1
  281. package/dist/chris/mounts.d.ts +4 -4
  282. package/dist/chris/mounts.js +9 -16
  283. package/dist/chris/mounts.js.map +1 -1
  284. package/dist/chris/navigation.d.ts +2 -3
  285. package/dist/chris/navigation.js +6 -20
  286. package/dist/chris/navigation.js.map +1 -1
  287. package/dist/chris/pacsResources.d.ts +259 -0
  288. package/dist/chris/pacsResources.js +168 -0
  289. package/dist/chris/pacsResources.js.map +1 -0
  290. package/dist/core/commandDeclaration.d.ts +97 -7
  291. package/dist/core/commandDeclaration.js +21 -0
  292. package/dist/core/commandDeclaration.js.map +1 -1
  293. package/dist/core/commandParse.js +65 -17
  294. package/dist/core/commandParse.js.map +1 -1
  295. package/dist/core/commandRegistry.d.ts +4 -3
  296. package/dist/core/commandRegistry.js +36 -8
  297. package/dist/core/commandRegistry.js.map +1 -1
  298. package/dist/core/commandSchema.js +5 -2
  299. package/dist/core/commandSchema.js.map +1 -1
  300. package/dist/core/commandUsage.d.ts +15 -0
  301. package/dist/core/commandUsage.js +59 -7
  302. package/dist/core/commandUsage.js.map +1 -1
  303. package/dist/core/coreCommands.js +63 -212
  304. package/dist/core/coreCommands.js.map +1 -1
  305. package/dist/core/paths.d.ts +29 -1
  306. package/dist/core/paths.js +15 -2
  307. package/dist/core/paths.js.map +1 -1
  308. package/dist/core/preprocess.d.ts +3 -4
  309. package/dist/core/preprocess.js +4 -5
  310. package/dist/core/preprocess.js.map +1 -1
  311. package/dist/lib/completer/declared.js +7 -4
  312. package/dist/lib/completer/declared.js.map +1 -1
  313. package/dist/lib/completer/index.js +2 -7
  314. package/dist/lib/completer/index.js.map +1 -1
  315. package/dist/lib/parser.d.ts +0 -8
  316. package/dist/lib/parser.js +0 -11
  317. package/dist/lib/parser.js.map +1 -1
  318. package/dist/lib/vfs/vfs.d.ts +2 -1
  319. package/dist/lib/vfs/vfs.js +5 -4
  320. package/dist/lib/vfs/vfs.js.map +1 -1
  321. package/dist/notes.json +1 -1
  322. package/package.json +3 -3
@@ -1,9 +1,19 @@
1
1
  /**
2
- * @file Builtin feed command.
3
- * Manages feeds (list, create, inspect, note, comments).
2
+ * @file `feed` and `feeds`: CUBE's feeds, listed and searched; one feed
3
+ * created, its note and comments read and written, its DAG drawn, and the
4
+ * feed removed.
5
+ *
6
+ * Declared in one record (`feedCommand`, `feeds` among its aliases): the subcommands, their operands and options, and the listing
7
+ * options every resource command reads. A feed named on the line is the
8
+ * ChRIS argument kind `feed`, which completes the feeds the session knows.
9
+ *
10
+ * Key components:
11
+ * - feedCommand: the declaration, answered as `feed` and `feeds`.
12
+ * - builtin_feed: the declaration run over words already split.
13
+ *
14
+ * @module
4
15
  */
5
16
  import chalk from 'chalk';
6
- import { commandArgs_process, cliOptions_extract } from '../utils.js';
7
17
  import { feeds_fetchList } from '@fnndsc/chili/commands/feeds/list.js';
8
18
  import { feedFields_fetch } from '@fnndsc/chili/commands/feeds/fields.js';
9
19
  import { feed_create } from '@fnndsc/chili/commands/feed/create.js';
@@ -19,6 +29,9 @@ import { session } from '../../session/index.js';
19
29
  import { Err, Ok, errorStack } from '@fnndsc/fond';
20
30
  import { envelope_ok, envelope_error } from '@fnndsc/menu';
21
31
  import { exitCode_set } from '../../core/handlerRun.js';
32
+ import { command_declare } from '../../core/commandDeclaration.js';
33
+ import { declaredCommand_run } from '../../core/commandParse.js';
34
+ import { RESOURCE_LIST_OPTIONS_GRAMMAR, resourceListBag_build } from './resourceList.js';
22
35
  /**
23
36
  * Resolves an explicit feed specifier or, when omitted, the `feed_N` segment of
24
37
  * the current working directory.
@@ -43,35 +56,37 @@ async function feedID_resolve(specifier) {
43
56
  const resolved = await feed_resolve(specifier);
44
57
  return resolved.ok ? Ok(resolved.value.id) : Err();
45
58
  }
46
- /** Joins positional words into one feed title/search specifier. */
59
+ /**
60
+ * Joins the words naming a feed into one title or search specifier.
61
+ *
62
+ * @param words - The words, as typed.
63
+ * @returns The specifier, or undefined for none.
64
+ */
47
65
  function feedSpecifier_join(words) {
48
66
  const joined = words.join(' ').trim();
49
67
  return joined.length > 0 ? joined : undefined;
50
68
  }
51
- /** Returns a command error for a failed feed resolution. */
69
+ /**
70
+ * The error of a feed the line named and none matched.
71
+ *
72
+ * @param usage - The usage line to show beneath it.
73
+ * @returns The error envelope.
74
+ */
52
75
  function feedResolution_error(usage) {
53
76
  const problem = errorStack.stack_pop();
54
77
  exitCode_set(1);
55
78
  const detail = problem?.message ?? 'Feed not found.';
56
79
  return envelope_error('', undefined, `${chalk.red(detail)}\n${chalk.gray(usage)}\n`);
57
80
  }
58
- /** Reads the common shallow feed-tree options from parsed command arguments. */
59
- function feedTreeOptions_parse(parsed) {
60
- const focusRaw = parsed.focus;
61
- const focusID = focusRaw !== undefined ? parseInt(String(focusRaw), 10) : undefined;
62
- const maxRaw = parsed['max-nodes'];
63
- const parsedMax = maxRaw !== undefined ? parseInt(String(maxRaw), 10) : 0;
64
- return { focusID, maxNodes: isNaN(parsedMax) ? 0 : parsedMax, flat: !!parsed.flat };
65
- }
66
81
  /**
67
- * Handles `feed list`: fetches and renders the feed table.
82
+ * Lists the feeds a listing's options ask for.
68
83
  *
69
- * @param parsed - The parsed command arguments.
70
- * @returns An envelope carrying the rendered feed table.
84
+ * @param options - The bag chili's listing reads.
85
+ * @returns The feed table, with a note when it is one page of more.
71
86
  */
72
- async function feedList_handle(parsed) {
73
- const { feeds, selectedFields, totalCount } = await feeds_fetchList(cliOptions_extract(parsed));
74
- let rendered = `${feedList_render(feeds, selectedFields, { table: !!parsed.table, csv: !!parsed.csv })}\n`;
87
+ async function feedList_handle(options) {
88
+ const { feeds, selectedFields, totalCount } = await feeds_fetchList(options);
89
+ let rendered = `${feedList_render(feeds, selectedFields, { table: options.table === true, csv: options.csv === true })}\n`;
75
90
  if (totalCount !== undefined && feeds.length < totalCount) {
76
91
  rendered += `${chalk.dim(` ↓ showing ${feeds.length} of ${totalCount} · --all to fetch all · --limit <n> for page size`)}\n`;
77
92
  }
@@ -90,41 +105,21 @@ async function feedInspect_handle() {
90
105
  return envelope_ok(`${chalk.gray('No fields found.')}\n`);
91
106
  }
92
107
  /**
93
- * Edits a feed's note. The note is a file, `/proc/jobs/feed_N/note`, so this
94
- * is `edit` on that file: a terminal's editor and a browser's editor pane open
95
- * the same text and save it the same way. The title is set with `--title`.
96
- *
97
- * @param feedId - The feed whose note to edit.
98
- * @returns The edit's envelope.
99
- */
100
- async function feedNote_edit(feedId) {
101
- return builtin_edit([`/proc/jobs/feed_${feedId}/note`]);
102
- }
103
- /**
104
- * Handles `feed note ...`: interactive edit, direct update, or display.
108
+ * Handles `feed note ...`: the note shown, updated from `--title` and
109
+ * `--content`, or, with `edit`, opened in the editor. The note is a file,
110
+ * `/proc/jobs/feed_N/note`, so editing it is `edit` on that file: a
111
+ * terminal's editor and a browser's editor pane open the same text.
105
112
  *
106
- * @param parsed - The parsed command arguments.
107
- * @returns An envelope carrying the note or update outcome.
113
+ * @param request - The line.
114
+ * @returns An envelope carrying the note or the update's outcome.
108
115
  */
109
- async function feedNote_handle(parsed) {
110
- const second = String(parsed._[1] ?? '');
111
- if (second === 'edit') {
112
- const feedId = parseInt(String(parsed._[2]), 10);
113
- if (isNaN(feedId)) {
114
- return envelope_error('', undefined, `${chalk.red('Usage: feed note edit <feedId>')}\n`);
115
- }
116
- return feedNote_edit(feedId);
117
- }
118
- const feedId = parseInt(second, 10);
119
- if (isNaN(feedId)) {
120
- return envelope_error('', undefined, `${chalk.red('Usage: feed note <feedId> [--title <t>] [--content <c>] | feed note edit <feedId>')}\n`);
121
- }
122
- const hasUpdate = !!(parsed.title || parsed.content);
123
- if (hasUpdate) {
124
- const result = await feed_noteUpdate(feedId, {
125
- title: parsed.title,
126
- content: parsed.content,
127
- });
116
+ async function feedNote_handle(request) {
117
+ const feedId = request.operands.feed;
118
+ if (request.operands.edit !== undefined)
119
+ return builtin_edit([`/proc/jobs/feed_${feedId}/note`]);
120
+ const { title, content } = request.options;
121
+ if (title !== undefined || content !== undefined) {
122
+ const result = await feed_noteUpdate(feedId, { title, content });
128
123
  if (result.ok)
129
124
  return envelope_ok(`${chalk.green(`Note updated on feed ${feedId}.`)}\n`);
130
125
  exitCode_set(1);
@@ -137,54 +132,50 @@ async function feedNote_handle(parsed) {
137
132
  return envelope_error('', undefined, `${chalk.red(`Failed to get note for feed ${feedId}.`)}\n`);
138
133
  }
139
134
  /**
140
- * Handles `feed comment <add|delete|edit> ...`.
135
+ * Handles `feed comments <feed>`: every comment on a feed.
141
136
  *
142
- * @param parsed - The parsed command arguments.
143
- * @returns An envelope carrying the comment operation outcome.
137
+ * @param feedId - The feed.
138
+ * @returns The comments, or the failure.
144
139
  */
145
- async function feedComment_handle(parsed) {
146
- const op = parsed._[1] ?? '';
147
- const feedId = parseInt(String(parsed._[2]), 10);
148
- if (!op || isNaN(feedId)) {
149
- return envelope_error('', undefined, `${chalk.red('Usage: feed comment <add|delete|edit> <feedId> [commentId] [--title <t>] [--content <c>]')}\n`);
150
- }
140
+ async function feedComments_handle(feedId) {
141
+ const result = await feed_commentsList(feedId);
142
+ if (result.ok)
143
+ return envelope_ok(`${feedComments_render(result.value, feedId)}\n`);
144
+ exitCode_set(1);
145
+ return envelope_error('', undefined, `${chalk.red(`Failed to list comments for feed ${feedId}.`)}\n`);
146
+ }
147
+ /**
148
+ * Handles `feed comment <add|edit|delete> <feed> [comment]`.
149
+ *
150
+ * @param request - The line.
151
+ * @returns An envelope carrying the comment operation's outcome.
152
+ */
153
+ async function feedComment_handle(request) {
154
+ const { op, feed: feedId, comment: commentId } = request.operands;
155
+ const { title, content } = request.options;
151
156
  if (op === 'add') {
152
- const result = await feed_commentCreate(feedId, {
153
- title: parsed.title,
154
- content: parsed.content,
155
- });
157
+ const result = await feed_commentCreate(feedId, { title, content });
156
158
  if (result.ok)
157
159
  return envelope_ok(`${chalk.green(`Comment added (id: ${result.value.id}) on feed ${feedId}.`)}\n`);
158
160
  exitCode_set(1);
159
161
  return envelope_error('', undefined, `${chalk.red('Failed to add comment.')}\n`);
160
162
  }
161
- else if (op === 'delete') {
162
- const commentId = parseInt(String(parsed._[3]), 10);
163
- if (isNaN(commentId)) {
164
- return envelope_error('', undefined, `${chalk.red('Usage: feed comment delete <feedId> <commentId>')}\n`);
165
- }
163
+ if (commentId === undefined) {
164
+ exitCode_set(1);
165
+ return envelope_error('', undefined, `${chalk.red(`Usage: feed comment ${op} <feed> <comment>${op === 'edit' ? ' [--title <text>] [--content <text>]' : ''}`)}\n`);
166
+ }
167
+ if (op === 'delete') {
166
168
  const result = await feed_commentDelete(feedId, commentId);
167
169
  if (result.ok)
168
170
  return envelope_ok(`${chalk.green(`Comment ${commentId} deleted.`)}\n`);
169
171
  exitCode_set(1);
170
172
  return envelope_error('', undefined, `${chalk.red('Failed to delete comment.')}\n`);
171
173
  }
172
- else if (op === 'edit') {
173
- const commentId = parseInt(String(parsed._[3]), 10);
174
- if (isNaN(commentId)) {
175
- return envelope_error('', undefined, `${chalk.red('Usage: feed comment edit <feedId> <commentId> [--title <t>] [--content <c>]')}\n`);
176
- }
177
- const result = await feed_commentUpdate(feedId, commentId, {
178
- title: parsed.title,
179
- content: parsed.content,
180
- });
181
- if (result.ok)
182
- return envelope_ok(`${chalk.green(`Comment ${commentId} updated.`)}\n`);
183
- exitCode_set(1);
184
- return envelope_error('', undefined, `${chalk.red('Failed to update comment.')}\n`);
185
- }
174
+ const result = await feed_commentUpdate(feedId, commentId, { title, content });
175
+ if (result.ok)
176
+ return envelope_ok(`${chalk.green(`Comment ${commentId} updated.`)}\n`);
186
177
  exitCode_set(1);
187
- return envelope_error('', undefined, `${chalk.red(`Unknown comment op: ${op}. Use add, delete, or edit.`)}\n`);
178
+ return envelope_error('', undefined, `${chalk.red('Failed to update comment.')}\n`);
188
179
  }
189
180
  /**
190
181
  * Removes a feed and everything hanging off it.
@@ -194,15 +185,15 @@ async function feedComment_handle(parsed) {
194
185
  * will go. `-f` skips the question for a caller that has already asked its
195
186
  * own (a script, a surface that confirmed).
196
187
  *
197
- * @param parsed - The parsed argument tokens.
188
+ * @param words - The words naming the feed, none for the one the working directory is in.
189
+ * @param forced - Whether the question is answered already.
198
190
  * @returns An envelope naming what was removed, or why it was not.
199
191
  */
200
- async function feedRemove_handle(parsed) {
201
- const feedResult = await feedID_resolve(feedSpecifier_join(parsed._.slice(1)));
192
+ async function feedRemove_handle(words, forced) {
193
+ const feedResult = await feedID_resolve(feedSpecifier_join(words));
202
194
  if (!feedResult.ok)
203
195
  return feedResolution_error('Usage: feed rm [<feed>] [-f]');
204
196
  const feedID = feedResult.value;
205
- const forced = parsed.f === true || parsed.force === true;
206
197
  if (!forced) {
207
198
  const { repl_confirm } = await import('../../core/question.js');
208
199
  let agreed = false;
@@ -225,80 +216,137 @@ async function feedRemove_handle(parsed) {
225
216
  return envelope_ok(`removed feed ${feedID}\n`, { kind: 'feed.rm', data: { feed: feedID } });
226
217
  }
227
218
  /**
228
- * Handles feed commands.
219
+ * Handles `feed tree [<feed>]`: the feed's plugin-instance DAG, drawn.
229
220
  *
230
- * @param args - command arguments.
231
- * @returns An envelope carrying the rendered feed output.
221
+ * @param request - The line.
222
+ * @returns The tree, or the feed that could not be found.
232
223
  */
233
- export async function builtin_feed(args) {
234
- const parsed = commandArgs_process(args);
235
- const subcommand = parsed._[0];
236
- if (!subcommand) {
237
- return envelope_ok(`${chalk.red("Usage: feed <list|create|inspect|search|note|comments|comment|rm|tree> ...")}\n`);
238
- }
224
+ async function feedTree_run(request) {
225
+ const feedResult = await feedID_resolve(feedSpecifier_join(request.operands.feed));
226
+ if (!feedResult.ok)
227
+ return feedResolution_error('Usage: feed tree [<feed>] [--focus <id>] [--max-nodes <n>]');
228
+ return feedTree_handle(feedResult.value, request.options.focus, request.options.maxNodes ?? 0, request.options.flat);
229
+ }
230
+ /**
231
+ * Handles `feed diagram [<feed>]`: the tree with the feed's DAG as a model,
232
+ * so one line serves a terminal and a graphical surface alike, or the DAG
233
+ * as SignalFlow YAML.
234
+ *
235
+ * @param request - The line.
236
+ * @returns The diagram, or the feed that could not be found.
237
+ */
238
+ async function feedDiagram_run(request) {
239
+ const feedResult = await feedID_resolve(feedSpecifier_join(request.operands.feed));
240
+ if (!feedResult.ok)
241
+ return feedResolution_error('Usage: feed diagram [--signalflow] [<feed>]');
242
+ if (request.options.signalflow)
243
+ return feedDiagram_handle(feedResult.value, 'signalflow');
244
+ return feedDag_handle(feedResult.value, request.options.focus, request.options.maxNodes ?? 0, request.options.flat);
245
+ }
246
+ /** The words that name a feed: an id, its feed_N, or a title; none, the feed the working directory is in. */
247
+ const FEED_OPERANDS = [
248
+ { name: 'feed', kind: 'feed', optional: true, repeat: true, summary: 'An id, feed_N, an exact title or a unique search; none for the feed you are in' },
249
+ ];
250
+ /** The options that shape a drawn tree. */
251
+ const TREE_OPTIONS = {
252
+ focus: { long: 'focus', summary: "Scope the tree to one node's subtree", value: { name: 'id', kind: 'int', min: 1 } },
253
+ maxNodes: { long: 'max-nodes', summary: 'Draw at most this many nodes (0 draws them all)', value: { name: 'n', kind: 'int', min: 0 } },
254
+ flat: { long: 'flat', summary: 'Draw every node, not collapsing siblings of one shape' },
255
+ };
256
+ /** A note's or a comment's words. */
257
+ const TEXT_OPTIONS = {
258
+ title: { long: 'title', summary: 'The title', value: { name: 'text', kind: 'word' } },
259
+ content: { long: 'content', summary: 'The text', value: { name: 'text', kind: 'word' } },
260
+ };
261
+ /** A feed listing's options: every resource listing's, and whose feeds. */
262
+ const FEED_LIST_OPTIONS = {
263
+ ...RESOURCE_LIST_OPTIONS_GRAMMAR,
264
+ user: { long: 'user', summary: "Only this user's feeds (an administrator)", value: { name: 'username', kind: 'word' } },
265
+ };
266
+ /** What a `feed` line may hold. */
267
+ const FEED_GRAMMAR = {
268
+ bare: { summary: 'List the feeds, as list does', options: FEED_LIST_OPTIONS },
269
+ subcommands: {
270
+ list: { summary: 'List the feeds, 20 to a page', options: FEED_LIST_OPTIONS },
271
+ search: {
272
+ summary: 'List the feeds a filter matches (list --search <term>)',
273
+ operands: [{ name: 'term', kind: 'word', summary: 'The filter, field:value, or part of a name' }],
274
+ options: FEED_LIST_OPTIONS,
275
+ },
276
+ inspect: { summary: 'Name the fields a feed has' },
277
+ create: {
278
+ summary: 'Create a feed from data folders in ChRIS',
279
+ operands: [{ name: 'paths', kind: 'cfsPath', optional: true, repeat: true, summary: 'The data folders the feed starts from' }],
280
+ options: {
281
+ dirs: { long: 'dirs', summary: 'The data folders, comma-separated', value: { name: 'path,…', kind: 'word' } },
282
+ params: { long: 'params', summary: "The feed's fields, as name:value pairs", value: { name: 'params', kind: 'word' } },
283
+ },
284
+ },
285
+ note: {
286
+ summary: "Show a feed's note; with --title or --content, change it; with edit, open it in the editor (edit /proc/jobs/feed_N/note)",
287
+ operands: [
288
+ { name: 'edit', kind: 'enum', values: ['edit'], optional: true, summary: 'Open the note in the editor' },
289
+ { name: 'feed', kind: 'int', min: 1, summary: "The feed's id" },
290
+ ],
291
+ options: TEXT_OPTIONS,
292
+ },
293
+ comments: { summary: 'List the comments on a feed', operands: [{ name: 'feed', kind: 'int', min: 1, summary: "The feed's id" }] },
294
+ comment: {
295
+ summary: 'Add a comment to a feed, or edit or delete one',
296
+ operands: [
297
+ { name: 'op', kind: 'enum', values: ['add', 'edit', 'delete'], summary: 'What to do' },
298
+ { name: 'feed', kind: 'int', min: 1, summary: "The feed's id" },
299
+ { name: 'comment', kind: 'int', min: 1, optional: true, summary: "The comment's id, to edit or delete it" },
300
+ ],
301
+ options: TEXT_OPTIONS,
302
+ },
303
+ rm: {
304
+ summary: 'Remove a feed and everything in it; asks first',
305
+ operands: FEED_OPERANDS,
306
+ options: { force: { short: 'f', long: 'force', summary: 'Remove without asking' } },
307
+ },
308
+ tree: { summary: "Draw the feed's plugin-instance DAG", operands: FEED_OPERANDS, options: TREE_OPTIONS },
309
+ diagram: {
310
+ summary: 'Draw the DAG as tree does, carrying it as a model; with --signalflow, write it as SignalFlow YAML',
311
+ operands: FEED_OPERANDS,
312
+ options: { ...TREE_OPTIONS, signalflow: { long: 'signalflow', summary: 'Write the DAG as SignalFlow YAML (feed diagram --signalflow 42 | signalflow -)' } },
313
+ },
314
+ share: {
315
+ summary: 'Retired: setfacl and chmod share a feed',
316
+ operands: [{ name: 'words', kind: 'word', optional: true, repeat: true, summary: 'Anything; it says which verb to use' }],
317
+ },
318
+ },
319
+ };
320
+ /**
321
+ * Runs one `feed` line.
322
+ *
323
+ * @param args - The line, parsed.
324
+ * @returns The answer, or the error.
325
+ */
326
+ async function feed_run(args) {
239
327
  try {
240
- if (subcommand === 'list') {
241
- return await feedList_handle(parsed);
242
- }
243
- else if (subcommand === 'create') {
244
- const feed = await feed_create(cliOptions_extract(parsed));
245
- return envelope_ok(feed ? `${feedCreate_render(feed)}\n` : '');
246
- }
247
- else if (subcommand === 'inspect') {
248
- return await feedInspect_handle();
249
- }
250
- else if (subcommand === 'search') {
251
- const query = parsed._[1] ?? '';
252
- return await builtin_feed(['list', '--search', query]);
253
- }
254
- else if (subcommand === 'note') {
255
- return await feedNote_handle(parsed);
256
- }
257
- else if (subcommand === 'comments') {
258
- const feedId = parseInt(String(parsed._[1]), 10);
259
- if (isNaN(feedId)) {
260
- return envelope_error('', undefined, `${chalk.red('Usage: feed comments <feedId>')}\n`);
328
+ switch (args.subcommand) {
329
+ case null:
330
+ case 'list': return await feedList_handle(resourceListBag_build(args.options, undefined, args.options.user !== undefined ? { user: args.options.user } : {}));
331
+ case 'search': return await feedList_handle(resourceListBag_build(args.options, args.operands.term, args.options.user !== undefined ? { user: args.options.user } : {}));
332
+ case 'inspect': return await feedInspect_handle();
333
+ case 'create': {
334
+ const dirs = [...args.operands.paths, ...(args.options.dirs !== undefined ? [args.options.dirs] : [])].join(',');
335
+ const options = { ...(dirs !== '' ? { dirs } : {}), ...(args.options.params !== undefined ? { params: args.options.params } : {}) };
336
+ const feed = await feed_create(options);
337
+ return envelope_ok(feed ? `${feedCreate_render(feed)}\n` : '');
261
338
  }
262
- const result = await feed_commentsList(feedId);
263
- if (result.ok)
264
- return envelope_ok(`${feedComments_render(result.value, feedId)}\n`);
265
- exitCode_set(1);
266
- return envelope_error('', undefined, `${chalk.red(`Failed to list comments for feed ${feedId}.`)}\n`);
267
- }
268
- else if (subcommand === 'rm') {
269
- return await feedRemove_handle(parsed);
270
- }
271
- else if (subcommand === 'comment') {
272
- return await feedComment_handle(parsed);
273
- }
274
- else if (subcommand === 'tree') {
275
- const feedResult = await feedID_resolve(feedSpecifier_join(parsed._.slice(1)));
276
- if (!feedResult.ok)
277
- return feedResolution_error('Usage: feed tree [<feed>] [--focus <id>] [--max-nodes <n>]');
278
- const options = feedTreeOptions_parse(parsed);
279
- return await feedTree_handle(feedResult.value, options.focusID, options.maxNodes, options.flat);
339
+ case 'note': return await feedNote_handle(args);
340
+ case 'comments': return await feedComments_handle(args.operands.feed);
341
+ case 'comment': return await feedComment_handle(args);
342
+ case 'rm': return await feedRemove_handle(args.operands.feed, args.options.force);
343
+ case 'tree': return await feedTree_run(args);
344
+ case 'diagram': return await feedDiagram_run(args);
345
+ case 'share':
346
+ // Retired: sharing is an access entry, and a shell has the verbs.
347
+ exitCode_set(1);
348
+ return envelope_error('', undefined, `${chalk.red('feeds share is retired: setfacl -m o::r <feed> (or chmod o+r <feed>) makes a feed public; setfacl -m u:<user>:r or g:<group>:r shares it')}\n`);
280
349
  }
281
- else if (subcommand === 'diagram') {
282
- const wantSignalflow = parsed.signalflow !== undefined && parsed.signalflow !== false;
283
- const captured = typeof parsed.signalflow === 'string' ? [parsed.signalflow] : [];
284
- const specifier = feedSpecifier_join([...captured, ...parsed._.slice(1)]);
285
- const feedResult = await feedID_resolve(specifier);
286
- if (!feedResult.ok)
287
- return feedResolution_error('Usage: feed diagram [--signalflow] [<feed>]');
288
- if (wantSignalflow)
289
- return await feedDiagram_handle(feedResult.value, 'signalflow');
290
- const options = feedTreeOptions_parse(parsed);
291
- // Plain `feed diagram` renders the tree AND carries the feed.dag model,
292
- // so one declaration serves the terminal and a graphical surface alike.
293
- return await feedDag_handle(feedResult.value, options.focusID, options.maxNodes, options.flat);
294
- }
295
- if (subcommand === 'share') {
296
- // Retired: sharing is an access entry, and a shell has the verbs.
297
- exitCode_set(1);
298
- return envelope_error('', undefined, `${chalk.red('feeds share is retired: setfacl -m o::r <feed> (or chmod o+r <feed>) makes a feed public; setfacl -m u:<user>:r or g:<group>:r shares it')}\n`);
299
- }
300
- exitCode_set(1);
301
- return envelope_error('', undefined, `${chalk.red(`Unknown subcommand: ${subcommand}. Usage: feed <list|create|inspect|search|note|comments|comment|rm|tree|diagram>`)}\n`);
302
350
  }
303
351
  catch (e) {
304
352
  const msg = e instanceof Error ? e.message : String(e);
@@ -306,4 +354,51 @@ export async function builtin_feed(args) {
306
354
  return envelope_error('', undefined, `${chalk.red(`Feed error: ${msg}`)}\n`);
307
355
  }
308
356
  }
357
+ /**
358
+ * `feed [[listing options] | list | search | inspect | create | note | comments | comment | rm | tree | diagram] …`: the declaration.
359
+ *
360
+ * @example
361
+ * ```ts
362
+ * commands_register({ declarations: [feedCommand] }, 'backend');
363
+ * ```
364
+ */
365
+ export const feedCommand = command_declare({
366
+ name: 'feed',
367
+ aliases: [{ name: 'feeds', holds: [] }],
368
+ grammar: FEED_GRAMMAR,
369
+ help: {
370
+ summary: "CUBE's feeds: list and search them; create one, note and comment on it, draw its DAG, remove it",
371
+ description: "A feed is a data analysis in ChRIS: a DAG of linked plugin instances, also a folder at /home/<user>/feeds/feed_N. List the feeds a page at a time or every page, filtered by a search and in the columns asked for; inspect names a feed's fields. create starts a feed from data folders; note and comment read and write the words on one; tree and diagram draw its DAG; rm removes it and everything in it, asking first. A feed is named by its id, its feed_N, an exact title or a unique search; inside a feed_N path, leave it out to mean that feed. Sharing a feed is setfacl's and chmod's. feed and feeds are one command.",
372
+ category: 'Resources',
373
+ examples: [
374
+ 'feeds list',
375
+ 'feeds list --all --user radstar',
376
+ 'feeds search experiment',
377
+ 'feed create /home/user/uploads/MRI-data',
378
+ 'feed tree 1669',
379
+ 'feed diagram # the feed you are in',
380
+ 'feed diagram --signalflow 42 | signalflow -',
381
+ 'feed note 42 --title "QC passed" --content "No artefacts found"',
382
+ 'feed note edit 42',
383
+ 'feed comment add 42 --title "Issue" --content "Slice 14 looks odd"',
384
+ 'feed comment delete 42 7',
385
+ 'feed rm feed_42',
386
+ ],
387
+ },
388
+ handler: feed_run,
389
+ });
390
+ /**
391
+ * `feed` over words already split: the declaration's parse and handler.
392
+ *
393
+ * @param args - The words after `feed`.
394
+ * @returns The answer, or the refusal of a bad line.
395
+ *
396
+ * @example
397
+ * ```ts
398
+ * await builtin_feed(['tree', 'feed_12']);
399
+ * ```
400
+ */
401
+ export async function builtin_feed(args) {
402
+ return declaredCommand_run(feedCommand, args);
403
+ }
309
404
  //# 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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"}