@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
@@ -38,15 +38,192 @@ export declare function chimes_cancel(which: number | Chime['source'] | 'all'):
38
38
  export declare function duration_parse(text: string): number | null;
39
39
  /** A span in words: `1h 05m`, `4m 30s`, `12s`. */
40
40
  export declare function span_words(ms: number): string;
41
- /** `timer <duration> [words] | timer | timer cancel [id|all]` */
41
+ /**
42
+ * `timer`: the declaration.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * commands_register({ declarations: [timerCommand] });
47
+ * ```
48
+ */
49
+ export declare const timerCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
50
+ readonly operands: readonly [{
51
+ readonly name: "duration";
52
+ readonly kind: "word";
53
+ readonly optional: true;
54
+ readonly summary: "How long: 90s, 5m, 1h30m, 2:30, or a bare number of minutes";
55
+ }, {
56
+ readonly name: "words";
57
+ readonly kind: "word";
58
+ readonly optional: true;
59
+ readonly repeat: true;
60
+ readonly summary: "What the chime says";
61
+ }];
62
+ readonly subcommands: {
63
+ readonly cancel: {
64
+ readonly summary: "End the waiting timers, one by id or all of them";
65
+ readonly operands: readonly [{
66
+ readonly name: "which";
67
+ readonly kind: "word";
68
+ readonly optional: true;
69
+ readonly summary: "A chime id, or all (default: every timer)";
70
+ }];
71
+ };
72
+ };
73
+ readonly bare: {
74
+ readonly summary: "Set a chime after a duration, or list the chimes waiting";
75
+ };
76
+ }>;
77
+ /**
78
+ * `timer` over words already split: the declaration's parse and handler.
79
+ *
80
+ * @param args - The words after `timer`.
81
+ * @returns The chime set or listed, or the refusal of a bad line.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * await builtin_timer(['5m', 'tea']);
86
+ * ```
87
+ */
42
88
  export declare function builtin_timer(args: string[]): Promise<CommandEnvelope>;
89
+ /**
90
+ * Ends the waiting timers.
91
+ *
92
+ * @param which - A chime id, `all`, or nothing for every timer.
93
+ * @returns How many were cancelled, or a refusal for a word that is neither an id nor `all`.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * await timerCancel_run('all');
98
+ * ```
99
+ */
100
+ export declare function timerCancel_run(which: string | undefined): Promise<CommandEnvelope>;
101
+ /**
102
+ * Sets a timer, or lists the chimes waiting when no duration is given.
103
+ *
104
+ * @param duration - How long, as `duration_parse` reads it; absent to list.
105
+ * @param words - What the chime says; empty for the default.
106
+ * @returns The chime set or the list, or a refusal for a bad duration.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * await timer_run('5m', ['tea']);
111
+ * ```
112
+ */
113
+ export declare function timer_run(duration: string | undefined, words: readonly string[]): Promise<CommandEnvelope>;
43
114
  /** Reads `+hhmm` (from now) or `hhmm` (a clock time, today or tomorrow) as a delay. */
44
115
  export declare function leave_delay(text: string, now?: Date): number | null;
45
- /** `leave [+hhmm | hhmm] | leave cancel` — BSD's leave: a word five minutes before, one at the time, and one after. */
116
+ /**
117
+ * `leave`: the declaration.
118
+ *
119
+ * @example
120
+ * ```ts
121
+ * commands_register({ declarations: [leaveCommand] });
122
+ * ```
123
+ */
124
+ export declare const leaveCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
125
+ readonly operands: readonly [{
126
+ readonly name: "time";
127
+ readonly kind: "word";
128
+ readonly optional: true;
129
+ readonly summary: "+hhmm from now, or hhmm as a clock time";
130
+ }];
131
+ readonly subcommands: {
132
+ readonly cancel: {
133
+ readonly summary: "Forget the leave";
134
+ };
135
+ };
136
+ readonly bare: {
137
+ readonly summary: "Say when you leave, or set it to a time";
138
+ };
139
+ }>;
140
+ /**
141
+ * `leave` over words already split: the declaration's parse and handler.
142
+ *
143
+ * @param args - The words after `leave`.
144
+ * @returns The alarm set, shown or cancelled, or the refusal of a bad line.
145
+ *
146
+ * @example
147
+ * ```ts
148
+ * await builtin_leave(['+0030']);
149
+ * ```
150
+ */
46
151
  export declare function builtin_leave(args: string[]): Promise<CommandEnvelope>;
152
+ /**
153
+ * Forgets the leave.
154
+ *
155
+ * @returns How many chimes were cancelled.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * await leaveCancel_run();
160
+ * ```
161
+ */
162
+ export declare function leaveCancel_run(): Promise<CommandEnvelope>;
163
+ /**
164
+ * Says when the operator leaves, or sets it to a time.
165
+ *
166
+ * @param time - `+hhmm` or `hhmm`; absent to say when.
167
+ * @returns The alarm, or a refusal for a word that is not a time.
168
+ *
169
+ * @example
170
+ * ```ts
171
+ * await leave_run('1730');
172
+ * ```
173
+ */
174
+ export declare function leave_run(time: string | undefined): Promise<CommandEnvelope>;
47
175
  /** The stopwatch's elapsed time now. */
48
176
  export declare function stopwatch_elapsed(now?: number): number;
49
177
  /** Resets the stopwatch (a test's seam, and `stopwatch reset`). */
50
178
  export declare function stopwatch_reset(): void;
51
- /** `stopwatch [start|stop|lap|reset]` — bare, it shows the time. */
179
+ /**
180
+ * `stopwatch`: the declaration.
181
+ *
182
+ * @example
183
+ * ```ts
184
+ * commands_register({ declarations: [stopwatchCommand] });
185
+ * ```
186
+ */
187
+ export declare const stopwatchCommand: import("../../core/commandDeclaration.js").CommandDeclaration<{
188
+ readonly subcommands: {
189
+ readonly start: {
190
+ readonly summary: "Start the stopwatch, or resume it";
191
+ };
192
+ readonly stop: {
193
+ readonly summary: "Stop it, keeping the time";
194
+ };
195
+ readonly lap: {
196
+ readonly summary: "Mark a lap";
197
+ };
198
+ readonly reset: {
199
+ readonly summary: "Stop it and clear the time and the laps";
200
+ };
201
+ };
202
+ readonly bare: {
203
+ readonly summary: "Show the time and the laps";
204
+ };
205
+ }>;
206
+ /**
207
+ * `stopwatch` over words already split: the declaration's parse and handler.
208
+ *
209
+ * @param args - The words after `stopwatch`.
210
+ * @returns The stopwatch's state, or the refusal of a bad line.
211
+ *
212
+ * @example
213
+ * ```ts
214
+ * await builtin_stopwatch(['start']);
215
+ * ```
216
+ */
52
217
  export declare function builtin_stopwatch(args: string[]): Promise<CommandEnvelope>;
218
+ /**
219
+ * Does one thing to the session's stopwatch.
220
+ *
221
+ * @param verb - `start`, `stop`, `lap`, `reset`, or `show` for the time.
222
+ * @returns The stopwatch's state, or a refusal for a lap while it is stopped.
223
+ *
224
+ * @example
225
+ * ```ts
226
+ * await stopwatch_run('lap');
227
+ * ```
228
+ */
229
+ export declare function stopwatch_run(verb: 'start' | 'stop' | 'lap' | 'reset' | 'show'): Promise<CommandEnvelope>;
@@ -13,6 +13,8 @@
13
13
  import chalk from 'chalk';
14
14
  import { ambient_publish } from '../../core/ambient.js';
15
15
  import { envelope_ok, envelope_error } from '@fnndsc/menu';
16
+ import { command_declare } from '../../core/commandDeclaration.js';
17
+ import { declaredCommand_run } from '../../core/commandParse.js';
16
18
  /** The longest a chime may wait. */
17
19
  export const CHIME_MAX_MS = 24 * 3600 * 1000;
18
20
  const pending = new Map();
@@ -102,25 +104,93 @@ function chimes_render() {
102
104
  return `${chalk.gray('no chimes waiting')}\n`;
103
105
  return list.map((c) => `${String(c.id).padStart(3)} ${c.source.padEnd(5)} in ${span_words(c.at - Date.now()).padEnd(8)} ${c.text}`).join('\n') + '\n';
104
106
  }
105
- /** `timer <duration> [words] | timer | timer cancel [id|all]` */
107
+ /** What a `timer` line may hold: a duration and words, or `cancel`. */
108
+ const TIMER_GRAMMAR = {
109
+ operands: [
110
+ { name: 'duration', kind: 'word', optional: true, summary: 'How long: 90s, 5m, 1h30m, 2:30, or a bare number of minutes' },
111
+ { name: 'words', kind: 'word', optional: true, repeat: true, summary: 'What the chime says' },
112
+ ],
113
+ subcommands: {
114
+ cancel: {
115
+ summary: 'End the waiting timers, one by id or all of them',
116
+ operands: [{ name: 'which', kind: 'word', optional: true, summary: 'A chime id, or all (default: every timer)' }],
117
+ },
118
+ },
119
+ bare: { summary: 'Set a chime after a duration, or list the chimes waiting' },
120
+ };
121
+ /**
122
+ * `timer`: the declaration.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * commands_register({ declarations: [timerCommand] });
127
+ * ```
128
+ */
129
+ export const timerCommand = command_declare({
130
+ name: 'timer',
131
+ grammar: TIMER_GRAMMAR,
132
+ help: {
133
+ summary: 'A chime after a while: timer 5m tea',
134
+ description: "Sets a chime for later — 90s, 5m, 1h30m, 2:30, or a bare number of minutes — with the words to say when it sounds. The chime reaches every surface on the session: ARGUS notes it in the console and speaks it, a remote chell prints it. Nothing waits: the console is yours meanwhile. Bare timer lists the chimes waiting; timer cancel ends them. A chime lives as long as the session's process.",
135
+ examples: ['timer 5m tea', 'timer 25m pomodoro over', 'timer 1:30', 'timer', 'timer cancel 2'],
136
+ },
137
+ handler: async (args) => args.subcommand === 'cancel' ? timerCancel_run(args.operands.which) : timer_run(args.operands.duration, args.operands.words),
138
+ });
139
+ /**
140
+ * `timer` over words already split: the declaration's parse and handler.
141
+ *
142
+ * @param args - The words after `timer`.
143
+ * @returns The chime set or listed, or the refusal of a bad line.
144
+ *
145
+ * @example
146
+ * ```ts
147
+ * await builtin_timer(['5m', 'tea']);
148
+ * ```
149
+ */
106
150
  export async function builtin_timer(args) {
107
- if (args.length === 0)
151
+ return declaredCommand_run(timerCommand, args);
152
+ }
153
+ /**
154
+ * Ends the waiting timers.
155
+ *
156
+ * @param which - A chime id, `all`, or nothing for every timer.
157
+ * @returns How many were cancelled, or a refusal for a word that is neither an id nor `all`.
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * await timerCancel_run('all');
162
+ * ```
163
+ */
164
+ export async function timerCancel_run(which) {
165
+ const target = which === undefined ? 'timer' : which === 'all' ? 'all' : Number(which);
166
+ if (typeof target === 'number' && !Number.isInteger(target))
167
+ return envelope_error('', undefined, 'timer: cancel wants a chime id, or all\n');
168
+ const n = chimes_cancel(target);
169
+ return envelope_ok(`${n} chime${n === 1 ? '' : 's'} cancelled\n`, { kind: 'games.chimes', data: { cancelled: n } });
170
+ }
171
+ /**
172
+ * Sets a timer, or lists the chimes waiting when no duration is given.
173
+ *
174
+ * @param duration - How long, as `duration_parse` reads it; absent to list.
175
+ * @param words - What the chime says; empty for the default.
176
+ * @returns The chime set or the list, or a refusal for a bad duration.
177
+ *
178
+ * @example
179
+ * ```ts
180
+ * await timer_run('5m', ['tea']);
181
+ * ```
182
+ */
183
+ export async function timer_run(duration, words) {
184
+ if (duration === undefined)
108
185
  return envelope_ok(chimes_render(), { kind: 'games.chimes', data: { chimes: chimes_list() } });
109
- if (args[0] === 'cancel') {
110
- const which = args[1] === undefined ? 'timer' : args[1] === 'all' ? 'all' : Number(args[1]);
111
- if (typeof which === 'number' && !Number.isInteger(which))
112
- return envelope_error('', undefined, 'timer: cancel wants a chime id, or all\n');
113
- const n = chimes_cancel(which);
114
- return envelope_ok(`${n} chime${n === 1 ? '' : 's'} cancelled\n`, { kind: 'games.chimes', data: { cancelled: n } });
115
- }
116
- const ms = duration_parse(args[0]);
186
+ const ms = duration_parse(duration);
117
187
  if (ms === null || ms <= 0)
118
- return envelope_error('', undefined, `timer: '${args[0]}' is not a duration (try 90s, 5m, 1h30m, 2:30)\n`);
188
+ return envelope_error('', undefined, `timer: '${duration}' is not a duration (try 90s, 5m, 1h30m, 2:30)\n`);
119
189
  if (ms > CHIME_MAX_MS)
120
190
  return envelope_error('', undefined, 'timer: a day is the most a timer waits\n');
121
- const words = args.slice(1).join(' ') || `timer: ${span_words(ms)} is up`;
122
- const chime = chime_set(ms, words, 'timer');
123
- return envelope_ok(`timer ${chime.id} set: ${span_words(ms)} from now (${new Date(chime.at).toTimeString().slice(0, 8)}) — ${words}\n`, { kind: 'games.chimes', data: { set: chime } });
191
+ const said = words.join(' ') || `timer: ${span_words(ms)} is up`;
192
+ const chime = chime_set(ms, said, 'timer');
193
+ return envelope_ok(`timer ${chime.id} set: ${span_words(ms)} from now (${new Date(chime.at).toTimeString().slice(0, 8)}) — ${said}\n`, { kind: 'games.chimes', data: { set: chime } });
124
194
  }
125
195
  /** Reads `+hhmm` (from now) or `hhmm` (a clock time, today or tomorrow) as a delay. */
126
196
  export function leave_delay(text, now = new Date()) {
@@ -139,22 +209,80 @@ export function leave_delay(text, now = new Date()) {
139
209
  at.setDate(at.getDate() + 1);
140
210
  return at.getTime() - now.getTime();
141
211
  }
142
- /** `leave [+hhmm | hhmm] | leave cancel` — BSD's leave: a word five minutes before, one at the time, and one after. */
212
+ /** What a `leave` line may hold: a time, or `cancel`. */
213
+ const LEAVE_GRAMMAR = {
214
+ operands: [{ name: 'time', kind: 'word', optional: true, summary: '+hhmm from now, or hhmm as a clock time' }],
215
+ subcommands: { cancel: { summary: 'Forget the leave' } },
216
+ bare: { summary: 'Say when you leave, or set it to a time' },
217
+ };
218
+ /**
219
+ * `leave`: the declaration.
220
+ *
221
+ * @example
222
+ * ```ts
223
+ * commands_register({ declarations: [leaveCommand] });
224
+ * ```
225
+ */
226
+ export const leaveCommand = command_declare({
227
+ name: 'leave',
228
+ grammar: LEAVE_GRAMMAR,
229
+ help: {
230
+ summary: 'A word when it is time to go home: leave +0030',
231
+ description: "BSD's leave: tell it when you must leave — +hhmm from now, or a clock time — and it says so five minutes before, at the time, and a minute after. Bare leave says when; leave cancel forgets it.",
232
+ examples: ['leave +0030', 'leave 1730', 'leave', 'leave cancel'],
233
+ },
234
+ handler: async (args) => args.subcommand === 'cancel' ? leaveCancel_run() : leave_run(args.operands.time),
235
+ });
236
+ /**
237
+ * `leave` over words already split: the declaration's parse and handler.
238
+ *
239
+ * @param args - The words after `leave`.
240
+ * @returns The alarm set, shown or cancelled, or the refusal of a bad line.
241
+ *
242
+ * @example
243
+ * ```ts
244
+ * await builtin_leave(['+0030']);
245
+ * ```
246
+ */
143
247
  export async function builtin_leave(args) {
144
- if (args.length === 0) {
248
+ return declaredCommand_run(leaveCommand, args);
249
+ }
250
+ /**
251
+ * Forgets the leave.
252
+ *
253
+ * @returns How many chimes were cancelled.
254
+ *
255
+ * @example
256
+ * ```ts
257
+ * await leaveCancel_run();
258
+ * ```
259
+ */
260
+ export async function leaveCancel_run() {
261
+ const n = chimes_cancel('leave');
262
+ return envelope_ok(`${n === 0 ? 'no leave was set' : 'leave cancelled'}\n`, { kind: 'games.chimes', data: { cancelled: n } });
263
+ }
264
+ /**
265
+ * Says when the operator leaves, or sets it to a time.
266
+ *
267
+ * @param time - `+hhmm` or `hhmm`; absent to say when.
268
+ * @returns The alarm, or a refusal for a word that is not a time.
269
+ *
270
+ * @example
271
+ * ```ts
272
+ * await leave_run('1730');
273
+ * ```
274
+ */
275
+ export async function leave_run(time) {
276
+ if (time === undefined) {
145
277
  const mine = chimes_list().filter((c) => c.source === 'leave');
146
278
  if (mine.length === 0)
147
279
  return envelope_ok(`${chalk.gray('no leave set (leave +0030, or leave 1730)')}\n`, { kind: 'games.chimes', data: { chimes: [] } });
148
280
  const last = mine[mine.length - 1];
149
281
  return envelope_ok(`leaving at ${new Date(last.at - 60_000).toTimeString().slice(0, 5)} — in ${span_words(last.at - 60_000 - Date.now())}\n`, { kind: 'games.chimes', data: { chimes: mine } });
150
282
  }
151
- if (args[0] === 'cancel') {
152
- const n = chimes_cancel('leave');
153
- return envelope_ok(`${n === 0 ? 'no leave was set' : 'leave cancelled'}\n`, { kind: 'games.chimes', data: { cancelled: n } });
154
- }
155
- const delay = leave_delay(args[0]);
283
+ const delay = leave_delay(time);
156
284
  if (delay === null)
157
- return envelope_error('', undefined, `leave: '${args[0]}' is not a time (leave +hhmm from now, or leave hhmm)\n`);
285
+ return envelope_error('', undefined, `leave: '${time}' is not a time (leave +hhmm from now, or leave hhmm)\n`);
158
286
  chimes_cancel('leave');
159
287
  const at = new Date(Date.now() + delay);
160
288
  if (delay > 5 * 60_000)
@@ -184,9 +312,60 @@ const clock_words = (ms) => {
184
312
  const tenths = Math.floor((ms % 1000) / 100);
185
313
  return `${h > 0 ? `${h}:` : ''}${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}.${tenths}`;
186
314
  };
187
- /** `stopwatch [start|stop|lap|reset]` — bare, it shows the time. */
315
+ /** What a `stopwatch` line may hold: one of its four words, or none to show the time. */
316
+ const STOPWATCH_GRAMMAR = {
317
+ subcommands: {
318
+ start: { summary: 'Start the stopwatch, or resume it' },
319
+ stop: { summary: 'Stop it, keeping the time' },
320
+ lap: { summary: 'Mark a lap' },
321
+ reset: { summary: 'Stop it and clear the time and the laps' },
322
+ },
323
+ bare: { summary: 'Show the time and the laps' },
324
+ };
325
+ /**
326
+ * `stopwatch`: the declaration.
327
+ *
328
+ * @example
329
+ * ```ts
330
+ * commands_register({ declarations: [stopwatchCommand] });
331
+ * ```
332
+ */
333
+ export const stopwatchCommand = command_declare({
334
+ name: 'stopwatch',
335
+ grammar: STOPWATCH_GRAMMAR,
336
+ help: {
337
+ summary: 'A stopwatch, with laps',
338
+ description: 'One stopwatch per session: start, stop (and start again to resume), lap, reset. Bare stopwatch shows the time and the laps.',
339
+ examples: ['stopwatch start', 'stopwatch lap', 'stopwatch', 'stopwatch stop'],
340
+ },
341
+ handler: async (args) => stopwatch_run(args.subcommand ?? 'show'),
342
+ });
343
+ /**
344
+ * `stopwatch` over words already split: the declaration's parse and handler.
345
+ *
346
+ * @param args - The words after `stopwatch`.
347
+ * @returns The stopwatch's state, or the refusal of a bad line.
348
+ *
349
+ * @example
350
+ * ```ts
351
+ * await builtin_stopwatch(['start']);
352
+ * ```
353
+ */
188
354
  export async function builtin_stopwatch(args) {
189
- const verb = args[0] ?? 'show';
355
+ return declaredCommand_run(stopwatchCommand, args);
356
+ }
357
+ /**
358
+ * Does one thing to the session's stopwatch.
359
+ *
360
+ * @param verb - `start`, `stop`, `lap`, `reset`, or `show` for the time.
361
+ * @returns The stopwatch's state, or a refusal for a lap while it is stopped.
362
+ *
363
+ * @example
364
+ * ```ts
365
+ * await stopwatch_run('lap');
366
+ * ```
367
+ */
368
+ export async function stopwatch_run(verb) {
190
369
  const now = Date.now();
191
370
  const running = watch.startedAt !== null;
192
371
  if (verb === 'start') {
@@ -214,8 +393,6 @@ export async function builtin_stopwatch(args) {
214
393
  stopwatch_reset();
215
394
  return envelope_ok('stopwatch reset\n', { kind: 'games.stopwatch', data: { elapsedMs: 0, running: false } });
216
395
  }
217
- if (verb !== 'show')
218
- return envelope_error('', undefined, `stopwatch: unknown word '${verb}' (start, stop, lap, reset)\n`);
219
396
  const elapsed = stopwatch_elapsed(now);
220
397
  const laps = watch.laps.map((l, i) => ` lap ${i + 1} ${clock_words(l - (watch.laps[i - 1] ?? 0))}`).join('\n');
221
398
  return envelope_ok(`${clock_words(elapsed)}${running ? ' (running)' : watch.accumulated > 0 ? ' (stopped)' : ''}\n${laps ? `${laps}\n` : ''}`, { kind: 'games.stopwatch', data: { elapsedMs: elapsed, laps: watch.laps, running } });
@@ -1 +1 @@
1
- {"version":3,"file":"chimes.js","sourceRoot":"","sources":["../../../src/builtins/games/chimes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chimes.js","sourceRoot":"","sources":["../../../src/builtins/games/chimes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { CommandEnvelope } from '@fnndsc/menu';
2
+ import { type CommandDeclaration } from '../../core/commandDeclaration.js';
2
3
  /** Round trips `ping` makes when not told. */
3
4
  export declare const PING_COUNT: number;
4
5
  /** The most round trips `ping` makes however asked. */
@@ -27,7 +28,104 @@ export type PingFetch = (url: string, init: {
27
28
  export declare function ping_run(url: string, count: number, fetchFn: PingFetch, onSample?: (s: PingSample) => void): Promise<PingSample[]>;
28
29
  /** The summary line, as ping prints it. */
29
30
  export declare function ping_summary(samples: PingSample[]): string;
30
- /** `ping [-c N]`: round trips to CUBE. */
31
+ /** What a `ping` line may hold: how many round trips, and the one place it pings. */
32
+ declare const PING_GRAMMAR: {
33
+ readonly operands: readonly [{
34
+ readonly name: "target";
35
+ readonly kind: "enum";
36
+ readonly values: readonly ["cube"];
37
+ readonly optional: true;
38
+ readonly summary: "What to ping: only cube";
39
+ }];
40
+ readonly options: {
41
+ readonly count: {
42
+ readonly short: "c";
43
+ readonly summary: `Round trips to make (default ${number}, at most ${number})`;
44
+ readonly value: {
45
+ readonly name: "N";
46
+ readonly kind: "int";
47
+ readonly min: 1;
48
+ };
49
+ };
50
+ };
51
+ };
52
+ /**
53
+ * Declares `ping` over a fetch (a test hands in its own).
54
+ *
55
+ * @param fetchFn - The fetch the command round-trips with.
56
+ * @returns The declaration.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const command = pingCommand_make(fakeFetch);
61
+ * ```
62
+ */
63
+ export declare function pingCommand_make(fetchFn: PingFetch): CommandDeclaration<typeof PING_GRAMMAR>;
64
+ /**
65
+ * `ping [-c N] [cube]`: the declaration.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * commands_register({ declarations: [pingCommand] });
70
+ * ```
71
+ */
72
+ export declare const pingCommand: CommandDeclaration<typeof PING_GRAMMAR>;
73
+ /**
74
+ * `ping` over words already split: the declaration's parse and handler.
75
+ *
76
+ * @param args - The words after `ping`.
77
+ * @param fetchFn - The fetch to use.
78
+ * @returns The round trips, or the refusal of a bad line.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * await builtin_ping(['-c', '2']);
83
+ * ```
84
+ */
31
85
  export declare function builtin_ping(args: string[], fetchFn?: PingFetch): Promise<CommandEnvelope>;
32
- /** `chrisfetch`: the brain beside the session's facts, neofetch style. */
33
- export declare function builtin_chrisfetch(_args: string[]): Promise<CommandEnvelope>;
86
+ /**
87
+ * Round-trips to the session's CUBE and sums up.
88
+ *
89
+ * @param asked - How many round trips were asked for; absent for the default.
90
+ * @param fetchFn - The fetch to use.
91
+ * @returns The samples and their summary, or a refusal when not connected.
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * await ping_command(3, fetch);
96
+ * ```
97
+ */
98
+ export declare function ping_command(asked: number | undefined, fetchFn: PingFetch): Promise<CommandEnvelope>;
99
+ /**
100
+ * `chrisfetch`: the declaration.
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * commands_register({ declarations: [chrisfetchCommand] });
105
+ * ```
106
+ */
107
+ export declare const chrisfetchCommand: CommandDeclaration<{}>;
108
+ /**
109
+ * `chrisfetch` over words already split: the declaration's parse and handler.
110
+ *
111
+ * @param args - The words after `chrisfetch`: none.
112
+ * @returns The brain beside the facts, or the refusal of a bad line.
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * await builtin_chrisfetch([]);
117
+ * ```
118
+ */
119
+ export declare function builtin_chrisfetch(args: string[]): Promise<CommandEnvelope>;
120
+ /**
121
+ * The brain beside the session's facts, neofetch style.
122
+ *
123
+ * @returns The brain and the facts.
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * await chrisfetch_run();
128
+ * ```
129
+ */
130
+ export declare function chrisfetch_run(): Promise<CommandEnvelope>;
131
+ export {};