@fnndsc/brasa 0.31.4 → 0.32.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 (68) hide show
  1. package/dist/buildinfo.json +1 -1
  2. package/dist/builtins/fs/pull.js +16 -0
  3. package/dist/builtins/fs/pull.js.map +1 -1
  4. package/dist/builtins/games/bytes.d.ts +21 -0
  5. package/dist/builtins/games/bytes.js +224 -0
  6. package/dist/builtins/games/bytes.js.map +1 -0
  7. package/dist/builtins/games/chimes.d.ts +64 -0
  8. package/dist/builtins/games/chimes.js +223 -0
  9. package/dist/builtins/games/chimes.js.map +1 -0
  10. package/dist/builtins/games/cowsay.d.ts +36 -0
  11. package/dist/builtins/games/cowsay.js +127 -0
  12. package/dist/builtins/games/cowsay.js.map +1 -0
  13. package/dist/builtins/games/figlet.d.ts +25 -0
  14. package/dist/builtins/games/figlet.js +109 -0
  15. package/dist/builtins/games/figlet.js.map +1 -0
  16. package/dist/builtins/games/lab.d.ts +51 -0
  17. package/dist/builtins/games/lab.js +161 -0
  18. package/dist/builtins/games/lab.js.map +1 -0
  19. package/dist/builtins/games/lolcat.d.ts +26 -0
  20. package/dist/builtins/games/lolcat.js +71 -0
  21. package/dist/builtins/games/lolcat.js.map +1 -0
  22. package/dist/builtins/games/morse.d.ts +18 -0
  23. package/dist/builtins/games/morse.js +46 -0
  24. package/dist/builtins/games/morse.js.map +1 -0
  25. package/dist/builtins/games/numbers.d.ts +55 -0
  26. package/dist/builtins/games/numbers.js +270 -0
  27. package/dist/builtins/games/numbers.js.map +1 -0
  28. package/dist/builtins/games/play.d.ts +53 -0
  29. package/dist/builtins/games/play.js +228 -0
  30. package/dist/builtins/games/play.js.map +1 -0
  31. package/dist/builtins/games/qr.d.ts +40 -0
  32. package/dist/builtins/games/qr.js +336 -0
  33. package/dist/builtins/games/qr.js.map +1 -0
  34. package/dist/builtins/games/shelf.d.ts +27 -0
  35. package/dist/builtins/games/shelf.js +71 -0
  36. package/dist/builtins/games/shelf.js.map +1 -0
  37. package/dist/builtins/games/show.d.ts +32 -0
  38. package/dist/builtins/games/show.js +68 -0
  39. package/dist/builtins/games/show.js.map +1 -0
  40. package/dist/builtins/games/sky.d.ts +69 -0
  41. package/dist/builtins/games/sky.js +190 -0
  42. package/dist/builtins/games/sky.js.map +1 -0
  43. package/dist/builtins/games/stdin.d.ts +34 -0
  44. package/dist/builtins/games/stdin.js +48 -0
  45. package/dist/builtins/games/stdin.js.map +1 -0
  46. package/dist/builtins/games/text.d.ts +46 -0
  47. package/dist/builtins/games/text.js +133 -0
  48. package/dist/builtins/games/text.js.map +1 -0
  49. package/dist/builtins/games/wtf.d.ts +13 -0
  50. package/dist/builtins/games/wtf.data.d.ts +12 -0
  51. package/dist/builtins/games/wtf.data.js +70 -0
  52. package/dist/builtins/games/wtf.data.js.map +1 -0
  53. package/dist/builtins/games/wtf.js +45 -0
  54. package/dist/builtins/games/wtf.js.map +1 -0
  55. package/dist/builtins/help.d.ts +8 -0
  56. package/dist/builtins/help.js +296 -0
  57. package/dist/builtins/help.js.map +1 -1
  58. package/dist/core/dispatch.js +125 -9
  59. package/dist/core/dispatch.js.map +1 -1
  60. package/dist/core/engine.js +1 -0
  61. package/dist/core/engine.js.map +1 -1
  62. package/dist/core/surface.d.ts +14 -0
  63. package/dist/core/surface.js.map +1 -1
  64. package/dist/lib/vfs/providers/static.js +15 -1
  65. package/dist/lib/vfs/providers/static.js.map +1 -1
  66. package/dist/lib/vfs/providers/static_content.js +2 -2
  67. package/dist/lib/vfs/providers/static_content.js.map +1 -1
  68. package/package.json +4 -4
@@ -1 +1 @@
1
- {"hash":"e57ca8"}
1
+ {"hash":"ff1316"}
@@ -22,6 +22,7 @@ import { pacs_seriesCollect, pacsServer_resolve, } from '../net/pacsUtils.js';
22
22
  import { builtin_cubepath } from '../net/cubepath.js';
23
23
  import { pullArgs_parse } from './pull.args.js';
24
24
  import { sink_get, sink_dataLine, sink_errLine } from '../../core/sink.js';
25
+ import { repl_confirm } from '../../core/question.js';
25
26
  import { newFeed_cacheAdd, run_follow } from '../feedCreation.js';
26
27
  import { builtin_pipeline } from '../res/pipeline.js';
27
28
  import { executableArguments_parse } from '../argumentTokens.js';
@@ -41,6 +42,7 @@ function pullProgress_emit(task, status, phase = 'watching') {
41
42
  unit: 'files',
42
43
  status: status ?? retrieveProgress_classify(task),
43
44
  ...(task.cubePathDir !== null ? { path: task.cubePathDir } : {}),
45
+ ...(task.reason !== undefined ? { reason: task.reason } : {}),
44
46
  });
45
47
  }
46
48
  /**
@@ -77,6 +79,18 @@ async function pulledFolders_announce(allTasks) {
77
79
  */
78
80
  function pullEvents_make() {
79
81
  return {
82
+ // A silent PACS is the operator's call, not a timer's: CUBE has been
83
+ // checked already, and the question says what it found.
84
+ stillWaiting: async (waiting, waitedS) => {
85
+ const which = waiting.length === 1 ? waiting[0].label : `${waiting.length} series`;
86
+ try {
87
+ return await repl_confirm(`No files from the PACS yet for ${which} after ${waitedS}s, and none in CUBE. Keep waiting? (y/n)`);
88
+ }
89
+ catch {
90
+ // Nobody to ask (a script, a pipe): wait the longer window, then stop.
91
+ return waitedS < 60;
92
+ }
93
+ },
80
94
  task: (task, status, phase) => pullProgress_emit(task, status, phase),
81
95
  retryRound: (attempt, retryMax, count) => sink_dataLine(chalk.yellow(`\nRetry ${attempt}/${retryMax} for ${count} unconfirmed series...`)),
82
96
  // Said out loud: a silent reconnection during a long pull is
@@ -196,6 +210,8 @@ function pullSummary_print(allTasks, totalFiringErrors) {
196
210
  }
197
211
  else {
198
212
  sink_dataLine(chalk.yellow(` ✗ ${f.label} [${f.status.toUpperCase()} — verify with: pacs status]`));
213
+ if (f.reason !== undefined)
214
+ sink_dataLine(chalk.yellow(` ${f.reason}`));
199
215
  }
200
216
  }
201
217
  for (const u of unconfirmed) {
@@ -1 +1 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/builtins/fs/pull.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../src/builtins/fs/pull.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { CommandEnvelope } from '@fnndsc/cumin';
2
+ /** Bytes `xxd` shows when not told. */
3
+ export declare const XXD_DEFAULT: number;
4
+ /** Strings `strings` shows when not told. */
5
+ export declare const STRINGS_DEFAULT: number;
6
+ /** What a file is, by its first bytes. */
7
+ export declare function magic_of(bytes: Buffer, name?: string): string;
8
+ /** The canonical hex dump of some bytes, offsets from `base`. */
9
+ export declare function hexdump_render(bytes: Buffer, base?: number): string;
10
+ /** The printable runs of at least `min` characters in some bytes. */
11
+ export declare function strings_find(bytes: Buffer, min?: number): string[];
12
+ /** `file <path>...` */
13
+ export declare function builtin_file(args: string[]): Promise<CommandEnvelope>;
14
+ /** `xxd [-s OFFSET] [-l LENGTH] <path>` */
15
+ export declare function builtin_xxd(args: string[]): Promise<CommandEnvelope>;
16
+ /** `strings [-n MIN] [-l LIMIT] <path>` */
17
+ export declare function builtin_strings(args: string[]): Promise<CommandEnvelope>;
18
+ /** `sha256sum <path>...` */
19
+ export declare function builtin_sha256sum(args: string[]): Promise<CommandEnvelope>;
20
+ /** `md5sum <path>...` */
21
+ export declare function builtin_md5sum(args: string[]): Promise<CommandEnvelope>;
@@ -0,0 +1,224 @@
1
+ /**
2
+ * @file Bytes of a CFS file: `file`, `xxd`, `strings`, `sha256sum`, `md5sum`.
3
+ *
4
+ * The way people learn what a file is: by its magic, in hex, by the words
5
+ * in it, by its digest. Each reads the file the way `cat` does, through
6
+ * the session's filesystem, so a path is a CFS path. `xxd` and `strings`
7
+ * are bounded and say what they showed.
8
+ *
9
+ * @module
10
+ */
11
+ import { createHash } from 'node:crypto';
12
+ import { envelope_ok, envelope_error, errorStack } from '@fnndsc/cumin';
13
+ import { files_cat, files_catBinary } from '@fnndsc/chili/commands/fs/cat.js';
14
+ import chalk from 'chalk';
15
+ import { path_resolve, error_stripDebugPrefix } from '../utils.js';
16
+ /** Bytes `xxd` shows when not told. */
17
+ export const XXD_DEFAULT = 256;
18
+ /** Strings `strings` shows when not told. */
19
+ export const STRINGS_DEFAULT = 200;
20
+ /** What a file is, by its first bytes. */
21
+ export function magic_of(bytes, name = '') {
22
+ const at = (i) => bytes[i] ?? -1;
23
+ const ascii = (from, to) => bytes.subarray(from, to).toString('latin1');
24
+ if (bytes.length === 0)
25
+ return 'empty';
26
+ if (bytes.length > 132 && ascii(128, 132) === 'DICM')
27
+ return 'DICOM medical image (part 10, with preamble)';
28
+ if (at(0) === 0x1f && at(1) === 0x8b)
29
+ return /\.nii\.gz$/i.test(name) ? 'gzip compressed data, a NIfTI volume by its name' : 'gzip compressed data';
30
+ if (bytes.length >= 348 && (ascii(344, 348) === 'n+1\0' || ascii(344, 348) === 'ni1\0'))
31
+ return 'NIfTI-1 neuroimaging volume';
32
+ if (bytes.length >= 8 && ascii(4, 8) === 'n+2\0')
33
+ return 'NIfTI-2 neuroimaging volume';
34
+ if (ascii(0, 4) === '\x89PNG')
35
+ return 'PNG image';
36
+ if (at(0) === 0xff && at(1) === 0xd8)
37
+ return 'JPEG image';
38
+ if (ascii(0, 4) === 'GIF8')
39
+ return 'GIF image';
40
+ if (ascii(0, 4) === '%PDF')
41
+ return 'PDF document';
42
+ if (ascii(0, 2) === 'PK')
43
+ return 'ZIP archive';
44
+ if (ascii(0, 4) === 'MThd')
45
+ return 'MIDI';
46
+ if (ascii(0, 4) === 'RIFF')
47
+ return 'RIFF (WAV or AVI)';
48
+ if (ascii(0, 2) === 'BM')
49
+ return 'BMP image';
50
+ if (ascii(0, 7) === '!<arch>')
51
+ return 'ar archive';
52
+ if (ascii(0, 4) === '\x7fELF')
53
+ return 'ELF executable';
54
+ if (ascii(0, 5) === 'ustar' || ascii(257, 262) === 'ustar')
55
+ return 'tar archive';
56
+ if (at(0) === 0x42 && at(1) === 0x5a && at(2) === 0x68)
57
+ return 'bzip2 compressed data';
58
+ if (ascii(0, 6) === '\xfd7zXZ\0')
59
+ return 'xz compressed data';
60
+ const head = bytes.subarray(0, 4096);
61
+ let printable = 0;
62
+ for (const b of head)
63
+ if (b === 9 || b === 10 || b === 13 || (b >= 32 && b < 127) || b >= 128)
64
+ printable++;
65
+ if (printable / head.length > 0.95) {
66
+ const text = head.toString('utf-8');
67
+ if (/^\s*[{[]/.test(text))
68
+ return 'JSON text';
69
+ if (/^#!/.test(text))
70
+ return `script text (${text.split('\n')[0]?.slice(2).trim() ?? ''})`;
71
+ if (/^\s*<\?xml/i.test(text))
72
+ return 'XML text';
73
+ if (/^\s*<(!doctype html|html)/i.test(text))
74
+ return 'HTML text';
75
+ const lines = text.split('\n').slice(0, 5);
76
+ if (lines.length > 1 && lines.every((l) => l.split(',').length > 1))
77
+ return 'CSV text';
78
+ return head.some((b) => b >= 128) ? 'UTF-8 text' : 'ASCII text';
79
+ }
80
+ return 'data';
81
+ }
82
+ /** The canonical hex dump of some bytes, offsets from `base`. */
83
+ export function hexdump_render(bytes, base = 0) {
84
+ const lines = [];
85
+ for (let off = 0; off < bytes.length; off += 16) {
86
+ const chunk = bytes.subarray(off, off + 16);
87
+ const hex = [];
88
+ for (let i = 0; i < 16; i += 2) {
89
+ const a = chunk[i];
90
+ const b = chunk[i + 1];
91
+ hex.push(a === undefined ? ' ' : b === undefined ? `${a.toString(16).padStart(2, '0')} ` : `${a.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`);
92
+ }
93
+ const text = [...chunk].map((b) => (b >= 32 && b < 127 ? String.fromCharCode(b) : '.')).join('');
94
+ lines.push(`${(base + off).toString(16).padStart(8, '0')}: ${hex.join(' ')} ${text}`);
95
+ }
96
+ return lines.join('\n');
97
+ }
98
+ /** The printable runs of at least `min` characters in some bytes. */
99
+ export function strings_find(bytes, min = 4) {
100
+ const out = [];
101
+ let run = '';
102
+ for (const b of bytes) {
103
+ if (b >= 32 && b < 127) {
104
+ run += String.fromCharCode(b);
105
+ continue;
106
+ }
107
+ if (run.length >= min)
108
+ out.push(run);
109
+ run = '';
110
+ }
111
+ if (run.length >= min)
112
+ out.push(run);
113
+ return out;
114
+ }
115
+ /** Reads a CFS file's bytes, or answers why not. */
116
+ async function bytes_read(pathArg, name) {
117
+ const target = await path_resolve(pathArg);
118
+ const result = await files_catBinary(target);
119
+ if (result.ok)
120
+ return { path: target, bytes: result.value };
121
+ // A projected file (/etc/cube, a /proc log) has words but no bytes of its
122
+ // own: its text is read instead, and the refusal of the first read is
123
+ // dropped — it was a question, not a failure.
124
+ const first = errorStack.stack_pop();
125
+ const text = await files_cat(target);
126
+ if (text.ok)
127
+ return { path: target, bytes: Buffer.from(text.value, 'utf-8') };
128
+ const last = errorStack.stack_pop() ?? first;
129
+ const why = last === undefined ? 'cannot read' : error_stripDebugPrefix(last.message);
130
+ return { error: envelope_error('', undefined, `${name}: ${pathArg}: ${why}\n`) };
131
+ }
132
+ /** Takes `-FLAG N` pairs off the arguments. */
133
+ function numberFlags_take(args, flags) {
134
+ const values = {};
135
+ const rest = [];
136
+ for (let i = 0; i < args.length; i++) {
137
+ const a = args[i];
138
+ if (flags.includes(a)) {
139
+ const n = Number(args[i + 1]);
140
+ if (!Number.isInteger(n) || n < 0)
141
+ return { refusal: `${a} wants a whole number` };
142
+ values[a] = n;
143
+ i++;
144
+ }
145
+ else {
146
+ rest.push(a);
147
+ }
148
+ }
149
+ return { values, rest };
150
+ }
151
+ /** `file <path>...` */
152
+ export async function builtin_file(args) {
153
+ if (args.length === 0)
154
+ return envelope_error('', undefined, 'file: usage: file <path>...\n');
155
+ const lines = [];
156
+ const data = [];
157
+ for (const arg of args) {
158
+ const read = await bytes_read(arg, 'file');
159
+ if ('error' in read)
160
+ return read.error;
161
+ const kind = magic_of(read.bytes, read.path);
162
+ lines.push(`${arg}: ${kind}${read.bytes.length > 0 ? chalk.gray(` (${read.bytes.length.toLocaleString('en-US')} bytes)`) : ''}`);
163
+ data.push({ path: read.path, kind, bytes: read.bytes.length });
164
+ }
165
+ return envelope_ok(`${lines.join('\n')}\n`, { kind: 'games.file', data: { files: data } });
166
+ }
167
+ /** `xxd [-s OFFSET] [-l LENGTH] <path>` */
168
+ export async function builtin_xxd(args) {
169
+ const parsed = numberFlags_take(args, ['-s', '-l']);
170
+ if ('refusal' in parsed)
171
+ return envelope_error('', undefined, `xxd: ${parsed.refusal}\n`);
172
+ if (parsed.rest.length !== 1)
173
+ return envelope_error('', undefined, 'xxd: usage: xxd [-s OFFSET] [-l LENGTH] <path>\n');
174
+ const read = await bytes_read(parsed.rest[0], 'xxd');
175
+ if ('error' in read)
176
+ return read.error;
177
+ const offset = parsed.values['-s'] ?? 0;
178
+ const length = parsed.values['-l'] ?? XXD_DEFAULT;
179
+ const shown = read.bytes.subarray(offset, offset + length);
180
+ const more = read.bytes.length - offset - shown.length;
181
+ const note = more > 0 ? chalk.gray(`\nxxd: ${shown.length} of ${read.bytes.length.toLocaleString('en-US')} bytes shown (-l ${length}; -s to start elsewhere)`) : '';
182
+ return envelope_ok(`${hexdump_render(shown, offset)}${note}\n`, { kind: 'games.xxd', data: { path: read.path, offset, shown: shown.length, total: read.bytes.length } });
183
+ }
184
+ /** `strings [-n MIN] [-l LIMIT] <path>` */
185
+ export async function builtin_strings(args) {
186
+ const parsed = numberFlags_take(args, ['-n', '-l']);
187
+ if ('refusal' in parsed)
188
+ return envelope_error('', undefined, `strings: ${parsed.refusal}\n`);
189
+ if (parsed.rest.length !== 1)
190
+ return envelope_error('', undefined, 'strings: usage: strings [-n MIN] [-l LIMIT] <path>\n');
191
+ const read = await bytes_read(parsed.rest[0], 'strings');
192
+ if ('error' in read)
193
+ return read.error;
194
+ const min = Math.max(1, parsed.values['-n'] ?? 4);
195
+ const limit = parsed.values['-l'] ?? STRINGS_DEFAULT;
196
+ const found = strings_find(read.bytes, min);
197
+ const shown = found.slice(0, limit);
198
+ const note = found.length > shown.length ? chalk.gray(`\nstrings: ${shown.length} of ${found.length} shown (-l for more)`) : '';
199
+ return envelope_ok(`${shown.join('\n')}${note}\n`, { kind: 'games.strings', data: { path: read.path, shown: shown.length, total: found.length } });
200
+ }
201
+ async function digest_run(args, algorithm, name) {
202
+ if (args.length === 0)
203
+ return envelope_error('', undefined, `${name}: usage: ${name} <path>...\n`);
204
+ const lines = [];
205
+ const data = [];
206
+ for (const arg of args) {
207
+ const read = await bytes_read(arg, name);
208
+ if ('error' in read)
209
+ return read.error;
210
+ const digest = createHash(algorithm).update(read.bytes).digest('hex');
211
+ lines.push(`${digest} ${arg}`);
212
+ data.push({ path: read.path, digest });
213
+ }
214
+ return envelope_ok(`${lines.join('\n')}\n`, { kind: `games.${name}`, data: { algorithm, files: data } });
215
+ }
216
+ /** `sha256sum <path>...` */
217
+ export async function builtin_sha256sum(args) {
218
+ return digest_run(args, 'sha256', 'sha256sum');
219
+ }
220
+ /** `md5sum <path>...` */
221
+ export async function builtin_md5sum(args) {
222
+ return digest_run(args, 'md5', 'md5sum');
223
+ }
224
+ //# sourceMappingURL=bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src/builtins/games/bytes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @file Chimes: `timer`, `leave` and `stopwatch`.
3
+ *
4
+ * A chime is a word said later. The kernel keeps it on a clock and, when
5
+ * the time comes, publishes it on the ambient channel as an envelope of
6
+ * its own — the same road a refreshed listing takes — so every surface on
7
+ * the session hears it: ARGUS notes it in the console and speaks it, a
8
+ * remote chell prints it. Nothing holds the lane while it waits. A chime
9
+ * lives as long as the process: a session's chimes end with it.
10
+ *
11
+ * @module
12
+ */
13
+ import { CommandEnvelope } from '@fnndsc/cumin';
14
+ /** A chime waiting its turn. */
15
+ export interface Chime {
16
+ id: number;
17
+ /** When it sounds, epoch ms. */
18
+ at: number;
19
+ text: string;
20
+ /** What set it. */
21
+ source: 'timer' | 'leave';
22
+ }
23
+ /** The longest a chime may wait. */
24
+ export declare const CHIME_MAX_MS: number;
25
+ /** What sounding a chime does; a test hands in its own ear. */
26
+ export type ChimeSound = (chime: Chime) => void;
27
+ /**
28
+ * Sets a chime.
29
+ *
30
+ * @param delayMs - How long from now.
31
+ * @param text - What it says.
32
+ * @param source - What set it.
33
+ * @param sound - How it sounds (the ambient channel by default).
34
+ * @returns The chime.
35
+ */
36
+ export declare function chime_set(delayMs: number, text: string, source: Chime['source'], sound?: ChimeSound): Chime;
37
+ /** The chimes still waiting, soonest first. */
38
+ export declare function chimes_list(): Chime[];
39
+ /**
40
+ * Cancels one chime, or every chime of a source, or all of them.
41
+ *
42
+ * @returns How many were cancelled.
43
+ */
44
+ export declare function chimes_cancel(which: number | Chime['source'] | 'all'): number;
45
+ /**
46
+ * Reads a duration: `90s`, `5m`, `1h30m`, `2:30` (m:ss), `1:00:00`, or a bare number of minutes.
47
+ *
48
+ * @returns Milliseconds, or null when the words are not a duration.
49
+ */
50
+ export declare function duration_parse(text: string): number | null;
51
+ /** A span in words: `1h 05m`, `4m 30s`, `12s`. */
52
+ export declare function span_words(ms: number): string;
53
+ /** `timer <duration> [words] | timer | timer cancel [id|all]` */
54
+ export declare function builtin_timer(args: string[]): Promise<CommandEnvelope>;
55
+ /** Reads `+hhmm` (from now) or `hhmm` (a clock time, today or tomorrow) as a delay. */
56
+ export declare function leave_delay(text: string, now?: Date): number | null;
57
+ /** `leave [+hhmm | hhmm] | leave cancel` — BSD's leave: a word five minutes before, one at the time, and one after. */
58
+ export declare function builtin_leave(args: string[]): Promise<CommandEnvelope>;
59
+ /** The stopwatch's elapsed time now. */
60
+ export declare function stopwatch_elapsed(now?: number): number;
61
+ /** Resets the stopwatch (a test's seam, and `stopwatch reset`). */
62
+ export declare function stopwatch_reset(): void;
63
+ /** `stopwatch [start|stop|lap|reset]` — bare, it shows the time. */
64
+ export declare function builtin_stopwatch(args: string[]): Promise<CommandEnvelope>;