@fnndsc/brasa 0.56.1 → 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 (361) hide show
  1. package/dist/buildinfo.json +1 -1
  2. package/dist/builtins/berth/berth.d.ts +90 -3
  3. package/dist/builtins/berth/berth.js +129 -76
  4. package/dist/builtins/berth/berth.js.map +1 -1
  5. package/dist/builtins/berth/berthClose.d.ts +25 -6
  6. package/dist/builtins/berth/berthClose.js +8 -64
  7. package/dist/builtins/berth/berthClose.js.map +1 -1
  8. package/dist/builtins/berth/berthCube.d.ts +3 -2
  9. package/dist/builtins/berth/berthCube.js +9 -16
  10. package/dist/builtins/berth/berthCube.js.map +1 -1
  11. package/dist/builtins/berth/berthProcesses.js +33 -3
  12. package/dist/builtins/berth/berthProcesses.js.map +1 -1
  13. package/dist/builtins/debug.d.ts +24 -3
  14. package/dist/builtins/debug.js +66 -13
  15. package/dist/builtins/debug.js.map +1 -1
  16. package/dist/builtins/fs/acl.args.d.ts +5 -38
  17. package/dist/builtins/fs/acl.args.js +6 -72
  18. package/dist/builtins/fs/acl.args.js.map +1 -1
  19. package/dist/builtins/fs/acl.d.ts +100 -10
  20. package/dist/builtins/fs/acl.js +222 -68
  21. package/dist/builtins/fs/acl.js.map +1 -1
  22. package/dist/builtins/fs/cat.args.d.ts +14 -15
  23. package/dist/builtins/fs/cat.args.js +13 -40
  24. package/dist/builtins/fs/cat.args.js.map +1 -1
  25. package/dist/builtins/fs/cat.d.ts +40 -3
  26. package/dist/builtins/fs/cat.js +92 -13
  27. package/dist/builtins/fs/cat.js.map +1 -1
  28. package/dist/builtins/fs/cd.d.ts +24 -6
  29. package/dist/builtins/fs/cd.js +71 -18
  30. package/dist/builtins/fs/cd.js.map +1 -1
  31. package/dist/builtins/fs/configWrite.d.ts +24 -8
  32. package/dist/builtins/fs/configWrite.js +77 -36
  33. package/dist/builtins/fs/configWrite.js.map +1 -1
  34. package/dist/builtins/fs/cp.d.ts +39 -4
  35. package/dist/builtins/fs/cp.js +122 -56
  36. package/dist/builtins/fs/cp.js.map +1 -1
  37. package/dist/builtins/fs/download.d.ts +31 -4
  38. package/dist/builtins/fs/download.js +75 -38
  39. package/dist/builtins/fs/download.js.map +1 -1
  40. package/dist/builtins/fs/du.d.ts +59 -33
  41. package/dist/builtins/fs/du.js +111 -79
  42. package/dist/builtins/fs/du.js.map +1 -1
  43. package/dist/builtins/fs/edit.d.ts +19 -4
  44. package/dist/builtins/fs/edit.js +77 -16
  45. package/dist/builtins/fs/edit.js.map +1 -1
  46. package/dist/builtins/fs/find.d.ts +25 -0
  47. package/dist/builtins/fs/find.js +76 -5
  48. package/dist/builtins/fs/find.js.map +1 -1
  49. package/dist/builtins/fs/ls.d.ts +69 -4
  50. package/dist/builtins/fs/ls.js +84 -45
  51. package/dist/builtins/fs/ls.js.map +1 -1
  52. package/dist/builtins/fs/mkdir.d.ts +28 -18
  53. package/dist/builtins/fs/mkdir.js +95 -66
  54. package/dist/builtins/fs/mkdir.js.map +1 -1
  55. package/dist/builtins/fs/mv.d.ts +34 -4
  56. package/dist/builtins/fs/mv.js +129 -64
  57. package/dist/builtins/fs/mv.js.map +1 -1
  58. package/dist/builtins/fs/pull.args.d.ts +56 -17
  59. package/dist/builtins/fs/pull.args.js +16 -66
  60. package/dist/builtins/fs/pull.args.js.map +1 -1
  61. package/dist/builtins/fs/pull.d.ts +62 -0
  62. package/dist/builtins/fs/pull.js +123 -31
  63. package/dist/builtins/fs/pull.js.map +1 -1
  64. package/dist/builtins/fs/pwd.d.ts +19 -5
  65. package/dist/builtins/fs/pwd.js +62 -8
  66. package/dist/builtins/fs/pwd.js.map +1 -1
  67. package/dist/builtins/fs/rm.d.ts +58 -21
  68. package/dist/builtins/fs/rm.js +99 -82
  69. package/dist/builtins/fs/rm.js.map +1 -1
  70. package/dist/builtins/fs/rmdir.d.ts +29 -11
  71. package/dist/builtins/fs/rmdir.js +87 -36
  72. package/dist/builtins/fs/rmdir.js.map +1 -1
  73. package/dist/builtins/fs/touch.d.ts +44 -9
  74. package/dist/builtins/fs/touch.js +91 -27
  75. package/dist/builtins/fs/touch.js.map +1 -1
  76. package/dist/builtins/fs/tree.d.ts +36 -9
  77. package/dist/builtins/fs/tree.js +126 -36
  78. package/dist/builtins/fs/tree.js.map +1 -1
  79. package/dist/builtins/fs/upload.d.ts +22 -3
  80. package/dist/builtins/fs/upload.js +82 -14
  81. package/dist/builtins/fs/upload.js.map +1 -1
  82. package/dist/builtins/fs/xattr.args.d.ts +12 -33
  83. package/dist/builtins/fs/xattr.args.js +17 -95
  84. package/dist/builtins/fs/xattr.args.js.map +1 -1
  85. package/dist/builtins/fs/xattr.d.ts +98 -8
  86. package/dist/builtins/fs/xattr.js +163 -24
  87. package/dist/builtins/fs/xattr.js.map +1 -1
  88. package/dist/builtins/games/bytes.d.ts +201 -5
  89. package/dist/builtins/games/bytes.js +255 -54
  90. package/dist/builtins/games/bytes.js.map +1 -1
  91. package/dist/builtins/games/chimes.d.ts +180 -3
  92. package/dist/builtins/games/chimes.js +203 -26
  93. package/dist/builtins/games/chimes.js.map +1 -1
  94. package/dist/builtins/games/chrislab.d.ts +101 -3
  95. package/dist/builtins/games/chrislab.js +117 -17
  96. package/dist/builtins/games/chrislab.js.map +1 -1
  97. package/dist/builtins/games/cowsay.d.ts +93 -2
  98. package/dist/builtins/games/cowsay.js +90 -31
  99. package/dist/builtins/games/cowsay.js.map +1 -1
  100. package/dist/builtins/games/figlet.d.ts +70 -2
  101. package/dist/builtins/games/figlet.js +83 -6
  102. package/dist/builtins/games/figlet.js.map +1 -1
  103. package/dist/builtins/games/lab.d.ts +104 -5
  104. package/dist/builtins/games/lab.js +144 -6
  105. package/dist/builtins/games/lab.js.map +1 -1
  106. package/dist/builtins/games/lolcat.d.ts +61 -1
  107. package/dist/builtins/games/lolcat.js +59 -24
  108. package/dist/builtins/games/lolcat.js.map +1 -1
  109. package/dist/builtins/games/morse.d.ts +36 -1
  110. package/dist/builtins/games/morse.js +50 -2
  111. package/dist/builtins/games/morse.js.map +1 -1
  112. package/dist/builtins/games/numbers.d.ts +241 -5
  113. package/dist/builtins/games/numbers.js +298 -23
  114. package/dist/builtins/games/numbers.js.map +1 -1
  115. package/dist/builtins/games/play.d.ts +96 -6
  116. package/dist/builtins/games/play.js +137 -6
  117. package/dist/builtins/games/play.js.map +1 -1
  118. package/dist/builtins/games/qr.d.ts +40 -1
  119. package/dist/builtins/games/qr.js +51 -2
  120. package/dist/builtins/games/qr.js.map +1 -1
  121. package/dist/builtins/games/show.d.ts +131 -6
  122. package/dist/builtins/games/show.js +208 -20
  123. package/dist/builtins/games/show.js.map +1 -1
  124. package/dist/builtins/games/sky.d.ts +178 -4
  125. package/dist/builtins/games/sky.js +228 -12
  126. package/dist/builtins/games/sky.js.map +1 -1
  127. package/dist/builtins/games/text.d.ts +258 -7
  128. package/dist/builtins/games/text.js +310 -29
  129. package/dist/builtins/games/text.js.map +1 -1
  130. package/dist/builtins/games/trek.d.ts +67 -3
  131. package/dist/builtins/games/trek.js +63 -10
  132. package/dist/builtins/games/trek.js.map +1 -1
  133. package/dist/builtins/games/wtf.d.ts +58 -1
  134. package/dist/builtins/games/wtf.js +67 -6
  135. package/dist/builtins/games/wtf.js.map +1 -1
  136. package/dist/builtins/help.d.ts +41 -3
  137. package/dist/builtins/help.js +92 -796
  138. package/dist/builtins/help.js.map +1 -1
  139. package/dist/builtins/net/connect.d.ts +36 -3
  140. package/dist/builtins/net/connect.js +84 -26
  141. package/dist/builtins/net/connect.js.map +1 -1
  142. package/dist/builtins/net/cubepath.d.ts +49 -5
  143. package/dist/builtins/net/cubepath.js +69 -27
  144. package/dist/builtins/net/cubepath.js.map +1 -1
  145. package/dist/builtins/net/logout.d.ts +13 -4
  146. package/dist/builtins/net/logout.js +49 -3
  147. package/dist/builtins/net/logout.js.map +1 -1
  148. package/dist/builtins/net/netstat.d.ts +29 -4
  149. package/dist/builtins/net/netstat.js +64 -23
  150. package/dist/builtins/net/netstat.js.map +1 -1
  151. package/dist/builtins/net/pacs.d.ts +169 -15
  152. package/dist/builtins/net/pacs.js +92 -33
  153. package/dist/builtins/net/pacs.js.map +1 -1
  154. package/dist/builtins/net/query.args.d.ts +95 -0
  155. package/dist/builtins/net/query.args.js +26 -0
  156. package/dist/builtins/net/query.args.js.map +1 -0
  157. package/dist/builtins/net/query.d.ts +98 -5
  158. package/dist/builtins/net/query.js +89 -83
  159. package/dist/builtins/net/query.js.map +1 -1
  160. package/dist/builtins/net/status.d.ts +5 -3
  161. package/dist/builtins/net/status.js +5 -12
  162. package/dist/builtins/net/status.js.map +1 -1
  163. package/dist/builtins/parametersofplugin.d.ts +82 -3
  164. package/dist/builtins/parametersofplugin.js +79 -23
  165. package/dist/builtins/parametersofplugin.js.map +1 -1
  166. package/dist/builtins/proc.d.ts +210 -3
  167. package/dist/builtins/proc.js +210 -119
  168. package/dist/builtins/proc.js.map +1 -1
  169. package/dist/builtins/res/compute.d.ts +67 -3
  170. package/dist/builtins/res/compute.js +121 -35
  171. package/dist/builtins/res/compute.js.map +1 -1
  172. package/dist/builtins/res/dicom.d.ts +55 -7
  173. package/dist/builtins/res/dicom.js +86 -52
  174. package/dist/builtins/res/dicom.js.map +1 -1
  175. package/dist/builtins/res/expect.d.ts +52 -3
  176. package/dist/builtins/res/expect.js +92 -29
  177. package/dist/builtins/res/expect.js.map +1 -1
  178. package/dist/builtins/res/feed.d.ts +475 -3
  179. package/dist/builtins/res/feed.js +253 -158
  180. package/dist/builtins/res/feed.js.map +1 -1
  181. package/dist/builtins/res/files.d.ts +517 -3
  182. package/dist/builtins/res/files.js +124 -44
  183. package/dist/builtins/res/files.js.map +1 -1
  184. package/dist/builtins/res/gather.d.ts +113 -3
  185. package/dist/builtins/res/gather.js +153 -44
  186. package/dist/builtins/res/gather.js.map +1 -1
  187. package/dist/builtins/res/gather.process.d.ts +27 -19
  188. package/dist/builtins/res/gather.process.js +29 -59
  189. package/dist/builtins/res/gather.process.js.map +1 -1
  190. package/dist/builtins/res/group.d.ts +284 -3
  191. package/dist/builtins/res/group.js +147 -76
  192. package/dist/builtins/res/group.js.map +1 -1
  193. package/dist/builtins/res/image.d.ts +30 -2
  194. package/dist/builtins/res/image.js +62 -10
  195. package/dist/builtins/res/image.js.map +1 -1
  196. package/dist/builtins/res/play.d.ts +71 -9
  197. package/dist/builtins/res/play.js +124 -82
  198. package/dist/builtins/res/play.js.map +1 -1
  199. package/dist/builtins/res/plugininstance.d.ts +307 -2
  200. package/dist/builtins/res/plugininstance.js +122 -50
  201. package/dist/builtins/res/plugininstance.js.map +1 -1
  202. package/dist/builtins/res/pluginmeta.d.ts +244 -2
  203. package/dist/builtins/res/pluginmeta.js +98 -40
  204. package/dist/builtins/res/pluginmeta.js.map +1 -1
  205. package/dist/builtins/res/record.d.ts +37 -3
  206. package/dist/builtins/res/record.js +127 -57
  207. package/dist/builtins/res/record.js.map +1 -1
  208. package/dist/builtins/res/resourceList.d.ts +136 -0
  209. package/dist/builtins/res/resourceList.js +51 -0
  210. package/dist/builtins/res/resourceList.js.map +1 -0
  211. package/dist/builtins/res/tag.d.ts +244 -3
  212. package/dist/builtins/res/tag.js +97 -41
  213. package/dist/builtins/res/tag.js.map +1 -1
  214. package/dist/builtins/res/user.d.ts +122 -3
  215. package/dist/builtins/res/user.js +83 -21
  216. package/dist/builtins/res/user.js.map +1 -1
  217. package/dist/builtins/res/workflow.d.ts +244 -2
  218. package/dist/builtins/res/workflow.js +97 -40
  219. package/dist/builtins/res/workflow.js.map +1 -1
  220. package/dist/builtins/store.d.ts +85 -3
  221. package/dist/builtins/store.js +135 -68
  222. package/dist/builtins/store.js.map +1 -1
  223. package/dist/builtins/sys/apropos.d.ts +80 -5
  224. package/dist/builtins/sys/apropos.js +121 -15
  225. package/dist/builtins/sys/apropos.js.map +1 -1
  226. package/dist/builtins/sys/cal.d.ts +44 -5
  227. package/dist/builtins/sys/cal.js +57 -10
  228. package/dist/builtins/sys/cal.js.map +1 -1
  229. package/dist/builtins/sys/command.d.ts +20 -0
  230. package/dist/builtins/sys/command.js +31 -0
  231. package/dist/builtins/sys/command.js.map +1 -1
  232. package/dist/builtins/sys/context.d.ts +13 -3
  233. package/dist/builtins/sys/context.js +51 -4
  234. package/dist/builtins/sys/context.js.map +1 -1
  235. package/dist/builtins/sys/date.d.ts +56 -5
  236. package/dist/builtins/sys/date.js +63 -9
  237. package/dist/builtins/sys/date.js.map +1 -1
  238. package/dist/builtins/sys/echo.d.ts +63 -2
  239. package/dist/builtins/sys/echo.js +87 -8
  240. package/dist/builtins/sys/echo.js.map +1 -1
  241. package/dist/builtins/sys/fortune.d.ts +27 -2
  242. package/dist/builtins/sys/fortune.js +44 -2
  243. package/dist/builtins/sys/fortune.js.map +1 -1
  244. package/dist/builtins/sys/grep.d.ts +245 -11
  245. package/dist/builtins/sys/grep.js +418 -131
  246. package/dist/builtins/sys/grep.js.map +1 -1
  247. package/dist/builtins/sys/joblets.d.ts +66 -7
  248. package/dist/builtins/sys/joblets.js +101 -14
  249. package/dist/builtins/sys/joblets.js.map +1 -1
  250. package/dist/builtins/sys/motd.d.ts +37 -3
  251. package/dist/builtins/sys/motd.js +49 -8
  252. package/dist/builtins/sys/motd.js.map +1 -1
  253. package/dist/builtins/sys/notes.d.ts +75 -3
  254. package/dist/builtins/sys/notes.js +90 -29
  255. package/dist/builtins/sys/notes.js.map +1 -1
  256. package/dist/builtins/sys/physicalmode.d.ts +24 -3
  257. package/dist/builtins/sys/physicalmode.js +68 -14
  258. package/dist/builtins/sys/physicalmode.js.map +1 -1
  259. package/dist/builtins/sys/tasks.d.ts +74 -5
  260. package/dist/builtins/sys/tasks.js +102 -14
  261. package/dist/builtins/sys/tasks.js.map +1 -1
  262. package/dist/builtins/sys/textFilters.d.ts +673 -41
  263. package/dist/builtins/sys/textFilters.js +719 -264
  264. package/dist/builtins/sys/textFilters.js.map +1 -1
  265. package/dist/builtins/sys/timing.d.ts +24 -3
  266. package/dist/builtins/sys/timing.js +67 -14
  267. package/dist/builtins/sys/timing.js.map +1 -1
  268. package/dist/builtins/sys/variables.d.ts +70 -4
  269. package/dist/builtins/sys/variables.js +103 -31
  270. package/dist/builtins/sys/variables.js.map +1 -1
  271. package/dist/builtins/sys/version.d.ts +27 -2
  272. package/dist/builtins/sys/version.js +48 -3
  273. package/dist/builtins/sys/version.js.map +1 -1
  274. package/dist/builtins/sys/weather.d.ts +92 -15
  275. package/dist/builtins/sys/weather.js +71 -45
  276. package/dist/builtins/sys/weather.js.map +1 -1
  277. package/dist/builtins/sys/whoami.d.ts +38 -18
  278. package/dist/builtins/sys/whoami.js +112 -8
  279. package/dist/builtins/sys/whoami.js.map +1 -1
  280. package/dist/builtins/utils.d.ts +1 -38
  281. package/dist/builtins/utils.js +1 -87
  282. package/dist/builtins/utils.js.map +1 -1
  283. package/dist/chris/backend.js +2 -0
  284. package/dist/chris/backend.js.map +1 -1
  285. package/dist/chris/chrisCommands.js +62 -159
  286. package/dist/chris/chrisCommands.js.map +1 -1
  287. package/dist/chris/commandFallback.d.ts +12 -0
  288. package/dist/chris/commandFallback.js +47 -0
  289. package/dist/chris/commandFallback.js.map +1 -1
  290. package/dist/chris/files.js +24 -85
  291. package/dist/chris/files.js.map +1 -1
  292. package/dist/chris/filesystem.js +7 -5
  293. package/dist/chris/filesystem.js.map +1 -1
  294. package/dist/chris/help.js +0 -1082
  295. package/dist/chris/help.js.map +1 -1
  296. package/dist/chris/kinds.d.ts +30 -0
  297. package/dist/chris/kinds.js +154 -0
  298. package/dist/chris/kinds.js.map +1 -0
  299. package/dist/chris/mounts.d.ts +4 -4
  300. package/dist/chris/mounts.js +9 -16
  301. package/dist/chris/mounts.js.map +1 -1
  302. package/dist/chris/navigation.d.ts +2 -3
  303. package/dist/chris/navigation.js +6 -20
  304. package/dist/chris/navigation.js.map +1 -1
  305. package/dist/chris/pacsResources.d.ts +259 -0
  306. package/dist/chris/pacsResources.js +168 -0
  307. package/dist/chris/pacsResources.js.map +1 -0
  308. package/dist/chris/promptContext.d.ts +6 -0
  309. package/dist/chris/promptContext.js +3 -1
  310. package/dist/chris/promptContext.js.map +1 -1
  311. package/dist/core/argumentKinds.d.ts +107 -0
  312. package/dist/core/argumentKinds.js +223 -0
  313. package/dist/core/argumentKinds.js.map +1 -0
  314. package/dist/core/backend.d.ts +4 -1
  315. package/dist/core/backend.js.map +1 -1
  316. package/dist/core/commandDeclaration.d.ts +453 -0
  317. package/dist/core/commandDeclaration.js +52 -0
  318. package/dist/core/commandDeclaration.js.map +1 -0
  319. package/dist/core/commandParse.d.ts +64 -0
  320. package/dist/core/commandParse.js +468 -0
  321. package/dist/core/commandParse.js.map +1 -0
  322. package/dist/core/commandRegistry.d.ts +37 -0
  323. package/dist/core/commandRegistry.js +100 -3
  324. package/dist/core/commandRegistry.js.map +1 -1
  325. package/dist/core/commandSchema.d.ts +32 -0
  326. package/dist/core/commandSchema.js +117 -0
  327. package/dist/core/commandSchema.js.map +1 -0
  328. package/dist/core/commandUsage.d.ts +62 -0
  329. package/dist/core/commandUsage.js +247 -0
  330. package/dist/core/commandUsage.js.map +1 -0
  331. package/dist/core/coreCommands.js +66 -214
  332. package/dist/core/coreCommands.js.map +1 -1
  333. package/dist/core/dispatch.js +15 -8
  334. package/dist/core/dispatch.js.map +1 -1
  335. package/dist/core/paths.d.ts +51 -0
  336. package/dist/core/paths.js +86 -2
  337. package/dist/core/paths.js.map +1 -1
  338. package/dist/core/preprocess.d.ts +10 -9
  339. package/dist/core/preprocess.js +10 -20
  340. package/dist/core/preprocess.js.map +1 -1
  341. package/dist/core/warmupFailures.d.ts +34 -2
  342. package/dist/core/warmupFailures.js +43 -2
  343. package/dist/core/warmupFailures.js.map +1 -1
  344. package/dist/lib/completer/cfsPaths.d.ts +14 -0
  345. package/dist/lib/completer/cfsPaths.js +91 -0
  346. package/dist/lib/completer/cfsPaths.js.map +1 -0
  347. package/dist/lib/completer/declared.d.ts +15 -0
  348. package/dist/lib/completer/declared.js +189 -0
  349. package/dist/lib/completer/declared.js.map +1 -0
  350. package/dist/lib/completer/index.js +33 -79
  351. package/dist/lib/completer/index.js.map +1 -1
  352. package/dist/lib/parser.d.ts +5 -8
  353. package/dist/lib/parser.js +2 -11
  354. package/dist/lib/parser.js.map +1 -1
  355. package/dist/lib/vfs/vfs.d.ts +2 -1
  356. package/dist/lib/vfs/vfs.js +9 -6
  357. package/dist/lib/vfs/vfs.js.map +1 -1
  358. package/dist/lib/wildcard.js +2 -3
  359. package/dist/lib/wildcard.js.map +1 -1
  360. package/dist/notes.json +1 -1
  361. package/package.json +6 -5
@@ -0,0 +1,259 @@
1
+ import { type CommandGrammar } from '../core/commandDeclaration.js';
2
+ /** A parsed line, as the chili writer reads it. */
3
+ interface ChiliLine {
4
+ /** The subcommand. */
5
+ readonly subcommand: string | null;
6
+ /** The operands, by name. */
7
+ readonly operands: Readonly<Record<string, unknown>>;
8
+ /** The options, by property. */
9
+ readonly options: Readonly<Record<string, unknown>>;
10
+ }
11
+ /**
12
+ * A parsed line written back as chili's words: the subcommand, each option
13
+ * given (`--long`, with its value), then the operands in order.
14
+ *
15
+ * @param grammar - The command's grammar.
16
+ * @param line - The line, parsed.
17
+ * @returns chili's words after the command.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * chiliWords_write(PACSQUERIES_GRAMMAR, { subcommand: 'decode', operands: { queryId: 7 }, options: { raw: true } }); // ['decode', '--raw', '7']
22
+ * ```
23
+ */
24
+ export declare function chiliWords_write(grammar: CommandGrammar, line: ChiliLine): string[];
25
+ /**
26
+ * `pacsservers <list [options] | fieldslist>`: the declaration.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * commands_register({ declarations: [pacsserversCommand] }, 'backend');
31
+ * ```
32
+ */
33
+ export declare const pacsserversCommand: import("../core/commandDeclaration.js").CommandDeclaration<{
34
+ readonly subcommands: {
35
+ readonly list: {
36
+ readonly summary: "List the PACS servers CUBE registers";
37
+ readonly options: {
38
+ readonly page: {
39
+ readonly short: "p";
40
+ readonly long: "page";
41
+ readonly summary: "Page size (default 20)";
42
+ readonly value: {
43
+ readonly name: "size";
44
+ readonly kind: "int";
45
+ readonly min: 1;
46
+ };
47
+ };
48
+ readonly fields: {
49
+ readonly short: "f";
50
+ readonly long: "fields";
51
+ readonly summary: "Comma-separated fields to display";
52
+ readonly value: {
53
+ readonly name: "fields";
54
+ readonly kind: "word";
55
+ };
56
+ };
57
+ readonly search: {
58
+ readonly short: "s";
59
+ readonly long: "search";
60
+ readonly summary: "Search by comma-separated key:value pairs";
61
+ readonly value: {
62
+ readonly name: "terms";
63
+ readonly kind: "word";
64
+ };
65
+ };
66
+ readonly sort: {
67
+ readonly long: "sort";
68
+ readonly summary: "Sort by field (name, size, date, owner, …)";
69
+ readonly value: {
70
+ readonly name: "field";
71
+ readonly kind: "word";
72
+ };
73
+ };
74
+ readonly reverse: {
75
+ readonly short: "r";
76
+ readonly long: "reverse";
77
+ readonly summary: "Reverse the sort order";
78
+ };
79
+ readonly table: {
80
+ readonly long: "table";
81
+ readonly summary: "Tabular output, with headers";
82
+ };
83
+ readonly csv: {
84
+ readonly long: "csv";
85
+ readonly summary: "CSV output (over --table)";
86
+ };
87
+ };
88
+ };
89
+ readonly fieldslist: {
90
+ readonly summary: "List the fields a PACS server has";
91
+ };
92
+ };
93
+ }>;
94
+ /**
95
+ * `pacsqueries <list | fieldslist | create <query> | decode <queryId>>`: the declaration.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * commands_register({ declarations: [pacsqueriesCommand] }, 'backend');
100
+ * ```
101
+ */
102
+ export declare const pacsqueriesCommand: import("../core/commandDeclaration.js").CommandDeclaration<{
103
+ readonly subcommands: {
104
+ readonly list: {
105
+ readonly summary: "List the queries asked of the PACS server";
106
+ readonly options: {
107
+ readonly pacsserver: {
108
+ readonly long: "pacsserver";
109
+ readonly summary: "The PACS server, by id or identifier (default: the context's)";
110
+ readonly value: {
111
+ readonly name: "id";
112
+ readonly kind: "word";
113
+ };
114
+ };
115
+ readonly page: {
116
+ readonly short: "p";
117
+ readonly long: "page";
118
+ readonly summary: "Page size (default 20)";
119
+ readonly value: {
120
+ readonly name: "size";
121
+ readonly kind: "int";
122
+ readonly min: 1;
123
+ };
124
+ };
125
+ readonly fields: {
126
+ readonly short: "f";
127
+ readonly long: "fields";
128
+ readonly summary: "Comma-separated fields to display";
129
+ readonly value: {
130
+ readonly name: "fields";
131
+ readonly kind: "word";
132
+ };
133
+ };
134
+ readonly search: {
135
+ readonly short: "s";
136
+ readonly long: "search";
137
+ readonly summary: "Search by comma-separated key:value pairs";
138
+ readonly value: {
139
+ readonly name: "terms";
140
+ readonly kind: "word";
141
+ };
142
+ };
143
+ readonly sort: {
144
+ readonly long: "sort";
145
+ readonly summary: "Sort by field (name, size, date, owner, …)";
146
+ readonly value: {
147
+ readonly name: "field";
148
+ readonly kind: "word";
149
+ };
150
+ };
151
+ readonly reverse: {
152
+ readonly short: "r";
153
+ readonly long: "reverse";
154
+ readonly summary: "Reverse the sort order";
155
+ };
156
+ readonly table: {
157
+ readonly long: "table";
158
+ readonly summary: "Tabular output, with headers";
159
+ };
160
+ readonly csv: {
161
+ readonly long: "csv";
162
+ readonly summary: "CSV output (over --table)";
163
+ };
164
+ };
165
+ };
166
+ readonly fieldslist: {
167
+ readonly summary: "List the fields a PACS query has";
168
+ };
169
+ readonly create: {
170
+ readonly summary: "Create a PACS query against the current or given server";
171
+ readonly operands: readonly [{
172
+ readonly name: "query";
173
+ readonly kind: "word";
174
+ readonly summary: "The question: JSON, or comma-separated Key:Value pairs";
175
+ }];
176
+ readonly options: {
177
+ readonly title: {
178
+ readonly long: "title";
179
+ readonly summary: "Title for the query";
180
+ readonly value: {
181
+ readonly name: "title";
182
+ readonly kind: "word";
183
+ };
184
+ };
185
+ readonly description: {
186
+ readonly long: "description";
187
+ readonly summary: "A description for the query";
188
+ readonly value: {
189
+ readonly name: "description";
190
+ readonly kind: "word";
191
+ };
192
+ };
193
+ readonly pacsserver: {
194
+ readonly long: "pacsserver";
195
+ readonly summary: "The PACS server, by id or identifier (default: the context's)";
196
+ readonly value: {
197
+ readonly name: "id";
198
+ readonly kind: "word";
199
+ };
200
+ };
201
+ };
202
+ };
203
+ readonly decode: {
204
+ readonly summary: "Decode the result payload of a PACS query";
205
+ readonly operands: readonly [{
206
+ readonly name: "queryId";
207
+ readonly kind: "int";
208
+ readonly min: 1;
209
+ readonly summary: "The query's id";
210
+ }];
211
+ readonly options: {
212
+ readonly raw: {
213
+ readonly long: "raw";
214
+ readonly summary: "Print the raw decoded JSON";
215
+ };
216
+ };
217
+ };
218
+ };
219
+ }>;
220
+ /**
221
+ * `pacsretrieve <pull <queryId> | report <queryId> | cancel <retrieveId>>`: the declaration.
222
+ *
223
+ * @example
224
+ * ```ts
225
+ * commands_register({ declarations: [pacsretrieveCommand] }, 'backend');
226
+ * ```
227
+ */
228
+ export declare const pacsretrieveCommand: import("../core/commandDeclaration.js").CommandDeclaration<{
229
+ readonly subcommands: {
230
+ readonly pull: {
231
+ readonly summary: "Retrieve a query's DICOM data into ChRIS";
232
+ readonly operands: readonly [{
233
+ readonly name: "queryId";
234
+ readonly kind: "int";
235
+ readonly min: 1;
236
+ readonly summary: "The query's id";
237
+ }];
238
+ };
239
+ readonly report: {
240
+ readonly summary: "Show the status of a query's retrieve";
241
+ readonly operands: readonly [{
242
+ readonly name: "queryId";
243
+ readonly kind: "int";
244
+ readonly min: 1;
245
+ readonly summary: "The query's id";
246
+ }];
247
+ };
248
+ readonly cancel: {
249
+ readonly summary: "Cancel (delete) a retrieve";
250
+ readonly operands: readonly [{
251
+ readonly name: "retrieveId";
252
+ readonly kind: "int";
253
+ readonly min: 1;
254
+ readonly summary: "The retrieve's id";
255
+ }];
256
+ };
257
+ };
258
+ }>;
259
+ export {};
@@ -0,0 +1,168 @@
1
+ import { command_declare } from '../core/commandDeclaration.js';
2
+ import { chiliCommand_run } from './chiliDelegate.js';
3
+ /** A resource listing's options, as chili's `list` takes them. */
4
+ const LIST_OPTIONS = {
5
+ page: { short: 'p', long: 'page', summary: 'Page size (default 20)', value: { name: 'size', kind: 'int', min: 1 } },
6
+ fields: { short: 'f', long: 'fields', summary: 'Comma-separated fields to display', value: { name: 'fields', kind: 'word' } },
7
+ search: { short: 's', long: 'search', summary: 'Search by comma-separated key:value pairs', value: { name: 'terms', kind: 'word' } },
8
+ sort: { long: 'sort', summary: 'Sort by field (name, size, date, owner, …)', value: { name: 'field', kind: 'word' } },
9
+ reverse: { short: 'r', long: 'reverse', summary: 'Reverse the sort order' },
10
+ table: { long: 'table', summary: 'Tabular output, with headers' },
11
+ csv: { long: 'csv', summary: 'CSV output (over --table)' },
12
+ };
13
+ /** A PACS server, as `--pacsserver` names one. */
14
+ const PACSSERVER_OPTION = { long: 'pacsserver', summary: 'The PACS server, by id or identifier (default: the context\'s)', value: { name: 'id', kind: 'word' } };
15
+ /**
16
+ * A parsed line written back as chili's words: the subcommand, each option
17
+ * given (`--long`, with its value), then the operands in order.
18
+ *
19
+ * @param grammar - The command's grammar.
20
+ * @param line - The line, parsed.
21
+ * @returns chili's words after the command.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * chiliWords_write(PACSQUERIES_GRAMMAR, { subcommand: 'decode', operands: { queryId: 7 }, options: { raw: true } }); // ['decode', '--raw', '7']
26
+ * ```
27
+ */
28
+ export function chiliWords_write(grammar, line) {
29
+ const scope = line.subcommand === null ? undefined : grammar.subcommands?.[line.subcommand];
30
+ const words = line.subcommand === null ? [] : [line.subcommand];
31
+ const options = Object.entries({ ...(scope?.options ?? {}), ...(grammar.options ?? {}) });
32
+ for (const [key, option] of options) {
33
+ const value = line.options[key];
34
+ const name = option.long !== undefined ? `--${option.long}` : `-${option.short ?? ''}`;
35
+ if (value === true)
36
+ words.push(name);
37
+ else if (typeof value === 'string' || typeof value === 'number')
38
+ words.push(name, String(value));
39
+ }
40
+ for (const operand of scope?.operands ?? grammar.operands ?? []) {
41
+ const value = line.operands[operand.name];
42
+ if (Array.isArray(value))
43
+ words.push(...value.map(String));
44
+ else if (value !== undefined)
45
+ words.push(String(value));
46
+ }
47
+ return words;
48
+ }
49
+ /**
50
+ * Runs a declared line through chili.
51
+ *
52
+ * @param name - The chili command.
53
+ * @param grammar - Its grammar.
54
+ * @param line - The line, parsed.
55
+ * @returns chili's captured output.
56
+ */
57
+ function chiliLine_run(name, grammar, line) {
58
+ return chiliCommand_run(name, ['-s', ...chiliWords_write(grammar, line)]);
59
+ }
60
+ /** What a `pacsservers` line may hold. */
61
+ const PACSSERVERS_GRAMMAR = {
62
+ subcommands: {
63
+ list: { summary: 'List the PACS servers CUBE registers', options: LIST_OPTIONS },
64
+ fieldslist: { summary: 'List the fields a PACS server has' },
65
+ },
66
+ };
67
+ /**
68
+ * `pacsservers <list [options] | fieldslist>`: the declaration.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * commands_register({ declarations: [pacsserversCommand] }, 'backend');
73
+ * ```
74
+ */
75
+ export const pacsserversCommand = command_declare({
76
+ name: 'pacsservers',
77
+ grammar: PACSSERVERS_GRAMMAR,
78
+ help: {
79
+ summary: 'List or inspect available PACS servers (context-aware)',
80
+ description: 'The PACS servers CUBE registers, as a resource listing: list them, or list the fields a server has.',
81
+ category: 'PACS',
82
+ examples: [
83
+ 'pacsservers list # List PACS servers',
84
+ 'pacsservers list --table # Table view',
85
+ 'pacsservers fieldslist # Show fields',
86
+ ],
87
+ },
88
+ // Listing servers changes nothing of the session.
89
+ holds: [],
90
+ handler: (line) => chiliLine_run('pacsservers', PACSSERVERS_GRAMMAR, line),
91
+ });
92
+ /** What a `pacsqueries` line may hold. */
93
+ const PACSQUERIES_GRAMMAR = {
94
+ subcommands: {
95
+ list: { summary: 'List the queries asked of the PACS server', options: { ...LIST_OPTIONS, pacsserver: PACSSERVER_OPTION } },
96
+ fieldslist: { summary: 'List the fields a PACS query has' },
97
+ create: {
98
+ summary: 'Create a PACS query against the current or given server',
99
+ operands: [{ name: 'query', kind: 'word', summary: 'The question: JSON, or comma-separated Key:Value pairs' }],
100
+ options: {
101
+ title: { long: 'title', summary: 'Title for the query', value: { name: 'title', kind: 'word' } },
102
+ description: { long: 'description', summary: 'A description for the query', value: { name: 'description', kind: 'word' } },
103
+ pacsserver: PACSSERVER_OPTION,
104
+ },
105
+ },
106
+ decode: {
107
+ summary: 'Decode the result payload of a PACS query',
108
+ operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }],
109
+ options: { raw: { long: 'raw', summary: 'Print the raw decoded JSON' } },
110
+ },
111
+ },
112
+ };
113
+ /**
114
+ * `pacsqueries <list | fieldslist | create <query> | decode <queryId>>`: the declaration.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * commands_register({ declarations: [pacsqueriesCommand] }, 'backend');
119
+ * ```
120
+ */
121
+ export const pacsqueriesCommand = command_declare({
122
+ name: 'pacsqueries',
123
+ grammar: PACSQUERIES_GRAMMAR,
124
+ help: {
125
+ summary: 'Create or list PACS queries (uses current pacsserver context unless overridden)',
126
+ description: 'The queries asked of a PACS, as a resource listing: list them (for the context\'s server unless --pacsserver names one), list their fields, create one, or decode one\'s answer.',
127
+ category: 'PACS',
128
+ examples: [
129
+ 'pacsqueries list # List for current pacsserver',
130
+ 'pacsqueries list --pacsserver PACSDCM # Override server',
131
+ 'pacsqueries create "PatientID:1234" --title "PID 1234"',
132
+ 'pacsqueries decode <id> # Decode a query result',
133
+ ],
134
+ },
135
+ handler: (line) => chiliLine_run('pacsqueries', PACSQUERIES_GRAMMAR, line),
136
+ });
137
+ /** What a `pacsretrieve` line may hold. */
138
+ const PACSRETRIEVE_GRAMMAR = {
139
+ subcommands: {
140
+ pull: { summary: 'Retrieve a query\'s DICOM data into ChRIS', operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }] },
141
+ report: { summary: 'Show the status of a query\'s retrieve', operands: [{ name: 'queryId', kind: 'int', min: 1, summary: 'The query\'s id' }] },
142
+ cancel: { summary: 'Cancel (delete) a retrieve', operands: [{ name: 'retrieveId', kind: 'int', min: 1, summary: 'The retrieve\'s id' }] },
143
+ },
144
+ };
145
+ /**
146
+ * `pacsretrieve <pull <queryId> | report <queryId> | cancel <retrieveId>>`: the declaration.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * commands_register({ declarations: [pacsretrieveCommand] }, 'backend');
151
+ * ```
152
+ */
153
+ export const pacsretrieveCommand = command_declare({
154
+ name: 'pacsretrieve',
155
+ grammar: PACSRETRIEVE_GRAMMAR,
156
+ help: {
157
+ summary: 'Pull or inspect DICOM retrieves for PACS queries',
158
+ description: 'A PACS query\'s retrieves: pull its DICOM data into ChRIS, report how far a retrieve has come, or cancel one.',
159
+ category: 'PACS',
160
+ examples: [
161
+ 'pacsretrieve pull <queryId> # Pull data for a query',
162
+ 'pacsretrieve report <queryId> # Show retrieve status',
163
+ 'pacsretrieve cancel <retrieveId> # Cancel a retrieve',
164
+ ],
165
+ },
166
+ handler: (line) => chiliLine_run('pacsretrieve', PACSRETRIEVE_GRAMMAR, line),
167
+ });
168
+ //# sourceMappingURL=pacsResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pacsResources.js","sourceRoot":"","sources":["../../src/chris/pacsResources.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,12 @@ export interface SessionPromptContext {
43
43
  * that left the boot gate has no other way to be heard.
44
44
  */
45
45
  warmupFailures?: WarmupFailure[];
46
+ /**
47
+ * Warm-up steps still running behind the prompt, by label. A daemon
48
+ * listens before its warm-up ends, so a surface that attaches early is
49
+ * told what the session is still warming.
50
+ */
51
+ warmupPending?: string[];
46
52
  }
47
53
  /**
48
54
  * Inputs the caller knows that the session state does not.
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import { jobsState_derive } from './jobsState.js';
14
14
  import { session } from '../session/index.js';
15
- import { warmupFailures_list } from '../core/warmupFailures.js';
15
+ import { warmupFailures_list, warmupPending_list } from '../core/warmupFailures.js';
16
16
  import { context_getSingle } from '@fnndsc/salsa';
17
17
  import { pace_get, procCache_get } from '@fnndsc/cumin';
18
18
  /**
@@ -62,6 +62,7 @@ export async function sessionPromptContext_build(options = {}) {
62
62
  const roster = procCache_get().rosterSync_get();
63
63
  const sweeping = warmupRaw.active || lifecycle.state === 'reconciling' || lifecycle.state === 'failed';
64
64
  const warmupFailures = warmupFailures_list();
65
+ const warmupPending = warmupPending_list();
65
66
  const procWarmup = sweeping || feedLoad !== null || arrived.length > 0 || landed.length > 0 || roster !== null
66
67
  ? {
67
68
  loaded: warmupRaw.loaded,
@@ -93,6 +94,7 @@ export async function sessionPromptContext_build(options = {}) {
93
94
  lastCommandDurationMs: options.lastCommandDurationMs ?? 0,
94
95
  procWarmup,
95
96
  ...(warmupFailures.length > 0 ? { warmupFailures } : {}),
97
+ ...(warmupPending.length > 0 ? { warmupPending } : {}),
96
98
  procIndex,
97
99
  };
98
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"promptContext.js","sourceRoot":"","sources":["../../src/chris/promptContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promptContext.js","sourceRoot":"","sources":["../../src/chris/promptContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { z } from 'zod';
2
+ import type { ShellWord } from '../lib/parser.js';
3
+ import type { ArgumentGrammar } from './commandDeclaration.js';
4
+ /** What checking a word came to: its value, or why it is not one, in a few words (`valid: a, b`). */
5
+ export type ArgumentCheck = {
6
+ readonly ok: true;
7
+ readonly value: unknown;
8
+ } | {
9
+ readonly ok: false;
10
+ readonly reason: string;
11
+ };
12
+ /** What expanding a word came to: its words, or why it could not be expanded. */
13
+ export type ArgumentExpansion = {
14
+ readonly ok: true;
15
+ readonly words: ShellWord[];
16
+ } | {
17
+ readonly ok: false;
18
+ readonly reason: string;
19
+ };
20
+ /**
21
+ * One kind of argument.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const colour: ArgumentKind = {
26
+ * name: 'colour',
27
+ * summary: 'A colour name',
28
+ * word_read: (word: string): ArgumentCheck => ({ ok: true, value: word }),
29
+ * schema_make: (): z.ZodType => z.string(),
30
+ * };
31
+ * ```
32
+ */
33
+ export interface ArgumentKind {
34
+ /** The name an argument gives as its `kind`. */
35
+ readonly name: string;
36
+ /** What it is, in a few words, for help and the schema. */
37
+ readonly summary: string;
38
+ /** A word that looks like a negative number is this kind's operand, not an option. */
39
+ readonly numeric?: boolean;
40
+ /** It is a path, so an argument of it may declare `glob`. */
41
+ readonly path?: boolean;
42
+ /**
43
+ * Turns a word into its value, or says why it is not one.
44
+ *
45
+ * @param word - The word as the line gave it.
46
+ * @param argument - The argument's grammar (an enum's values, a number's bounds).
47
+ * @returns The value, or the reason.
48
+ */
49
+ word_read(word: string, argument: ArgumentGrammar): ArgumentCheck;
50
+ /**
51
+ * The schema of the value, for a tool's input.
52
+ *
53
+ * @param argument - The argument's grammar.
54
+ * @returns The zod schema.
55
+ */
56
+ schema_make(argument: ArgumentGrammar): z.ZodType;
57
+ /**
58
+ * Completes a word typed so far.
59
+ *
60
+ * @param partial - The word so far.
61
+ * @param argument - The argument's grammar.
62
+ * @returns The candidates that start with it.
63
+ */
64
+ words_complete?(partial: string, argument: ArgumentGrammar): Promise<string[]>;
65
+ /**
66
+ * Pathname expansion: the words a wildcard matches.
67
+ *
68
+ * @param words - The words, quoting kept.
69
+ * @returns The expanded words, a word matching nothing left as written.
70
+ */
71
+ words_expand?(words: readonly ShellWord[]): Promise<ArgumentExpansion>;
72
+ }
73
+ /** The core's kind names, which a core command may use and no other. */
74
+ export declare const CORE_KIND_NAMES: ReadonlyArray<string>;
75
+ /**
76
+ * The candidates among some words that start with what was typed.
77
+ *
78
+ * @param words - The words.
79
+ * @param partial - What was typed.
80
+ * @returns Those that start with it.
81
+ */
82
+ export declare function candidates_filter(words: ReadonlyArray<string>, partial: string): string[];
83
+ /**
84
+ * Finds a kind: the core's, then the installed backend's.
85
+ *
86
+ * @param name - The kind's name.
87
+ * @returns The kind, or null when neither has it.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * argumentKind_get('cfsPath')?.path; // true
92
+ * ```
93
+ */
94
+ export declare function argumentKind_get(name: string): ArgumentKind | null;
95
+ /**
96
+ * Checks one word against its argument's kind.
97
+ *
98
+ * @param argument - The argument's grammar.
99
+ * @param word - The word.
100
+ * @returns The value, or why the word is not one (an unregistered kind says so).
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * argumentWord_check({ kind: 'enum', values: ['a', 'b'] }, 'c'); // { ok: false, reason: 'valid: a, b' }
105
+ * ```
106
+ */
107
+ export declare function argumentWord_check(argument: ArgumentGrammar, word: string): ArgumentCheck;