@fnndsc/chell 4.3.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/builtins/sys/prompt.js +2 -2
  2. package/dist/builtins/sys/prompt.js.map +1 -1
  3. package/dist/chell.d.ts +2 -1
  4. package/dist/chell.js +2 -1
  5. package/dist/chell.js.map +1 -1
  6. package/dist/config/settings.d.ts +4 -2
  7. package/dist/config/settings.js +7 -2
  8. package/dist/config/settings.js.map +1 -1
  9. package/dist/core/boot.d.ts +3 -1
  10. package/dist/core/boot.js +93 -154
  11. package/dist/core/boot.js.map +1 -1
  12. package/dist/core/cli.d.ts +3 -1
  13. package/dist/core/cli.js +11 -1
  14. package/dist/core/cli.js.map +1 -1
  15. package/dist/core/cliSurface.d.ts +26 -0
  16. package/dist/core/cliSurface.js +152 -0
  17. package/dist/core/cliSurface.js.map +1 -0
  18. package/dist/core/progressRenderer.d.ts +42 -0
  19. package/dist/core/progressRenderer.js +176 -0
  20. package/dist/core/progressRenderer.js.map +1 -0
  21. package/dist/core/prompt/session.d.ts +45 -0
  22. package/dist/core/prompt/session.js +48 -0
  23. package/dist/core/prompt/session.js.map +1 -0
  24. package/dist/core/repl.d.ts +25 -5
  25. package/dist/core/repl.js +58 -45
  26. package/dist/core/repl.js.map +1 -1
  27. package/dist/core/surfaceDispatch.d.ts +21 -0
  28. package/dist/core/surfaceDispatch.js +33 -0
  29. package/dist/core/surfaceDispatch.js.map +1 -0
  30. package/dist/core/warnings.d.ts +14 -0
  31. package/dist/core/warnings.js +25 -0
  32. package/dist/core/warnings.js.map +1 -0
  33. package/dist/index.js +2 -12
  34. package/dist/index.js.map +1 -1
  35. package/dist/remote/client.d.ts +6 -0
  36. package/dist/remote/client.js +71 -0
  37. package/dist/remote/client.js.map +1 -0
  38. package/dist/remote/remoteEngine.d.ts +125 -0
  39. package/dist/remote/remoteEngine.js +286 -0
  40. package/dist/remote/remoteEngine.js.map +1 -0
  41. package/package.json +5 -3
  42. package/dist/builtins/debug.d.ts +0 -6
  43. package/dist/builtins/debug.js +0 -47
  44. package/dist/builtins/debug.js.map +0 -1
  45. package/dist/builtins/executable.d.ts +0 -22
  46. package/dist/builtins/executable.js +0 -115
  47. package/dist/builtins/executable.js.map +0 -1
  48. package/dist/builtins/fs/cat.d.ts +0 -16
  49. package/dist/builtins/fs/cat.js +0 -249
  50. package/dist/builtins/fs/cat.js.map +0 -1
  51. package/dist/builtins/fs/cd.d.ts +0 -41
  52. package/dist/builtins/fs/cd.js +0 -178
  53. package/dist/builtins/fs/cd.js.map +0 -1
  54. package/dist/builtins/fs/cp.d.ts +0 -7
  55. package/dist/builtins/fs/cp.js +0 -73
  56. package/dist/builtins/fs/cp.js.map +0 -1
  57. package/dist/builtins/fs/download.d.ts +0 -6
  58. package/dist/builtins/fs/download.js +0 -41
  59. package/dist/builtins/fs/download.js.map +0 -1
  60. package/dist/builtins/fs/du.d.ts +0 -58
  61. package/dist/builtins/fs/du.js +0 -210
  62. package/dist/builtins/fs/du.js.map +0 -1
  63. package/dist/builtins/fs/edit.d.ts +0 -7
  64. package/dist/builtins/fs/edit.js +0 -86
  65. package/dist/builtins/fs/edit.js.map +0 -1
  66. package/dist/builtins/fs/ls.d.ts +0 -8
  67. package/dist/builtins/fs/ls.js +0 -68
  68. package/dist/builtins/fs/ls.js.map +0 -1
  69. package/dist/builtins/fs/mkdir.d.ts +0 -6
  70. package/dist/builtins/fs/mkdir.js +0 -38
  71. package/dist/builtins/fs/mkdir.js.map +0 -1
  72. package/dist/builtins/fs/mv.d.ts +0 -7
  73. package/dist/builtins/fs/mv.js +0 -75
  74. package/dist/builtins/fs/mv.js.map +0 -1
  75. package/dist/builtins/fs/pull.args.d.ts +0 -22
  76. package/dist/builtins/fs/pull.args.js +0 -30
  77. package/dist/builtins/fs/pull.args.js.map +0 -1
  78. package/dist/builtins/fs/pull.d.ts +0 -26
  79. package/dist/builtins/fs/pull.js +0 -417
  80. package/dist/builtins/fs/pull.js.map +0 -1
  81. package/dist/builtins/fs/pwd.d.ts +0 -7
  82. package/dist/builtins/fs/pwd.js +0 -75
  83. package/dist/builtins/fs/pwd.js.map +0 -1
  84. package/dist/builtins/fs/rm.d.ts +0 -31
  85. package/dist/builtins/fs/rm.js +0 -148
  86. package/dist/builtins/fs/rm.js.map +0 -1
  87. package/dist/builtins/fs/touch.d.ts +0 -6
  88. package/dist/builtins/fs/touch.js +0 -64
  89. package/dist/builtins/fs/touch.js.map +0 -1
  90. package/dist/builtins/fs/tree.d.ts +0 -15
  91. package/dist/builtins/fs/tree.js +0 -84
  92. package/dist/builtins/fs/tree.js.map +0 -1
  93. package/dist/builtins/fs/upload.d.ts +0 -6
  94. package/dist/builtins/fs/upload.js +0 -45
  95. package/dist/builtins/fs/upload.js.map +0 -1
  96. package/dist/builtins/help.d.ts +0 -74
  97. package/dist/builtins/help.js +0 -1217
  98. package/dist/builtins/help.js.map +0 -1
  99. package/dist/builtins/index.d.ts +0 -45
  100. package/dist/builtins/index.js +0 -45
  101. package/dist/builtins/index.js.map +0 -1
  102. package/dist/builtins/net/connect.d.ts +0 -7
  103. package/dist/builtins/net/connect.js +0 -42
  104. package/dist/builtins/net/connect.js.map +0 -1
  105. package/dist/builtins/net/cubepath.d.ts +0 -18
  106. package/dist/builtins/net/cubepath.js +0 -102
  107. package/dist/builtins/net/cubepath.js.map +0 -1
  108. package/dist/builtins/net/logout.d.ts +0 -6
  109. package/dist/builtins/net/logout.js +0 -24
  110. package/dist/builtins/net/logout.js.map +0 -1
  111. package/dist/builtins/net/pacs.d.ts +0 -24
  112. package/dist/builtins/net/pacs.js +0 -121
  113. package/dist/builtins/net/pacs.js.map +0 -1
  114. package/dist/builtins/net/pacsUtils.d.ts +0 -85
  115. package/dist/builtins/net/pacsUtils.js +0 -184
  116. package/dist/builtins/net/pacsUtils.js.map +0 -1
  117. package/dist/builtins/net/query.d.ts +0 -60
  118. package/dist/builtins/net/query.js +0 -324
  119. package/dist/builtins/net/query.js.map +0 -1
  120. package/dist/builtins/parametersofplugin.d.ts +0 -13
  121. package/dist/builtins/parametersofplugin.js +0 -43
  122. package/dist/builtins/parametersofplugin.js.map +0 -1
  123. package/dist/builtins/pluginExecute.d.ts +0 -27
  124. package/dist/builtins/pluginExecute.js +0 -165
  125. package/dist/builtins/pluginExecute.js.map +0 -1
  126. package/dist/builtins/proc.d.ts +0 -6
  127. package/dist/builtins/proc.helpers.d.ts +0 -68
  128. package/dist/builtins/proc.helpers.js +0 -102
  129. package/dist/builtins/proc.helpers.js.map +0 -1
  130. package/dist/builtins/proc.js +0 -289
  131. package/dist/builtins/proc.js.map +0 -1
  132. package/dist/builtins/res/compute.d.ts +0 -6
  133. package/dist/builtins/res/compute.js +0 -55
  134. package/dist/builtins/res/compute.js.map +0 -1
  135. package/dist/builtins/res/feed.d.ts +0 -6
  136. package/dist/builtins/res/feed.js +0 -244
  137. package/dist/builtins/res/feed.js.map +0 -1
  138. package/dist/builtins/res/feed.notes.d.ts +0 -28
  139. package/dist/builtins/res/feed.notes.js +0 -24
  140. package/dist/builtins/res/feed.notes.js.map +0 -1
  141. package/dist/builtins/res/files.d.ts +0 -18
  142. package/dist/builtins/res/files.js +0 -85
  143. package/dist/builtins/res/files.js.map +0 -1
  144. package/dist/builtins/res/group.d.ts +0 -6
  145. package/dist/builtins/res/group.js +0 -54
  146. package/dist/builtins/res/group.js.map +0 -1
  147. package/dist/builtins/res/pipeline.args.d.ts +0 -22
  148. package/dist/builtins/res/pipeline.args.js +0 -28
  149. package/dist/builtins/res/pipeline.args.js.map +0 -1
  150. package/dist/builtins/res/pipeline.d.ts +0 -20
  151. package/dist/builtins/res/pipeline.js +0 -252
  152. package/dist/builtins/res/pipeline.js.map +0 -1
  153. package/dist/builtins/res/plugin.d.ts +0 -13
  154. package/dist/builtins/res/plugin.js +0 -140
  155. package/dist/builtins/res/plugin.js.map +0 -1
  156. package/dist/builtins/res/plugininstance.d.ts +0 -6
  157. package/dist/builtins/res/plugininstance.js +0 -53
  158. package/dist/builtins/res/plugininstance.js.map +0 -1
  159. package/dist/builtins/res/pluginmeta.d.ts +0 -6
  160. package/dist/builtins/res/pluginmeta.js +0 -53
  161. package/dist/builtins/res/pluginmeta.js.map +0 -1
  162. package/dist/builtins/res/tag.d.ts +0 -6
  163. package/dist/builtins/res/tag.js +0 -53
  164. package/dist/builtins/res/tag.js.map +0 -1
  165. package/dist/builtins/res/workflow.d.ts +0 -6
  166. package/dist/builtins/res/workflow.js +0 -53
  167. package/dist/builtins/res/workflow.js.map +0 -1
  168. package/dist/builtins/store.d.ts +0 -6
  169. package/dist/builtins/store.js +0 -108
  170. package/dist/builtins/store.js.map +0 -1
  171. package/dist/builtins/sys/context.d.ts +0 -6
  172. package/dist/builtins/sys/context.js +0 -50
  173. package/dist/builtins/sys/context.js.map +0 -1
  174. package/dist/builtins/sys/physicalmode.d.ts +0 -6
  175. package/dist/builtins/sys/physicalmode.js +0 -41
  176. package/dist/builtins/sys/physicalmode.js.map +0 -1
  177. package/dist/builtins/sys/timing.d.ts +0 -6
  178. package/dist/builtins/sys/timing.js +0 -41
  179. package/dist/builtins/sys/timing.js.map +0 -1
  180. package/dist/builtins/sys/whoami.d.ts +0 -12
  181. package/dist/builtins/sys/whoami.js +0 -37
  182. package/dist/builtins/sys/whoami.js.map +0 -1
  183. package/dist/builtins/utils.d.ts +0 -55
  184. package/dist/builtins/utils.js +0 -145
  185. package/dist/builtins/utils.js.map +0 -1
  186. package/dist/builtins/wildcard.d.ts +0 -26
  187. package/dist/builtins/wildcard.js +0 -120
  188. package/dist/builtins/wildcard.js.map +0 -1
  189. package/dist/command-keys.d.ts +0 -8
  190. package/dist/command-keys.js +0 -32
  191. package/dist/command-keys.js.map +0 -1
  192. package/dist/core/dispatch.d.ts +0 -48
  193. package/dist/core/dispatch.js +0 -544
  194. package/dist/core/dispatch.js.map +0 -1
  195. package/dist/core/preprocess.d.ts +0 -46
  196. package/dist/core/preprocess.js +0 -146
  197. package/dist/core/preprocess.js.map +0 -1
  198. package/dist/core/question.d.ts +0 -34
  199. package/dist/core/question.js +0 -76
  200. package/dist/core/question.js.map +0 -1
  201. package/dist/lib/completer/index.d.ts +0 -15
  202. package/dist/lib/completer/index.js +0 -212
  203. package/dist/lib/completer/index.js.map +0 -1
  204. package/dist/lib/completer/pathComplete.helpers.d.ts +0 -22
  205. package/dist/lib/completer/pathComplete.helpers.js +0 -49
  206. package/dist/lib/completer/pathComplete.helpers.js.map +0 -1
  207. package/dist/lib/parser.d.ts +0 -13
  208. package/dist/lib/parser.js +0 -52
  209. package/dist/lib/parser.js.map +0 -1
  210. package/dist/lib/pipe.d.ts +0 -11
  211. package/dist/lib/pipe.js +0 -90
  212. package/dist/lib/pipe.js.map +0 -1
  213. package/dist/lib/prefetch.d.ts +0 -25
  214. package/dist/lib/prefetch.js +0 -64
  215. package/dist/lib/prefetch.js.map +0 -1
  216. package/dist/lib/semicolonParser.d.ts +0 -22
  217. package/dist/lib/semicolonParser.js +0 -53
  218. package/dist/lib/semicolonParser.js.map +0 -1
  219. package/dist/lib/spinner.d.ts +0 -23
  220. package/dist/lib/spinner.js +0 -70
  221. package/dist/lib/spinner.js.map +0 -1
  222. package/dist/lib/vfs/providers/static.d.ts +0 -65
  223. package/dist/lib/vfs/providers/static.js +0 -164
  224. package/dist/lib/vfs/providers/static.js.map +0 -1
  225. package/dist/lib/vfs/providers/static_content.d.ts +0 -27
  226. package/dist/lib/vfs/providers/static_content.js +0 -180
  227. package/dist/lib/vfs/providers/static_content.js.map +0 -1
  228. package/dist/lib/vfs/vfs.d.ts +0 -59
  229. package/dist/lib/vfs/vfs.js +0 -198
  230. package/dist/lib/vfs/vfs.js.map +0 -1
  231. package/dist/session/index.d.ts +0 -76
  232. package/dist/session/index.js +0 -120
  233. package/dist/session/index.js.map +0 -1
@@ -1,58 +0,0 @@
1
- import { ParsedArgs } from '../utils.js';
2
- import { type ScanRecord } from '@fnndsc/chili/path/pathCommand.js';
3
- /**
4
- * Parsed flags controlling `du` output.
5
- */
6
- export interface DuOptions {
7
- humanReadable: boolean;
8
- summarize: boolean;
9
- showAll: boolean;
10
- showTotal: boolean;
11
- separateDirs: boolean;
12
- maxDepth: number | undefined;
13
- }
14
- /**
15
- * Formats a byte count for `du` output: human-readable string or KB integer,
16
- * right-padded to 12 characters for column alignment.
17
- *
18
- * @param bytes - Raw byte count.
19
- * @param humanReadable - If true, format as human-readable (e.g. `1.2M`).
20
- * @returns Right-aligned size string.
21
- */
22
- export declare function duSize_format(bytes: number, humanReadable: boolean): string;
23
- /**
24
- * Extracts `du` flags from parsed command arguments.
25
- *
26
- * @param parsed - The parsed command arguments.
27
- * @returns The resolved du options.
28
- */
29
- export declare function duOptions_parse(parsed: ParsedArgs): DuOptions;
30
- /**
31
- * Accumulates per-directory sizes from a scan result, attributing each file's
32
- * size to its ancestor directories up to (and including) the target path.
33
- *
34
- * @param scanResult - The recursive scan result.
35
- * @param targetPath - The directory being measured.
36
- * @param opts - The du options (separateDirs / showAll affect attribution).
37
- * @returns A map of directory path to accumulated size.
38
- */
39
- export declare function dirSizes_compute(scanResult: ScanRecord, targetPath: string, opts: DuOptions): Map<string, number>;
40
- /**
41
- * Displays disk usage statistics for ChRIS filesystem directories.
42
- * Mimics standard Linux du command behavior and flags.
43
- * Uses chili's scan_do machinery for recursive filesystem traversal.
44
- *
45
- * @param args - Command line arguments (optional path and flags).
46
- * @returns A Promise that resolves when disk usage is displayed.
47
- *
48
- * @example
49
- * ```
50
- * du # Disk usage of current directory
51
- * du -h # Human-readable sizes
52
- * du -s /home/user/data # Summary only
53
- * du -a # Show all files, not just directories
54
- * du -c # Show grand total
55
- * du -d 2 # Max depth of 2 levels
56
- * ```
57
- */
58
- export declare function builtin_du(args: string[]): Promise<void>;
@@ -1,210 +0,0 @@
1
- /**
2
- * @file Builtin du command.
3
- * Displays disk usage.
4
- */
5
- import chalk from 'chalk';
6
- import path from 'path';
7
- import { commandArgs_process, path_resolve } from '../utils.js';
8
- import { session } from '../../session/index.js';
9
- import { vfs } from '../../lib/vfs/vfs.js';
10
- import { spinner } from '../../lib/spinner.js';
11
- import { scan_do } from '@fnndsc/chili/path/pathCommand.js';
12
- import { bytes_format } from '@fnndsc/chili/commands/fs/upload.js';
13
- /**
14
- * Formats a byte count for `du` output: human-readable string or KB integer,
15
- * right-padded to 12 characters for column alignment.
16
- *
17
- * @param bytes - Raw byte count.
18
- * @param humanReadable - If true, format as human-readable (e.g. `1.2M`).
19
- * @returns Right-aligned size string.
20
- */
21
- export function duSize_format(bytes, humanReadable) {
22
- const formatted = humanReadable
23
- ? bytes_format(bytes)
24
- : Math.ceil(bytes / 1024).toString();
25
- return formatted.padStart(12, ' ');
26
- }
27
- /**
28
- * Extracts `du` flags from parsed command arguments.
29
- *
30
- * @param parsed - The parsed command arguments.
31
- * @returns The resolved du options.
32
- */
33
- export function duOptions_parse(parsed) {
34
- const maxDepth = parsed['d']
35
- ? parseInt(String(parsed['d']), 10)
36
- : parsed['max-depth']
37
- ? parseInt(String(parsed['max-depth']), 10)
38
- : undefined;
39
- return {
40
- humanReadable: !!parsed['h'] || !!parsed['human-readable'],
41
- summarize: !!parsed['s'] || !!parsed['summarize'],
42
- showAll: !!parsed['a'] || !!parsed['all'],
43
- showTotal: !!parsed['c'] || !!parsed['total'],
44
- separateDirs: !!parsed['S'] || !!parsed['separate-dirs'],
45
- maxDepth,
46
- };
47
- }
48
- /**
49
- * Resolves whether a target path is a directory or a file (with size).
50
- *
51
- * @param targetPath - The resolved ChRIS path to stat.
52
- * @returns A TargetStat on success, or an error message string on failure.
53
- */
54
- async function targetStat_resolve(targetPath) {
55
- try {
56
- const result = await vfs.data_get(targetPath, { directory: true });
57
- if (result.ok && result.value.length > 0) {
58
- const item = result.value[0];
59
- if (item.type === 'dir' || item.type === 'vfs') {
60
- return { isDirectory: true, fileSize: 0 };
61
- }
62
- return { isDirectory: false, fileSize: item.size || 0 };
63
- }
64
- return `du: cannot access '${targetPath}': No such file or directory`;
65
- }
66
- catch (e) {
67
- return `du: cannot access '${targetPath}': ${e}`;
68
- }
69
- }
70
- /**
71
- * Accumulates per-directory sizes from a scan result, attributing each file's
72
- * size to its ancestor directories up to (and including) the target path.
73
- *
74
- * @param scanResult - The recursive scan result.
75
- * @param targetPath - The directory being measured.
76
- * @param opts - The du options (separateDirs / showAll affect attribution).
77
- * @returns A map of directory path to accumulated size.
78
- */
79
- export function dirSizes_compute(scanResult, targetPath, opts) {
80
- const dirSizes = new Map();
81
- scanResult.fileInfo.forEach((fileInfo) => {
82
- const filePath = fileInfo.chrisPath;
83
- const fSize = fileInfo.size;
84
- if (fileInfo.isDirectory) {
85
- if (!dirSizes.has(filePath)) {
86
- dirSizes.set(filePath, 0);
87
- }
88
- return;
89
- }
90
- // File: add to its parent directory and all ancestor directories,
91
- // but only up to the targetPath currently being scanned.
92
- let currentPath = path.posix.dirname(filePath);
93
- while (currentPath && currentPath.startsWith(targetPath)) {
94
- const currentSize = dirSizes.get(currentPath) || 0;
95
- dirSizes.set(currentPath, currentSize + fSize);
96
- if (currentPath === targetPath)
97
- break;
98
- if (opts.separateDirs)
99
- break;
100
- currentPath = path.posix.dirname(currentPath);
101
- }
102
- if (opts.showAll) {
103
- dirSizes.set(filePath, fSize);
104
- }
105
- });
106
- // Ensure the target directory itself exists in the map with total size.
107
- if (!dirSizes.has(targetPath)) {
108
- dirSizes.set(targetPath, scanResult.totalSize);
109
- }
110
- return dirSizes;
111
- }
112
- /**
113
- * Renders accumulated directory sizes to stdout, honouring summary and
114
- * max-depth options.
115
- *
116
- * @param dirSizes - Map of directory path to size.
117
- * @param targetPath - The directory being measured.
118
- * @param opts - The du options.
119
- */
120
- function dirUsage_render(dirSizes, targetPath, opts) {
121
- if (opts.summarize) {
122
- const size = dirSizes.get(targetPath) || 0;
123
- console.log(`${duSize_format(size, opts.humanReadable)}\t${targetPath}`);
124
- return;
125
- }
126
- const entries = Array.from(dirSizes.entries());
127
- entries.sort((a, b) => a[0].localeCompare(b[0]));
128
- for (const [dirPath, dirSize] of entries) {
129
- if (opts.maxDepth !== undefined) {
130
- const rel = path.posix.relative(targetPath, dirPath);
131
- const depth = rel === '' ? 0 : rel.split('/').length;
132
- if (depth > opts.maxDepth)
133
- continue;
134
- }
135
- console.log(`${duSize_format(dirSize, opts.humanReadable)}\t${dirPath}`);
136
- }
137
- }
138
- /**
139
- * Displays disk usage statistics for ChRIS filesystem directories.
140
- * Mimics standard Linux du command behavior and flags.
141
- * Uses chili's scan_do machinery for recursive filesystem traversal.
142
- *
143
- * @param args - Command line arguments (optional path and flags).
144
- * @returns A Promise that resolves when disk usage is displayed.
145
- *
146
- * @example
147
- * ```
148
- * du # Disk usage of current directory
149
- * du -h # Human-readable sizes
150
- * du -s /home/user/data # Summary only
151
- * du -a # Show all files, not just directories
152
- * du -c # Show grand total
153
- * du -d 2 # Max depth of 2 levels
154
- * ```
155
- */
156
- export async function builtin_du(args) {
157
- const parsed = commandArgs_process(args);
158
- const opts = duOptions_parse(parsed);
159
- const pathArgs = parsed._;
160
- const originalFolder = await session.getCWD();
161
- const rawTargets = pathArgs.length > 0 ? pathArgs : ['.'];
162
- const resolvedTargets = [];
163
- for (const raw of rawTargets) {
164
- resolvedTargets.push(await path_resolve(raw));
165
- }
166
- let grandTotal = 0;
167
- try {
168
- for (const targetPath of resolvedTargets) {
169
- const argLabel = path.basename(targetPath);
170
- spinner.start(`Scanning ${argLabel}...`);
171
- const stat = await targetStat_resolve(targetPath);
172
- if (typeof stat === 'string') {
173
- spinner.stop();
174
- console.error(chalk.red(stat));
175
- continue;
176
- }
177
- if (!stat.isDirectory) {
178
- grandTotal += stat.fileSize;
179
- spinner.stop();
180
- console.log(`${duSize_format(stat.fileSize, opts.humanReadable)}\t${targetPath}`);
181
- continue;
182
- }
183
- await session.setCWD(targetPath);
184
- const scanOptions = {
185
- silent: true,
186
- tree: false,
187
- follow: false,
188
- dirsOnly: false,
189
- };
190
- const scanResult = await scan_do(scanOptions);
191
- await session.setCWD(originalFolder);
192
- if (!scanResult) {
193
- spinner.stop();
194
- continue;
195
- }
196
- const dirSizes = dirSizes_compute(scanResult, targetPath, opts);
197
- grandTotal += scanResult.totalSize;
198
- spinner.stop();
199
- dirUsage_render(dirSizes, targetPath, opts);
200
- }
201
- if (opts.showTotal && rawTargets.length > 0) {
202
- console.log(`${duSize_format(grandTotal, opts.humanReadable)}\ttotal`);
203
- }
204
- }
205
- finally {
206
- spinner.stop();
207
- await session.setCWD(originalFolder);
208
- }
209
- }
210
- //# sourceMappingURL=du.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"du.js","sourceRoot":"","sources":["../../../src/builtins/fs/du.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Opens a ChRIS file in $EDITOR. On save, replaces the original via
3
- * delete + re-upload. No-ops if content is unchanged.
4
- *
5
- * @param args - [filePath, ...]
6
- */
7
- export declare function builtin_edit(args: string[]): Promise<void>;
@@ -1,86 +0,0 @@
1
- /**
2
- * @file Builtin edit command.
3
- * Fetches a ChRIS file, opens it in $EDITOR, then deletes and re-uploads on save.
4
- */
5
- import { spawnSync } from 'child_process';
6
- import { writeFileSync, readFileSync, unlinkSync, existsSync } from 'fs';
7
- import { tmpdir } from 'os';
8
- import { join, extname, posix } from 'path';
9
- import chalk from 'chalk';
10
- import { path_resolve, error_stripDebugPrefix } from '../utils.js';
11
- import { files_cat } from '@fnndsc/chili/commands/fs/cat.js';
12
- import { file_replaceContent } from '@fnndsc/chili/commands/fs/edit.js';
13
- import { errorStack, listCache_get } from '@fnndsc/cumin';
14
- const BINARY_EXTENSIONS = new Set([
15
- '.dcm', '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp', '.ico',
16
- '.pdf', '.zip', '.tar', '.gz', '.bz2', '.xz', '.7z',
17
- '.exe', '.dll', '.so', '.bin', '.mp3', '.mp4', '.avi', '.wav',
18
- ]);
19
- /**
20
- * Opens a ChRIS file in $EDITOR. On save, replaces the original via
21
- * delete + re-upload. No-ops if content is unchanged.
22
- *
23
- * @param args - [filePath, ...]
24
- */
25
- export async function builtin_edit(args) {
26
- if (args.length === 0) {
27
- console.error(chalk.red('Usage: edit <file>'));
28
- process.exitCode = 1;
29
- return;
30
- }
31
- const target = await path_resolve(args[0]);
32
- const ext = extname(target).toLowerCase();
33
- if (BINARY_EXTENSIONS.has(ext)) {
34
- console.error(chalk.red(`edit: ${args[0]}: binary file (${ext}), cannot edit as text`));
35
- process.exitCode = 1;
36
- return;
37
- }
38
- const catResult = await files_cat(target);
39
- if (!catResult.ok) {
40
- const err = errorStack.stack_pop();
41
- console.error(chalk.red(`edit: ${err ? error_stripDebugPrefix(err.message) : 'Failed to read file'}`));
42
- process.exitCode = 1;
43
- return;
44
- }
45
- const originalContent = catResult.value;
46
- const tmpPath = join(tmpdir(), `chell-edit-${Date.now()}${ext || '.txt'}`);
47
- let keepTmp = false;
48
- try {
49
- writeFileSync(tmpPath, originalContent, 'utf8');
50
- const editor = process.env.EDITOR || process.env.VISUAL || 'vi';
51
- const spawn = spawnSync(editor, [tmpPath], { stdio: 'inherit' });
52
- if (spawn.error) {
53
- console.error(chalk.red(`edit: Failed to launch '${editor}': ${spawn.error.message}`));
54
- process.exitCode = 1;
55
- return;
56
- }
57
- const editedContent = readFileSync(tmpPath, 'utf8');
58
- if (editedContent === originalContent) {
59
- console.log(chalk.gray('(no changes)'));
60
- return;
61
- }
62
- const result = await file_replaceContent(target, tmpPath);
63
- listCache_get().cache_invalidate(posix.dirname(target));
64
- if (result.success) {
65
- console.log(chalk.green(`Saved: ${args[0]}`));
66
- }
67
- else {
68
- const apiErr = errorStack.stack_pop();
69
- console.error(chalk.red(`edit: Save failed — ${result.error}`));
70
- if (apiErr)
71
- console.error(chalk.red(` API error: ${error_stripDebugPrefix(apiErr.message)}`));
72
- console.error(chalk.yellow(`Your edits are preserved at: ${tmpPath}`));
73
- keepTmp = true;
74
- process.exitCode = 1;
75
- }
76
- }
77
- finally {
78
- if (!keepTmp && existsSync(tmpPath)) {
79
- try {
80
- unlinkSync(tmpPath);
81
- }
82
- catch { /* ignore */ }
83
- }
84
- }
85
- }
86
- //# sourceMappingURL=edit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/builtins/fs/edit.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Lists the contents of the current or specified directory/files in the ChRIS filesystem context.
3
- * Supports a virtual `/bin` directory for plugins and multiple paths (e.g., from wildcard expansion).
4
- *
5
- * @param args - An array containing target paths (optional).
6
- * @returns A Promise that resolves when the directory contents are listed.
7
- */
8
- export declare function builtin_ls(args: string[]): Promise<void>;
@@ -1,68 +0,0 @@
1
- /**
2
- * @file Builtin ls command.
3
- * Lists directory contents.
4
- */
5
- import chalk from 'chalk';
6
- import { commandArgs_process, path_resolve } from '../utils.js';
7
- import { listCache_get } from '@fnndsc/cumin';
8
- import { session } from '../../session/index.js';
9
- import { vfs } from '../../lib/vfs/vfs.js';
10
- /**
11
- * Lists the contents of the current or specified directory/files in the ChRIS filesystem context.
12
- * Supports a virtual `/bin` directory for plugins and multiple paths (e.g., from wildcard expansion).
13
- *
14
- * @param args - An array containing target paths (optional).
15
- * @returns A Promise that resolves when the directory contents are listed.
16
- */
17
- export async function builtin_ls(args) {
18
- const parsed = commandArgs_process(args);
19
- const pathArgsRaw = parsed._;
20
- let sortBy = 'name';
21
- if (parsed['sort']) {
22
- const sortValue = String(parsed['sort']);
23
- if (['name', 'size', 'date', 'owner'].includes(sortValue)) {
24
- sortBy = sortValue;
25
- }
26
- }
27
- let pathArgs = pathArgsRaw;
28
- const shouldRefresh = !!parsed['refresh'] || !!parsed['f'];
29
- const options = {
30
- long: !!parsed['l'],
31
- human: !!parsed['h'],
32
- oneColumn: !!parsed['1'],
33
- sort: sortBy,
34
- reverse: !!parsed['reverse'] || !!parsed['r'],
35
- directory: !!parsed['d']
36
- };
37
- if (shouldRefresh) {
38
- const listCache = listCache_get();
39
- if (pathArgs.length === 0) {
40
- const cwd = await session.getCWD();
41
- console.log(chalk.gray(`[Cache] Invalidating: ${cwd}`));
42
- listCache.cache_invalidate(cwd);
43
- listCache.cache_invalidate();
44
- }
45
- else {
46
- for (const pathArg of pathArgs) {
47
- const resolvedPath = await path_resolve(pathArg);
48
- console.log(chalk.gray(`[Cache] Invalidating: ${resolvedPath}`));
49
- listCache.cache_invalidate(resolvedPath);
50
- }
51
- listCache.cache_invalidate();
52
- }
53
- }
54
- if (pathArgs.length === 0) {
55
- await vfs.list(undefined, options);
56
- return;
57
- }
58
- if (pathArgs.length === 1) {
59
- const target = await path_resolve(pathArgs[0]);
60
- await vfs.list(target, options);
61
- return;
62
- }
63
- for (const pathArg of pathArgs) {
64
- const target = await path_resolve(pathArg);
65
- await vfs.list(target, options);
66
- }
67
- }
68
- //# sourceMappingURL=ls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../src/builtins/fs/ls.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Creates directories.
3
- *
4
- * @param args - Command line arguments (directory paths).
5
- */
6
- export declare function builtin_mkdir(args: string[]): Promise<void>;
@@ -1,38 +0,0 @@
1
- /**
2
- * @file Builtin mkdir command.
3
- * Creates directories.
4
- */
5
- import chalk from 'chalk';
6
- import { path_resolve } from '../utils.js';
7
- import { files_mkdir as chefs_mkdir_cmd } from '@fnndsc/chili/commands/fs/mkdir.js';
8
- import { mkdir_render } from '@fnndsc/chili/views/fs.js';
9
- import { listCache_get } from '@fnndsc/cumin';
10
- /**
11
- * Creates directories.
12
- *
13
- * @param args - Command line arguments (directory paths).
14
- */
15
- export async function builtin_mkdir(args) {
16
- if (args.length === 0) {
17
- console.error(chalk.red('Usage: mkdir <directory> [directory...]'));
18
- return;
19
- }
20
- for (const pathArg of args) {
21
- try {
22
- const targetPath = await path_resolve(pathArg);
23
- const success = await chefs_mkdir_cmd(targetPath);
24
- console.log(mkdir_render(targetPath, success));
25
- // Invalidate cache for parent directory
26
- if (success) {
27
- const parentDir = targetPath.substring(0, targetPath.lastIndexOf('/')) || '/';
28
- const listCache = listCache_get();
29
- listCache.cache_invalidate(parentDir);
30
- }
31
- }
32
- catch (e) {
33
- const msg = e instanceof Error ? e.message : String(e);
34
- console.error(chalk.red(`mkdir: ${pathArg}: ${msg}`));
35
- }
36
- }
37
- }
38
- //# sourceMappingURL=mkdir.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mkdir.js","sourceRoot":"","sources":["../../../src/builtins/fs/mkdir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAc,MAAM,eAAe,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,UAAU,GAAW,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,OAAO,GAAY,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAE/C,wCAAwC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAW,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;gBACtF,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;gBAClC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Moves or renames a file or directory.
3
- * Supports multiple sources when destination is a directory.
4
- *
5
- * @param args - [src1, src2, ..., dest] or [src, dest]
6
- */
7
- export declare function builtin_mv(args: string[]): Promise<void>;
@@ -1,75 +0,0 @@
1
- /**
2
- * @file Builtin mv command.
3
- * Moves or renames files/directories.
4
- */
5
- import chalk from 'chalk';
6
- import path from 'path';
7
- import { commandArgs_process, path_resolve } from '../utils.js';
8
- import { files_mv as chefs_mv_cmd } from '@fnndsc/chili/commands/fs/mv.js';
9
- import { mv_render } from '@fnndsc/chili/views/fs.js';
10
- import { listCache_get } from '@fnndsc/cumin';
11
- /**
12
- * Moves or renames a file or directory.
13
- * Supports multiple sources when destination is a directory.
14
- *
15
- * @param args - [src1, src2, ..., dest] or [src, dest]
16
- */
17
- export async function builtin_mv(args) {
18
- const parsed = commandArgs_process(args);
19
- const pathArgs = parsed._;
20
- if (pathArgs.length < 2) {
21
- console.log(chalk.red('Usage: mv <source...> <dest>'));
22
- return;
23
- }
24
- // Last arg is destination, all others are sources
25
- const dest = pathArgs[pathArgs.length - 1];
26
- const sources = pathArgs.slice(0, -1);
27
- const destPath = await path_resolve(dest);
28
- const listCache = listCache_get();
29
- let successCount = 0;
30
- let failCount = 0;
31
- for (const src of sources) {
32
- try {
33
- const srcPath = await path_resolve(src);
34
- // For multiple sources, show which file we're moving
35
- if (sources.length > 1) {
36
- console.log(chalk.gray(`Moving ${srcPath}...`));
37
- }
38
- else {
39
- console.log(`Moving ${srcPath} to ${destPath}...`);
40
- }
41
- const success = await chefs_mv_cmd(srcPath, destPath);
42
- if (sources.length === 1) {
43
- console.log(mv_render(srcPath, destPath, success));
44
- }
45
- if (success) {
46
- successCount++;
47
- // Invalidate source directory
48
- const srcDir = path.posix.dirname(srcPath);
49
- listCache.cache_invalidate(srcDir);
50
- }
51
- else {
52
- failCount++;
53
- }
54
- }
55
- catch (e) {
56
- const msg = e instanceof Error ? e.message : String(e);
57
- console.error(chalk.red(`mv: ${src}: ${msg}`));
58
- failCount++;
59
- }
60
- }
61
- // Invalidate destination directory (always, since files moved into it)
62
- listCache.cache_invalidate(destPath);
63
- const destParent = path.posix.dirname(destPath);
64
- listCache.cache_invalidate(destParent);
65
- // Summary for multiple files
66
- if (sources.length > 1) {
67
- if (failCount === 0) {
68
- console.log(chalk.green(`✓ Moved ${successCount} file(s) to ${destPath}`));
69
- }
70
- else {
71
- console.log(chalk.yellow(`⚠ Moved ${successCount} file(s), ${failCount} failed`));
72
- }
73
- }
74
- }
75
- //# sourceMappingURL=mv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mv.js","sourceRoot":"","sources":["../../../src/builtins/fs/mv.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * @file Pure argument parsing for the `pull` builtin.
3
- *
4
- * Dependency-free so it is trivially unit-testable.
5
- *
6
- * @module
7
- */
8
- /**
9
- * Parsed `pull` arguments.
10
- */
11
- export interface PullArgs {
12
- nowait: boolean;
13
- retryMax: number;
14
- paths: string[];
15
- }
16
- /**
17
- * Parses `pull` arguments: the `--nowait` flag, `--retry N`, and path operands.
18
- *
19
- * @param args - Raw command arguments.
20
- * @returns The parsed flags and paths.
21
- */
22
- export declare function pullArgs_parse(args: string[]): PullArgs;