@fnndsc/chell 4.3.2 → 4.4.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 (119) hide show
  1. package/dist/builtins/debug.d.ts +3 -1
  2. package/dist/builtins/debug.js +14 -22
  3. package/dist/builtins/debug.js.map +1 -1
  4. package/dist/builtins/fs/cat.d.ts +8 -8
  5. package/dist/builtins/fs/cat.js +37 -20
  6. package/dist/builtins/fs/cat.js.map +1 -1
  7. package/dist/builtins/fs/cd.d.ts +3 -2
  8. package/dist/builtins/fs/cd.js +48 -33
  9. package/dist/builtins/fs/cd.js.map +1 -1
  10. package/dist/builtins/fs/cp.d.ts +4 -1
  11. package/dist/builtins/fs/cp.js +23 -10
  12. package/dist/builtins/fs/cp.js.map +1 -1
  13. package/dist/builtins/fs/download.js +5 -1
  14. package/dist/builtins/fs/download.js.map +1 -1
  15. package/dist/builtins/fs/edit.d.ts +2 -2
  16. package/dist/builtins/fs/edit.js +37 -19
  17. package/dist/builtins/fs/edit.js.map +1 -1
  18. package/dist/builtins/fs/mkdir.d.ts +4 -1
  19. package/dist/builtins/fs/mkdir.js +20 -6
  20. package/dist/builtins/fs/mkdir.js.map +1 -1
  21. package/dist/builtins/fs/mv.d.ts +4 -1
  22. package/dist/builtins/fs/mv.js +23 -10
  23. package/dist/builtins/fs/mv.js.map +1 -1
  24. package/dist/builtins/fs/pull.d.ts +2 -2
  25. package/dist/builtins/fs/pull.js +57 -29
  26. package/dist/builtins/fs/pull.js.map +1 -1
  27. package/dist/builtins/fs/pwd.d.ts +6 -3
  28. package/dist/builtins/fs/pwd.js +8 -10
  29. package/dist/builtins/fs/pwd.js.map +1 -1
  30. package/dist/builtins/fs/rm.d.ts +7 -1
  31. package/dist/builtins/fs/rm.js +61 -12
  32. package/dist/builtins/fs/rm.js.map +1 -1
  33. package/dist/builtins/fs/touch.d.ts +4 -1
  34. package/dist/builtins/fs/touch.js +24 -12
  35. package/dist/builtins/fs/touch.js.map +1 -1
  36. package/dist/builtins/fs/upload.js +4 -1
  37. package/dist/builtins/fs/upload.js.map +1 -1
  38. package/dist/builtins/index.d.ts +1 -0
  39. package/dist/builtins/index.js +1 -0
  40. package/dist/builtins/index.js.map +1 -1
  41. package/dist/builtins/sys/physicalmode.d.ts +3 -1
  42. package/dist/builtins/sys/physicalmode.js +13 -20
  43. package/dist/builtins/sys/physicalmode.js.map +1 -1
  44. package/dist/builtins/sys/timing.d.ts +3 -1
  45. package/dist/builtins/sys/timing.js +13 -20
  46. package/dist/builtins/sys/timing.js.map +1 -1
  47. package/dist/builtins/sys/version.d.ts +15 -0
  48. package/dist/builtins/sys/version.js +23 -0
  49. package/dist/builtins/sys/version.js.map +1 -0
  50. package/dist/builtins/sys/whoami.d.ts +9 -4
  51. package/dist/builtins/sys/whoami.js +20 -13
  52. package/dist/builtins/sys/whoami.js.map +1 -1
  53. package/dist/calypso.d.ts +13 -0
  54. package/dist/calypso.js +44 -0
  55. package/dist/calypso.js.map +1 -0
  56. package/dist/chell.d.ts +2 -1
  57. package/dist/chell.js +2 -1
  58. package/dist/chell.js.map +1 -1
  59. package/dist/core/boot.d.ts +3 -1
  60. package/dist/core/boot.js +50 -100
  61. package/dist/core/boot.js.map +1 -1
  62. package/dist/core/cli.d.ts +3 -1
  63. package/dist/core/cli.js +11 -1
  64. package/dist/core/cli.js.map +1 -1
  65. package/dist/core/cliSurface.d.ts +26 -0
  66. package/dist/core/cliSurface.js +152 -0
  67. package/dist/core/cliSurface.js.map +1 -0
  68. package/dist/core/dispatch.d.ts +63 -10
  69. package/dist/core/dispatch.js +326 -234
  70. package/dist/core/dispatch.js.map +1 -1
  71. package/dist/core/engine.d.ts +91 -0
  72. package/dist/core/engine.js +222 -0
  73. package/dist/core/engine.js.map +1 -0
  74. package/dist/core/progress.d.ts +25 -0
  75. package/dist/core/progress.js +10 -0
  76. package/dist/core/progress.js.map +1 -0
  77. package/dist/core/progressRenderer.d.ts +42 -0
  78. package/dist/core/progressRenderer.js +176 -0
  79. package/dist/core/progressRenderer.js.map +1 -0
  80. package/dist/core/prompt/session.d.ts +20 -0
  81. package/dist/core/prompt/session.js +43 -0
  82. package/dist/core/prompt/session.js.map +1 -0
  83. package/dist/core/question.d.ts +11 -18
  84. package/dist/core/question.js +14 -57
  85. package/dist/core/question.js.map +1 -1
  86. package/dist/core/repl.d.ts +25 -5
  87. package/dist/core/repl.js +56 -45
  88. package/dist/core/repl.js.map +1 -1
  89. package/dist/core/sink.d.ts +201 -0
  90. package/dist/core/sink.js +300 -0
  91. package/dist/core/sink.js.map +1 -0
  92. package/dist/core/surface.d.ts +172 -0
  93. package/dist/core/surface.js +105 -0
  94. package/dist/core/surface.js.map +1 -0
  95. package/dist/core/version.d.ts +20 -0
  96. package/dist/core/version.js +82 -0
  97. package/dist/core/version.js.map +1 -0
  98. package/dist/core/warnings.d.ts +14 -0
  99. package/dist/core/warnings.js +25 -0
  100. package/dist/core/warnings.js.map +1 -0
  101. package/dist/daemon/launch.d.ts +9 -0
  102. package/dist/daemon/launch.js +82 -0
  103. package/dist/daemon/launch.js.map +1 -0
  104. package/dist/index.js +2 -12
  105. package/dist/index.js.map +1 -1
  106. package/dist/lib/spinner.js +5 -4
  107. package/dist/lib/spinner.js.map +1 -1
  108. package/dist/lib/vfs/vfs.js +7 -3
  109. package/dist/lib/vfs/vfs.js.map +1 -1
  110. package/dist/remote/client.d.ts +6 -0
  111. package/dist/remote/client.js +71 -0
  112. package/dist/remote/client.js.map +1 -0
  113. package/dist/remote/discovery.d.ts +23 -0
  114. package/dist/remote/discovery.js +55 -0
  115. package/dist/remote/discovery.js.map +1 -0
  116. package/dist/remote/remoteEngine.d.ts +125 -0
  117. package/dist/remote/remoteEngine.js +283 -0
  118. package/dist/remote/remoteEngine.js.map +1 -0
  119. package/package.json +7 -5
@@ -1,25 +1,23 @@
1
1
  /**
2
2
  * @file Builtin pwd command.
3
- * Prints the current working directory.
3
+ * Reports the current working directory as a command envelope.
4
4
  */
5
5
  import { session } from '../../session/index.js';
6
+ import { envelope_ok } from '@fnndsc/cumin';
6
7
  import { feeds_list, pluginInstances_list } from '@fnndsc/salsa';
7
8
  /**
8
- * Prints the current working directory in the ChRIS filesystem context.
9
+ * Reports the current working directory in the ChRIS filesystem context.
9
10
  *
10
11
  * @param args - Command arguments (--title flag supported).
11
- * @returns A Promise that resolves when the directory is printed.
12
+ * @returns An envelope whose rendered text is the directory (with feed and
13
+ * plugin segments replaced by titles under --title) and whose model
14
+ * carries the raw path.
12
15
  */
13
16
  export async function builtin_pwd(args = []) {
14
17
  const showTitles = args.includes('--title');
15
18
  const cwd = await session.getCWD();
16
- if (!showTitles) {
17
- console.log(cwd);
18
- return;
19
- }
20
- // Replace feed and plugin patterns with titles
21
- const titlePath = await path_withTitles(cwd);
22
- console.log(titlePath);
19
+ const shown = showTitles ? await path_withTitles(cwd) : cwd;
20
+ return envelope_ok(`${shown}\n`, { kind: 'fs.cwd', data: { path: cwd, shown } });
23
21
  }
24
22
  /**
25
23
  * Replaces feed_XXXX and pl-<name>_XXXX patterns in a path with their titles.
@@ -1 +1 @@
1
- {"version":3,"file":"pwd.js","sourceRoot":"","sources":["../../../src/builtins/fs/pwd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pwd.js","sourceRoot":"","sources":["../../../src/builtins/fs/pwd.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { CommandEnvelope } from '@fnndsc/cumin';
1
2
  /**
2
3
  * Parsed `rm` arguments: flags plus the resolved list of path operands.
3
4
  */
@@ -26,6 +27,11 @@ export declare function rmSummary_format(successCount: number, failCount: number
26
27
  /**
27
28
  * Removes one or more files or directories.
28
29
  *
30
+ * In interactive mode (-i) output is streamed live through the sink so each
31
+ * confirmation prompt appears in sequence with its result; the envelope then
32
+ * carries only the model. Otherwise output is buffered into the envelope.
33
+ *
29
34
  * @param args - Command line arguments (flags and paths).
35
+ * @returns An envelope whose model lists per-target outcomes.
30
36
  */
31
- export declare function builtin_rm(args: string[]): Promise<void>;
37
+ export declare function builtin_rm(args: string[]): Promise<CommandEnvelope>;
@@ -1,14 +1,15 @@
1
1
  /**
2
2
  * @file Builtin rm command.
3
- * Removes files or directories.
3
+ * Removes files or directories, reported as a command envelope.
4
4
  */
5
5
  import chalk from 'chalk';
6
6
  import path from 'path';
7
7
  import * as readline from 'readline';
8
+ import { listCache_get, envelope_ok, envelope_error } from '@fnndsc/cumin';
8
9
  import { path_resolve } from '../utils.js';
9
10
  import { files_rm as chefs_rm_cmd } from '@fnndsc/chili/commands/fs/rm.js';
10
11
  import { rm_render } from '@fnndsc/chili/views/fs.js';
11
- import { listCache_get } from '@fnndsc/cumin';
12
+ import { sink_get } from '../../core/sink.js';
12
13
  /**
13
14
  * Prompts the user for confirmation.
14
15
  *
@@ -87,62 +88,110 @@ export function rmSummary_format(successCount, failCount) {
87
88
  /**
88
89
  * Removes one or more files or directories.
89
90
  *
91
+ * In interactive mode (-i) output is streamed live through the sink so each
92
+ * confirmation prompt appears in sequence with its result; the envelope then
93
+ * carries only the model. Otherwise output is buffered into the envelope.
94
+ *
90
95
  * @param args - Command line arguments (flags and paths).
96
+ * @returns An envelope whose model lists per-target outcomes.
91
97
  */
92
98
  export async function builtin_rm(args) {
93
99
  const { recursive, force, interactive, paths } = rmArgs_parse(args);
94
100
  if (paths.length === 0) {
95
- console.error(chalk.red('Usage: rm [-rf] <path> [path...]'));
96
- return;
101
+ return envelope_error('', undefined, `${chalk.red('Usage: rm [-rf] <path> [path...]')}\n`);
97
102
  }
98
103
  const options = { recursive, force };
99
104
  let successCount = 0;
100
105
  let failCount = 0;
106
+ let rendered = '';
107
+ let renderedErr = '';
108
+ const outcomes = [];
109
+ /**
110
+ * Emits one line of stdout output: streamed live in interactive mode,
111
+ * buffered into the envelope otherwise.
112
+ *
113
+ * @param line - The line to emit (without trailing newline).
114
+ */
115
+ const out_emit = (line) => {
116
+ if (interactive) {
117
+ sink_get().data_write(`${line}\n`);
118
+ }
119
+ else {
120
+ rendered += `${line}\n`;
121
+ }
122
+ };
123
+ /**
124
+ * Emits one line of error output: streamed live in interactive mode,
125
+ * buffered into the envelope otherwise.
126
+ *
127
+ * @param line - The line to emit (without trailing newline).
128
+ */
129
+ const err_emit = (line) => {
130
+ if (interactive) {
131
+ sink_get().err_write(`${line}\n`);
132
+ }
133
+ else {
134
+ renderedErr += `${line}\n`;
135
+ }
136
+ };
101
137
  for (const pathArg of paths) {
102
138
  try {
103
139
  const target = await path_resolve(pathArg);
104
140
  if (target.startsWith('/bin/')) {
105
- console.error(chalk.red(`rm: cannot remove '${pathArg}': virtual /bin directory`));
141
+ err_emit(chalk.red(`rm: cannot remove '${pathArg}': virtual /bin directory`));
142
+ outcomes.push({ path: pathArg, removed: false, skipped: false });
106
143
  failCount++;
107
144
  continue;
108
145
  }
109
146
  if (interactive) {
110
147
  const confirmed = await prompt_confirm(`rm: remove '${pathArg}'? (y/n): `);
111
148
  if (!confirmed) {
112
- console.log(chalk.gray(`skipped '${pathArg}'`));
149
+ out_emit(chalk.gray(`skipped '${pathArg}'`));
150
+ outcomes.push({ path: pathArg, removed: false, skipped: true });
113
151
  continue;
114
152
  }
115
153
  }
116
154
  const result = await chefs_rm_cmd(target, options);
117
155
  if (result.success) {
118
156
  if (paths.length > 1) {
119
- console.log(chalk.gray(`removed '${pathArg}'`));
157
+ out_emit(chalk.gray(`removed '${pathArg}'`));
120
158
  }
121
159
  else {
122
- console.log(rm_render(result));
160
+ out_emit(rm_render(result));
123
161
  }
162
+ outcomes.push({ path: pathArg, removed: true, skipped: false });
124
163
  successCount++;
125
164
  const listCache = listCache_get();
126
165
  const parentDir = path.posix.dirname(target);
127
166
  listCache.cache_invalidate(parentDir);
128
167
  }
129
168
  else {
130
- console.error(chalk.red(`rm: cannot remove '${pathArg}': ${result.error || 'unknown error'}`));
169
+ err_emit(chalk.red(`rm: cannot remove '${pathArg}': ${result.error || 'unknown error'}`));
170
+ outcomes.push({ path: pathArg, removed: false, skipped: false });
131
171
  failCount++;
132
172
  }
133
173
  }
134
174
  catch (e) {
135
175
  const msg = e instanceof Error ? e.message : String(e);
136
- console.error(chalk.red(`rm: cannot remove '${pathArg}': ${msg}`));
176
+ err_emit(chalk.red(`rm: cannot remove '${pathArg}': ${msg}`));
177
+ outcomes.push({ path: pathArg, removed: false, skipped: false });
137
178
  failCount++;
138
179
  }
139
180
  }
140
181
  if (paths.length > 1) {
141
182
  const summary = rmSummary_format(successCount, failCount);
142
183
  if (summary) {
143
- console.log('');
144
- console.log(summary);
184
+ out_emit('');
185
+ out_emit(summary);
145
186
  }
146
187
  }
188
+ const model = { kind: 'fs.rm', data: outcomes };
189
+ if (failCount > 0) {
190
+ const envelope = envelope_error(rendered, undefined, renderedErr || undefined);
191
+ envelope.model = model;
192
+ return envelope;
193
+ }
194
+ const envelope = envelope_ok(rendered, model);
195
+ return envelope;
147
196
  }
148
197
  //# sourceMappingURL=rm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAuB,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAuB,QAAQ,CAAC,eAAe,CAAC;YACtD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE;YACtC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,SAAS,GAAY,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;YAC/D,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,IAAI,SAAS,GAAY,KAAK,CAAC;IAC/B,IAAI,KAAK,GAAY,KAAK,CAAC;IAC3B,IAAI,WAAW,GAAY,KAAK,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAY,KAAK,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;oBAAE,SAAS,GAAG,IAAI,CAAC;qBAC1C,IAAI,EAAE,KAAK,GAAG;oBAAE,KAAK,GAAG,IAAI,CAAC;qBAC7B,IAAI,EAAE,KAAK,GAAG;oBAAE,WAAW,GAAG,IAAI,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB,EAAE,SAAiB;IACtE,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,YAAY,GAAG,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,KAAK,CAAC,wBAAwB,YAAY,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,YAAY,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAoB,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAW,YAAY,CAAC,IAAI,CAAC,CAAC;IAE5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,OAAO,GAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAChD,IAAI,YAAY,GAAW,CAAC,CAAC;IAC7B,IAAI,SAAS,GAAW,CAAC,CAAC;IAC1B,IAAI,QAAQ,GAAW,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAgB,EAAE,CAAC;IAEjC;;;;;OAKG;IACH,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACtC,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACtC,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,WAAW,IAAI,GAAG,IAAI,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAW,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAEnD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,2BAA2B,CAAC,CAAC,CAAC;gBAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjE,SAAS,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAY,MAAM,cAAc,CAAC,eAAe,OAAO,YAAY,CAAC,CAAC;gBACpF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC,CAAC;oBAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChE,SAAS;gBACX,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAa,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9B,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChE,YAAY,EAAE,CAAC;gBAEf,MAAM,SAAS,GAAc,aAAa,EAAE,CAAC;gBAC7C,MAAM,SAAS,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrD,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,MAAM,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;gBAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjE,SAAS,EAAE,CAAC;YACd,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,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAkB,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAwC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrF,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAoB,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;QAChG,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAoB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,6 +1,9 @@
1
+ import { CommandEnvelope } from '@fnndsc/cumin';
1
2
  /**
2
3
  * Creates empty files or updates timestamps.
3
4
  *
4
5
  * @param args - Command line arguments (file paths).
6
+ * @returns An envelope whose rendered text reports each created file and
7
+ * whose model lists per-target outcomes.
5
8
  */
6
- export declare function builtin_touch(args: string[]): Promise<void>;
9
+ export declare function builtin_touch(args: string[]): Promise<CommandEnvelope>;
@@ -1,24 +1,25 @@
1
1
  /**
2
2
  * @file Builtin touch command.
3
- * Creates files.
3
+ * Creates files, reported as a command envelope.
4
4
  */
5
5
  import chalk from 'chalk';
6
6
  import path from 'path';
7
+ import { listCache_get, errorStack, envelope_ok, envelope_error } from '@fnndsc/cumin';
7
8
  import { commandArgs_process, path_resolve, error_stripDebugPrefix } from '../utils.js';
8
9
  import { files_touch as chefs_touch_cmd } from '@fnndsc/chili/commands/fs/touch.js';
9
10
  import { touch_render } from '@fnndsc/chili/views/fs.js';
10
- import { listCache_get, errorStack } from '@fnndsc/cumin';
11
11
  /**
12
12
  * Creates empty files or updates timestamps.
13
13
  *
14
14
  * @param args - Command line arguments (file paths).
15
+ * @returns An envelope whose rendered text reports each created file and
16
+ * whose model lists per-target outcomes.
15
17
  */
16
18
  export async function builtin_touch(args) {
17
19
  const parsed = commandArgs_process(args);
18
20
  const pathArgs = parsed._;
19
21
  if (pathArgs.length === 0) {
20
- console.error(chalk.red('Usage: touch [--withContents <string>] [--withContentsFromFile <file>] <file>'));
21
- return;
22
+ return envelope_error('', undefined, `${chalk.red('Usage: touch [--withContents <string>] [--withContentsFromFile <file>] <file>')}\n`);
22
23
  }
23
24
  // Build options from parsed flags
24
25
  const options = {};
@@ -32,33 +33,44 @@ export async function builtin_touch(args) {
32
33
  const filesToTouch = (options.withContents || options.withContentsFromFile)
33
34
  ? [pathArgs[0]] // Only one file when injecting content
34
35
  : pathArgs; // Multiple files allowed for empty touch
36
+ let rendered = '';
37
+ let renderedErr = '';
38
+ const outcomes = [];
35
39
  for (const pathArg of filesToTouch) {
36
40
  try {
37
41
  const targetPath = await path_resolve(pathArg);
38
42
  const success = await chefs_touch_cmd(targetPath, options);
39
43
  if (success) {
40
- console.log(touch_render(targetPath, success));
44
+ rendered += `${touch_render(targetPath, success)}\n`;
45
+ outcomes.push({ path: targetPath, created: true });
41
46
  // Invalidate cache for parent directory
42
47
  const listCache = listCache_get();
43
48
  const parentDir = path.posix.dirname(targetPath);
44
49
  listCache.cache_invalidate(parentDir);
45
50
  }
46
51
  else {
47
- // Touch failed, display error from errorStack
52
+ // Touch failed, report the error from errorStack
48
53
  const lastError = errorStack.stack_pop();
54
+ renderedErr += `${chalk.red(`Failed to create file: ${targetPath}`)}\n`;
49
55
  if (lastError) {
50
- console.error(chalk.red(`Failed to create file: ${targetPath}`));
51
- console.error(chalk.gray(` ${error_stripDebugPrefix(lastError.message)}`));
52
- }
53
- else {
54
- console.error(chalk.red(`Failed to create file: ${targetPath}`));
56
+ renderedErr += `${chalk.gray(` ${error_stripDebugPrefix(lastError.message)}`)}\n`;
55
57
  }
58
+ outcomes.push({ path: targetPath, created: false });
56
59
  }
57
60
  }
58
61
  catch (e) {
59
62
  const msg = e instanceof Error ? e.message : String(e);
60
- console.error(chalk.red(`touch: ${pathArg}: ${msg}`));
63
+ renderedErr += `${chalk.red(`touch: ${pathArg}: ${msg}`)}\n`;
64
+ outcomes.push({ path: pathArg, created: false });
61
65
  }
62
66
  }
67
+ const anyFailed = outcomes.some((outcome) => !outcome.created);
68
+ const model = { kind: 'fs.touch', data: outcomes };
69
+ if (anyFailed) {
70
+ const envelope = envelope_error(rendered, undefined, renderedErr || undefined);
71
+ envelope.model = model;
72
+ return envelope;
73
+ }
74
+ return envelope_ok(rendered, model);
63
75
  }
64
76
  //# sourceMappingURL=touch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"touch.js","sourceRoot":"","sources":["../../../src/builtins/fs/touch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"touch.js","sourceRoot":"","sources":["../../../src/builtins/fs/touch.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import chalk from 'chalk';
6
6
  import { path_resolve } from '../utils.js';
7
7
  import { files_uploadWithProgress as chefs_upload_cmd, bytes_format } from '@fnndsc/chili/commands/fs/upload.js';
8
8
  import { listCache_get } from '@fnndsc/cumin';
9
+ import { sink_get } from '../../core/sink.js';
9
10
  /**
10
11
  * Uploads a local file or directory to ChRIS.
11
12
  *
@@ -20,7 +21,9 @@ export async function builtin_upload(args) {
20
21
  const remotePath = args[1];
21
22
  const targetRemote = await path_resolve(remotePath);
22
23
  try {
23
- const summary = await chefs_upload_cmd(localPath, targetRemote);
24
+ const summary = await chefs_upload_cmd(localPath, targetRemote, {
25
+ onProgress: event => sink_get().progress_write(event),
26
+ });
24
27
  console.log('');
25
28
  if (summary.failedCount === 0) {
26
29
  console.log(chalk.green(`✓ Successfully uploaded ${summary.transferredCount} file(s)`));
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/builtins/fs/upload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAiB,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAW,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAkB,MAAM,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAE/E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,OAAO,CAAC,gBAAgB,aAAa,OAAO,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhJ,yEAAyE;QACzE,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;YAClC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACrD,gDAAgD;YAChD,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/builtins/fs/upload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAiB,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAW,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAkB,MAAM,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE;YAC7E,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;SACtD,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,OAAO,CAAC,gBAAgB,aAAa,OAAO,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhJ,yEAAyE;QACzE,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;YAClC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACrD,gDAAgD;YAChD,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -26,6 +26,7 @@ export * from './sys/context.js';
26
26
  export * from './sys/physicalmode.js';
27
27
  export * from './sys/prompt.js';
28
28
  export * from './sys/timing.js';
29
+ export * from './sys/version.js';
29
30
  export * from './sys/whoami.js';
30
31
  export * from './debug.js';
31
32
  export * from './help.js';
@@ -26,6 +26,7 @@ export * from './sys/context.js';
26
26
  export * from './sys/physicalmode.js';
27
27
  export * from './sys/prompt.js';
28
28
  export * from './sys/timing.js';
29
+ export * from './sys/version.js';
29
30
  export * from './sys/whoami.js';
30
31
  export * from './debug.js';
31
32
  export * from './help.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAE1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAE1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,6 +1,8 @@
1
+ import { CommandEnvelope } from '@fnndsc/cumin';
1
2
  /**
2
3
  * Toggles or displays physical filesystem mode.
3
4
  *
4
5
  * @param args - Command line arguments: 'on', 'off', or empty to display status.
6
+ * @returns An envelope describing the (possibly updated) physical mode state.
5
7
  */
6
- export declare function builtin_physicalmode(args: string[]): Promise<void>;
8
+ export declare function builtin_physicalmode(args: string[]): Promise<CommandEnvelope>;
@@ -1,41 +1,34 @@
1
1
  /**
2
2
  * @file Builtin physicalmode command.
3
- * Toggles physical filesystem mode.
3
+ * Toggles physical filesystem mode, reported as a command envelope.
4
4
  */
5
5
  import chalk from 'chalk';
6
+ import { envelope_ok, envelope_error } from '@fnndsc/cumin';
6
7
  import { session } from '../../session/index.js';
7
8
  /**
8
9
  * Toggles or displays physical filesystem mode.
9
10
  *
10
11
  * @param args - Command line arguments: 'on', 'off', or empty to display status.
12
+ * @returns An envelope describing the (possibly updated) physical mode state.
11
13
  */
12
14
  export async function builtin_physicalmode(args) {
13
15
  const subcommand = args[0];
14
16
  if (!subcommand) {
15
- const status = session.physicalMode_get() ? 'enabled' : 'disabled';
16
- console.log(`Physical filesystem mode: ${chalk.yellow(status)}`);
17
- if (session.physicalMode_get()) {
18
- console.log(chalk.gray(' Paths are used directly without logical-to-physical mapping.'));
19
- }
20
- else {
21
- console.log(chalk.gray(' Paths are resolved through logical-to-physical mapping.'));
22
- }
23
- console.log(chalk.gray('\nUsage: physicalmode [on|off]'));
24
- return;
17
+ const enabled = session.physicalMode_get();
18
+ const status = enabled ? 'enabled' : 'disabled';
19
+ const detail = enabled
20
+ ? chalk.gray(' Paths are used directly without logical-to-physical mapping.')
21
+ : chalk.gray(' Paths are resolved through logical-to-physical mapping.');
22
+ return envelope_ok(`Physical filesystem mode: ${chalk.yellow(status)}\n${detail}\n${chalk.gray('\nUsage: physicalmode [on|off]')}\n`, { kind: 'sys.physicalMode', data: { enabled } });
25
23
  }
26
24
  if (subcommand === 'on') {
27
25
  session.physicalMode_set(true);
28
- console.log(chalk.yellow('[!] Physical filesystem mode enabled'));
29
- console.log(chalk.gray(' Paths will be used directly without logical-to-physical mapping.'));
26
+ return envelope_ok(`${chalk.yellow('[!] Physical filesystem mode enabled')}\n${chalk.gray(' Paths will be used directly without logical-to-physical mapping.')}\n`, { kind: 'sys.physicalMode', data: { enabled: true } });
30
27
  }
31
- else if (subcommand === 'off') {
28
+ if (subcommand === 'off') {
32
29
  session.physicalMode_set(false);
33
- console.log(chalk.green('[+] Physical filesystem mode disabled'));
34
- console.log(chalk.gray(' Paths will be resolved through logical-to-physical mapping.'));
35
- }
36
- else {
37
- console.log(chalk.red(`Unknown argument: ${subcommand}`));
38
- console.log(chalk.gray('Usage: physicalmode [on|off]'));
30
+ return envelope_ok(`${chalk.green('[+] Physical filesystem mode disabled')}\n${chalk.gray(' Paths will be resolved through logical-to-physical mapping.')}\n`, { kind: 'sys.physicalMode', data: { enabled: false } });
39
31
  }
32
+ return envelope_error(`${chalk.red(`Unknown argument: ${subcommand}`)}\n${chalk.gray('Usage: physicalmode [on|off]')}\n`);
40
33
  }
41
34
  //# sourceMappingURL=physicalmode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"physicalmode.js","sourceRoot":"","sources":["../../../src/builtins/sys/physicalmode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAc;IACvD,MAAM,UAAU,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAW,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC1D,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC,CAAC;IAClG,CAAC;SAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC,CAAC;IAC7F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"physicalmode.js","sourceRoot":"","sources":["../../../src/builtins/sys/physicalmode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAc;IACvD,MAAM,UAAU,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAY,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACpD,MAAM,MAAM,GAAW,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAW,OAAO;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC;YAC9E,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC5E,OAAO,WAAW,CAChB,6BAA6B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,EACjH,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,IAAI,EAClJ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CACtD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,IAAI,EAC7I,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACvD,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CACnB,GAAG,KAAK,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CACnG,CAAC;AACJ,CAAC"}
@@ -1,6 +1,8 @@
1
+ import { CommandEnvelope } from '@fnndsc/cumin';
1
2
  /**
2
3
  * Toggles or displays command timing mode.
3
4
  *
4
5
  * @param args - Command line arguments: 'on', 'off', or empty to display status.
6
+ * @returns An envelope describing the (possibly updated) timing state.
5
7
  */
6
- export declare function builtin_timing(args: string[]): Promise<void>;
8
+ export declare function builtin_timing(args: string[]): Promise<CommandEnvelope>;
@@ -1,41 +1,34 @@
1
1
  /**
2
2
  * @file Builtin timing command.
3
- * Toggles execution timing.
3
+ * Toggles execution timing, reported as a command envelope.
4
4
  */
5
5
  import chalk from 'chalk';
6
+ import { envelope_ok, envelope_error } from '@fnndsc/cumin';
6
7
  import { session } from '../../session/index.js';
7
8
  /**
8
9
  * Toggles or displays command timing mode.
9
10
  *
10
11
  * @param args - Command line arguments: 'on', 'off', or empty to display status.
12
+ * @returns An envelope describing the (possibly updated) timing state.
11
13
  */
12
14
  export async function builtin_timing(args) {
13
15
  const subcommand = args[0];
14
16
  if (!subcommand) {
15
- const status = session.timingEnabled_get() ? 'enabled' : 'disabled';
16
- console.log(`Command timing: ${chalk.yellow(status)}`);
17
- if (session.timingEnabled_get()) {
18
- console.log(chalk.gray(' Execution times will be displayed after each command.'));
19
- }
20
- else {
21
- console.log(chalk.gray(' Execution times are hidden.'));
22
- }
23
- console.log(chalk.gray('\nUsage: timing [on|off]'));
24
- return;
17
+ const enabled = session.timingEnabled_get();
18
+ const status = enabled ? 'enabled' : 'disabled';
19
+ const detail = enabled
20
+ ? chalk.gray(' Execution times will be displayed after each command.')
21
+ : chalk.gray(' Execution times are hidden.');
22
+ return envelope_ok(`Command timing: ${chalk.yellow(status)}\n${detail}\n${chalk.gray('\nUsage: timing [on|off]')}\n`, { kind: 'sys.timing', data: { enabled } });
25
23
  }
26
24
  if (subcommand === 'on') {
27
25
  session.timingEnabled_set(true);
28
- console.log(chalk.green('[+] Command timing enabled'));
29
- console.log(chalk.gray(' Execution times will be displayed after each command.'));
26
+ return envelope_ok(`${chalk.green('[+] Command timing enabled')}\n${chalk.gray(' Execution times will be displayed after each command.')}\n`, { kind: 'sys.timing', data: { enabled: true } });
30
27
  }
31
- else if (subcommand === 'off') {
28
+ if (subcommand === 'off') {
32
29
  session.timingEnabled_set(false);
33
- console.log(chalk.gray('[-] Command timing disabled'));
34
- console.log(chalk.gray(' Execution times will no longer be displayed.'));
35
- }
36
- else {
37
- console.log(chalk.red(`Unknown argument: ${subcommand}`));
38
- console.log(chalk.gray('Usage: timing [on|off]'));
30
+ return envelope_ok(`${chalk.gray('[-] Command timing disabled')}\n${chalk.gray(' Execution times will no longer be displayed.')}\n`, { kind: 'sys.timing', data: { enabled: false } });
39
31
  }
32
+ return envelope_error(`${chalk.red(`Unknown argument: ${subcommand}`)}\n${chalk.gray('Usage: timing [on|off]')}\n`);
40
33
  }
41
34
  //# sourceMappingURL=timing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../src/builtins/sys/timing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,UAAU,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAW,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACvF,CAAC;SAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../src/builtins/sys/timing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,UAAU,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAY,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrD,MAAM,MAAM,GAAW,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAW,OAAO;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC;YACvE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAChD,OAAO,WAAW,CAChB,mBAAmB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EACjG,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,IAAI,EAC5H,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,IAAI,EACnH,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACjD,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CACnB,GAAG,KAAK,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAC7F,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @file Builtin version.
3
+ * Reports the chell stack versions (chell plus the chili/salsa/cumin layers) as
4
+ * a command envelope — the in-shell counterpart of `chell --version`.
5
+ */
6
+ import { CommandEnvelope } from '@fnndsc/cumin';
7
+ /**
8
+ * Reports the version of chell and the sandwich layers it runs with — the same
9
+ * report as `chell --version`, available from inside the shell.
10
+ *
11
+ * @param _args - Unused.
12
+ * @returns An envelope carrying the multi-line version report and a typed model
13
+ * of each layer's version.
14
+ */
15
+ export declare function builtin_version(_args: string[]): Promise<CommandEnvelope>;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @file Builtin version.
3
+ * Reports the chell stack versions (chell plus the chili/salsa/cumin layers) as
4
+ * a command envelope — the in-shell counterpart of `chell --version`.
5
+ */
6
+ import { envelope_ok } from '@fnndsc/cumin';
7
+ import { versionReport_build, versions_get } from '../../core/version.js';
8
+ /**
9
+ * Reports the version of chell and the sandwich layers it runs with — the same
10
+ * report as `chell --version`, available from inside the shell.
11
+ *
12
+ * @param _args - Unused.
13
+ * @returns An envelope carrying the multi-line version report and a typed model
14
+ * of each layer's version.
15
+ */
16
+ export async function builtin_version(_args) {
17
+ const versions = versions_get();
18
+ return envelope_ok(`${versionReport_build()}\n`, {
19
+ kind: 'sys.version',
20
+ data: versions,
21
+ });
22
+ }
23
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/builtins/sys/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAe;IACnD,MAAM,QAAQ,GAAkB,YAAY,EAAE,CAAC;IAC/C,OAAO,WAAW,CAAC,GAAG,mBAAmB,EAAE,IAAI,EAAE;QAC/C,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC"}