@duyquangnvx/agent-cli 0.4.0 → 0.6.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 (161) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/dist/agent-cli.js +2 -2
  3. package/dist/agent-cli.js.map +1 -1
  4. package/dist/agent.d.ts +5 -3
  5. package/dist/agent.js +31 -10
  6. package/dist/agent.js.map +1 -1
  7. package/dist/built-ins/commands.d.ts +8 -0
  8. package/dist/{built-ins.js → built-ins/commands.js} +4 -4
  9. package/dist/built-ins/commands.js.map +1 -0
  10. package/dist/built-ins/doctor-rows.d.ts +4 -0
  11. package/dist/{doctor-rows.js → built-ins/doctor-rows.js} +18 -26
  12. package/dist/built-ins/doctor-rows.js.map +1 -0
  13. package/dist/built-ins/doctor.d.ts +5 -0
  14. package/dist/{doctor.js → built-ins/doctor.js} +27 -20
  15. package/dist/built-ins/doctor.js.map +1 -0
  16. package/dist/{global-install.js → built-ins/global-install.js} +1 -1
  17. package/dist/built-ins/global-install.js.map +1 -0
  18. package/dist/{npm.d.ts → built-ins/npm.d.ts} +5 -2
  19. package/dist/{npm.js → built-ins/npm.js} +25 -33
  20. package/dist/built-ins/npm.js.map +1 -0
  21. package/dist/built-ins/semver.js.map +1 -0
  22. package/dist/built-ins/skills.d.ts +18 -0
  23. package/dist/built-ins/skills.js +97 -0
  24. package/dist/built-ins/skills.js.map +1 -0
  25. package/dist/{update.d.ts → built-ins/update.d.ts} +3 -2
  26. package/dist/{update.js → built-ins/update.js} +28 -18
  27. package/dist/built-ins/update.js.map +1 -0
  28. package/dist/{upgrade-notes.js → built-ins/upgrade-notes.js} +1 -1
  29. package/dist/built-ins/upgrade-notes.js.map +1 -0
  30. package/dist/clock.d.ts +1 -0
  31. package/dist/clock.js.map +1 -1
  32. package/dist/command-spec.d.ts +17 -2
  33. package/dist/command-spec.js +30 -9
  34. package/dist/command-spec.js.map +1 -1
  35. package/dist/confirm.js +6 -2
  36. package/dist/confirm.js.map +1 -1
  37. package/dist/context.d.ts +139 -0
  38. package/dist/context.js +2 -0
  39. package/dist/context.js.map +1 -0
  40. package/dist/cost.js +2 -2
  41. package/dist/cost.js.map +1 -1
  42. package/dist/define.d.ts +100 -87
  43. package/dist/define.js +3 -1
  44. package/dist/define.js.map +1 -1
  45. package/dist/errno.d.ts +8 -4
  46. package/dist/errno.js +21 -4
  47. package/dist/errno.js.map +1 -1
  48. package/dist/error-table.d.ts +6 -1
  49. package/dist/error-table.js +5 -1
  50. package/dist/error-table.js.map +1 -1
  51. package/dist/errors.d.ts +11 -2
  52. package/dist/errors.js +21 -8
  53. package/dist/errors.js.map +1 -1
  54. package/dist/execute.d.ts +9 -2
  55. package/dist/execute.js +10 -3
  56. package/dist/execute.js.map +1 -1
  57. package/dist/exit-classes.js +38 -38
  58. package/dist/exit-classes.js.map +1 -1
  59. package/dist/files.d.ts +30 -8
  60. package/dist/files.js +104 -17
  61. package/dist/files.js.map +1 -1
  62. package/dist/help-json.d.ts +2 -2
  63. package/dist/help-json.js +6 -2
  64. package/dist/help-json.js.map +1 -1
  65. package/dist/help.d.ts +1 -1
  66. package/dist/help.js +14 -9
  67. package/dist/help.js.map +1 -1
  68. package/dist/index.d.ts +12 -5
  69. package/dist/index.js +6 -2
  70. package/dist/index.js.map +1 -1
  71. package/dist/input.d.ts +7 -1
  72. package/dist/input.js +33 -4
  73. package/dist/input.js.map +1 -1
  74. package/dist/interrupts.d.ts +7 -2
  75. package/dist/interrupts.js +29 -15
  76. package/dist/interrupts.js.map +1 -1
  77. package/dist/invocation.d.ts +10 -5
  78. package/dist/invocation.js +24 -11
  79. package/dist/invocation.js.map +1 -1
  80. package/dist/list.d.ts +12 -3
  81. package/dist/list.js +38 -6
  82. package/dist/list.js.map +1 -1
  83. package/dist/manifest.d.ts +17 -0
  84. package/dist/manifest.js +24 -0
  85. package/dist/manifest.js.map +1 -0
  86. package/dist/operator.d.ts +5 -0
  87. package/dist/operator.js +15 -0
  88. package/dist/operator.js.map +1 -0
  89. package/dist/output.d.ts +6 -4
  90. package/dist/output.js +5 -6
  91. package/dist/output.js.map +1 -1
  92. package/dist/outputs.d.ts +24 -1
  93. package/dist/outputs.js +58 -2
  94. package/dist/outputs.js.map +1 -1
  95. package/dist/parse-input.d.ts +11 -2
  96. package/dist/parse-input.js +78 -27
  97. package/dist/parse-input.js.map +1 -1
  98. package/dist/project.d.ts +3 -2
  99. package/dist/project.js +11 -10
  100. package/dist/project.js.map +1 -1
  101. package/dist/route.d.ts +1 -1
  102. package/dist/route.js +2 -1
  103. package/dist/route.js.map +1 -1
  104. package/dist/run-cli.d.ts +8 -33
  105. package/dist/run-cli.js +50 -157
  106. package/dist/run-cli.js.map +1 -1
  107. package/dist/run-command.d.ts +11 -0
  108. package/dist/run-command.js +234 -0
  109. package/dist/run-command.js.map +1 -0
  110. package/dist/run-options.d.ts +48 -0
  111. package/dist/run-options.js +2 -0
  112. package/dist/run-options.js.map +1 -0
  113. package/dist/run-process.js +7 -4
  114. package/dist/run-process.js.map +1 -1
  115. package/dist/secrets.d.ts +10 -6
  116. package/dist/secrets.js +8 -9
  117. package/dist/secrets.js.map +1 -1
  118. package/dist/side-task.d.ts +27 -0
  119. package/dist/side-task.js +31 -0
  120. package/dist/side-task.js.map +1 -0
  121. package/dist/spawn.d.ts +29 -6
  122. package/dist/spawn.js +126 -29
  123. package/dist/spawn.js.map +1 -1
  124. package/dist/spill.d.ts +4 -3
  125. package/dist/spill.js +1 -7
  126. package/dist/spill.js.map +1 -1
  127. package/dist/stdin.d.ts +33 -0
  128. package/dist/stdin.js +92 -0
  129. package/dist/stdin.js.map +1 -0
  130. package/dist/style.d.ts +1 -1
  131. package/dist/tokenize.d.ts +3 -0
  132. package/dist/tokenize.js +5 -4
  133. package/dist/tokenize.js.map +1 -1
  134. package/dist/tools.d.ts +6 -3
  135. package/dist/tools.js +18 -11
  136. package/dist/tools.js.map +1 -1
  137. package/dist/usage.d.ts +2 -0
  138. package/dist/usage.js +12 -1
  139. package/dist/usage.js.map +1 -1
  140. package/dist/version.d.ts +3 -0
  141. package/dist/version.js +7 -0
  142. package/dist/version.js.map +1 -0
  143. package/package.json +1 -1
  144. package/dist/built-ins.d.ts +0 -3
  145. package/dist/built-ins.js.map +0 -1
  146. package/dist/doctor-rows.d.ts +0 -3
  147. package/dist/doctor-rows.js.map +0 -1
  148. package/dist/doctor.d.ts +0 -4
  149. package/dist/doctor.js.map +0 -1
  150. package/dist/global-install.js.map +0 -1
  151. package/dist/npm.js.map +0 -1
  152. package/dist/semver.js.map +0 -1
  153. package/dist/skills.d.ts +0 -11
  154. package/dist/skills.js +0 -58
  155. package/dist/skills.js.map +0 -1
  156. package/dist/update.js.map +0 -1
  157. package/dist/upgrade-notes.js.map +0 -1
  158. /package/dist/{global-install.d.ts → built-ins/global-install.d.ts} +0 -0
  159. /package/dist/{semver.d.ts → built-ins/semver.d.ts} +0 -0
  160. /package/dist/{semver.js → built-ins/semver.js} +0 -0
  161. /package/dist/{upgrade-notes.d.ts → built-ins/upgrade-notes.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"execute.js","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execute.js","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
+ import { DOCTOR_PROBLEMS } from "./built-ins/doctor.js";
2
+ import { NOT_GLOBAL_INSTALL } from "./built-ins/global-install.js";
3
+ import { INSTALL_FAILED, NO_LATEST, NPM_FAILED, REGISTRY_AUTH, REGISTRY_UNREACHABLE, } from "./built-ins/npm.js";
1
4
  import { CONFIRMATION_MISMATCH, CONFIRMATION_REQUIRED } from "./confirm.js";
2
5
  import { NOT_CONFIRMED } from "./cost.js";
3
- import { DOCTOR_PROBLEMS } from "./doctor.js";
4
- import { ALREADY_EXISTS, DISK_FULL, NOT_FOUND, PERMISSION_DENIED } from "./errno.js";
6
+ import { ALREADY_EXISTS, DISK_FULL, NOT_A_FILE, NOT_FOUND, PERMISSION_DENIED } from "./errno.js";
5
7
  import { CliError, errorsOf, INTERNAL_CODE, UsageError } from "./errors.js";
6
- import { NOT_GLOBAL_INSTALL } from "./global-install.js";
7
8
  import { DEADLINE_EXCEEDED, INTERRUPTED } from "./interrupts.js";
8
9
  import { UNKNOWN_FIELD } from "./list.js";
9
- import { INSTALL_FAILED, NO_LATEST, NPM_FAILED, REGISTRY_AUTH, REGISTRY_UNREACHABLE, } from "./npm.js";
10
+ import { NEEDS_OPERATOR } from "./operator.js";
10
11
  import { OUTPUT_EXISTS } from "./outputs.js";
11
12
  import { PROJECT_INVALID } from "./project.js";
12
13
  import { TOOL_FAILED } from "./spawn.js";
14
+ import { STDIN_STALLED } from "./stdin.js";
13
15
  import { TOOL_MISSING } from "./tools.js";
14
16
  import { INVALID_INPUT, UNKNOWN_COMMAND, UNKNOWN_OPTION } from "./usage.js";
15
17
  export const SIGNAL_EXIT_CODES = { SIGINT: 130, SIGTERM: 143 };
@@ -20,41 +22,39 @@ export const EXIT_CODES = {
20
22
  wait: 75,
21
23
  bug: 70,
22
24
  };
23
- // Built on call: the modules that throw these codes import this one back (through output.ts), so
24
- // their constants are not initialised yet while this module loads.
25
- /** The codes the Runtime and its built-in Commands raise, each with the class that must act on it. */
26
- function runtimeCodes() {
27
- return {
28
- [INVALID_INPUT]: "caller",
29
- [UNKNOWN_OPTION]: "caller",
30
- [UNKNOWN_COMMAND]: "caller",
31
- [UNKNOWN_FIELD]: "caller",
32
- [CONFIRMATION_REQUIRED]: "caller",
33
- [CONFIRMATION_MISMATCH]: "caller",
34
- [NOT_CONFIRMED]: "operator",
35
- [OUTPUT_EXISTS]: "caller",
36
- [INTERRUPTED]: "interrupted",
37
- [DEADLINE_EXCEEDED]: "wait",
38
- [INTERNAL_CODE]: "bug",
39
- [PERMISSION_DENIED]: "operator",
40
- [DISK_FULL]: "operator",
41
- [NOT_FOUND]: "caller",
42
- [ALREADY_EXISTS]: "caller",
43
- [TOOL_FAILED]: "operator",
44
- [TOOL_MISSING]: "operator",
45
- [PROJECT_INVALID]: "operator",
46
- [DOCTOR_PROBLEMS]: "operator",
47
- [NOT_GLOBAL_INSTALL]: "operator",
48
- [REGISTRY_UNREACHABLE]: "operator",
49
- [REGISTRY_AUTH]: "operator",
50
- [INSTALL_FAILED]: "operator",
51
- [NPM_FAILED]: "operator",
52
- [NO_LATEST]: "source",
53
- };
54
- }
25
+ const RUNTIME_EXIT_CLASSES = {
26
+ [INVALID_INPUT]: "caller",
27
+ [UNKNOWN_OPTION]: "caller",
28
+ [UNKNOWN_COMMAND]: "caller",
29
+ [UNKNOWN_FIELD]: "caller",
30
+ [CONFIRMATION_REQUIRED]: "caller",
31
+ [CONFIRMATION_MISMATCH]: "caller",
32
+ [NOT_CONFIRMED]: "operator",
33
+ [NEEDS_OPERATOR]: "operator",
34
+ [OUTPUT_EXISTS]: "caller",
35
+ [STDIN_STALLED]: "caller",
36
+ [INTERRUPTED]: "interrupted",
37
+ [DEADLINE_EXCEEDED]: "wait",
38
+ [INTERNAL_CODE]: "bug",
39
+ [PERMISSION_DENIED]: "operator",
40
+ [DISK_FULL]: "operator",
41
+ [NOT_FOUND]: "caller",
42
+ [ALREADY_EXISTS]: "caller",
43
+ [NOT_A_FILE]: "caller",
44
+ [TOOL_FAILED]: "operator",
45
+ [TOOL_MISSING]: "operator",
46
+ [PROJECT_INVALID]: "operator",
47
+ [DOCTOR_PROBLEMS]: "operator",
48
+ [NOT_GLOBAL_INSTALL]: "operator",
49
+ [REGISTRY_UNREACHABLE]: "operator",
50
+ [REGISTRY_AUTH]: "operator",
51
+ [INSTALL_FAILED]: "operator",
52
+ [NPM_FAILED]: "operator",
53
+ [NO_LATEST]: "source",
54
+ };
55
55
  /** The codes of `errors` that the Runtime already declares, which a CLI cannot redeclare. */
56
56
  export function runtimeCodesIn(errors) {
57
- return Object.keys(errors).filter((code) => Object.hasOwn(runtimeCodes(), code));
57
+ return Object.keys(errors).filter((code) => Object.hasOwn(RUNTIME_EXIT_CLASSES, code));
58
58
  }
59
59
  // A code that neither the Runtime nor the CLI declares was thrown by mistake: a bug.
60
60
  function exitClassOfOne(error, errors) {
@@ -62,7 +62,7 @@ function exitClassOfOne(error, errors) {
62
62
  return "bug";
63
63
  if (error instanceof UsageError)
64
64
  return "caller";
65
- return runtimeCodes()[error.code] ?? errors[error.code]?.class ?? "bug";
65
+ return RUNTIME_EXIT_CLASSES[error.code] ?? errors[error.code]?.class ?? "bug";
66
66
  }
67
67
  export function isBug(error, errors) {
68
68
  return exitClassOfOne(error, errors) === "bug";
@@ -1 +1 @@
1
- {"version":3,"file":"exit-classes.js","sourceRoot":"","sources":["../src/exit-classes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exit-classes.js","sourceRoot":"","sources":["../src/exit-classes.ts"],"names":[],"mappings":"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"}
package/dist/files.d.ts CHANGED
@@ -1,31 +1,53 @@
1
- import type { Env } from "./define.js";
1
+ import type { FileError } from "./errno.js";
2
2
  export interface MkdirOptions {
3
3
  /** Fail with `ALREADY_EXISTS` when the folder itself exists. */
4
4
  readonly exclusive?: boolean;
5
+ /** The permission bits of each folder it creates, less the umask; an existing folder keeps its mode. */
6
+ readonly mode?: number;
7
+ }
8
+ export interface WriteOptions {
9
+ /** Fail with `ALREADY_EXISTS` when anything exists at the path. */
10
+ readonly exclusive?: boolean;
11
+ /** The file's permission bits, whatever mode an older file had. */
12
+ readonly mode?: number;
13
+ }
14
+ export interface FileStat {
15
+ readonly size: number;
16
+ /** The same for every link to one file: its device and inode. */
17
+ readonly id: string;
5
18
  }
6
19
  /** The file system as Commands use it; a test replaces it through `runCli`. */
7
20
  export interface Files {
8
- /** Writes `data` to the absolute `path` whole or not at all, creating missing parent folders. */
9
- write(path: string, data: string | Uint8Array): Promise<void>;
10
- /** Whether anything exists at the absolute `path`. */
21
+ /**
22
+ * Writes `data` to the absolute `path` whole or not at all, creating missing parent folders; a
23
+ * replacing write through a symlink replaces its target.
24
+ */
25
+ write(path: string, data: string | Uint8Array, options?: WriteOptions): Promise<void>;
26
+ /** Whether anything exists at the absolute `path`; false also for a path under a file. */
11
27
  exists(path: string): Promise<boolean>;
12
28
  read(path: string): Promise<Uint8Array>;
13
- /** The names in the absolute `folder`. */
29
+ /** The names in the absolute `folder`, sorted. */
14
30
  list(folder: string): Promise<string[]>;
15
31
  /** Removes a file, or a folder and everything in it; a missing `path` is a success. */
16
32
  remove(path: string): Promise<void>;
17
33
  /** Creates the folder and its missing parents; an existing folder is a success unless `exclusive`. */
18
34
  mkdir(path: string, options?: MkdirOptions): Promise<void>;
35
+ /**
36
+ * The file at the absolute `path`, or `undefined` when nothing is there or a part of it is a file.
37
+ * Two paths are one file when their `id`s match, which a link or a case-insensitive disk hides.
38
+ */
39
+ stat(path: string): Promise<FileStat | undefined>;
19
40
  }
41
+ /** Where the Runtime writes `path` before moving it into place; a dead writer's is swept. */
42
+ export declare function tempPathOf(path: string): string;
20
43
  /** Real files for one run: the first write to each folder sweeps the temp files of dead writers. */
21
44
  export declare function realFiles(): Files;
22
45
  export interface FilesScope {
23
46
  readonly cwd: string;
24
- readonly env: Env;
25
- readonly callerLine: string;
47
+ readonly fileError: FileError;
26
48
  }
27
49
  /**
28
50
  * `files` resolving paths against `cwd`, its failures classified by errno; `list` drops the
29
51
  * Runtime's temp files and sorts.
30
52
  */
31
- export declare function classifiedFiles(files: Files, { cwd, env, callerLine }: FilesScope): Files;
53
+ export declare function classifiedFiles(files: Files, { cwd, fileError }: FilesScope): Files;
package/dist/files.js CHANGED
@@ -1,9 +1,10 @@
1
- import { access, mkdir, readdir, readFile, rename, rm, writeFile } from "node:fs/promises";
1
+ import { access, chmod, link, mkdir, open, readdir, readFile, realpath, rename, rm, stat, writeFile, } from "node:fs/promises";
2
2
  import { basename, dirname, join, resolve } from "node:path";
3
- import { classifyErrno } from "./errno.js";
4
- import { errnoOf, isMissingFile } from "./errors.js";
3
+ import { setTimeout as sleep } from "node:timers/promises";
4
+ import { errnoOf, isMissingFile, isNothingThere } from "./errors.js";
5
5
  const TEMP_FILE = /^\..+\.agent-cli-(\d+)\.tmp$/;
6
- function tempPathOf(path) {
6
+ /** Where the Runtime writes `path` before moving it into place; a dead writer's is swept. */
7
+ export function tempPathOf(path) {
7
8
  return join(dirname(path), `.${basename(path)}.agent-cli-${process.pid}.tmp`);
8
9
  }
9
10
  function isAlive(pid) {
@@ -24,6 +25,72 @@ async function sweep(folder) {
24
25
  });
25
26
  await Promise.all(dead.map((name) => rm(join(folder, name), { force: true })));
26
27
  }
28
+ /** The file a symlink at `path` points to, so a replacing write keeps the link. */
29
+ async function targetOf(path) {
30
+ try {
31
+ return await realpath(path);
32
+ }
33
+ catch (error) {
34
+ if (isMissingFile(error))
35
+ return path;
36
+ throw error;
37
+ }
38
+ }
39
+ // The chmod sets the exact mode, which the umask would otherwise narrow.
40
+ async function writeWithMode(path, data, mode) {
41
+ if (mode === undefined) {
42
+ await writeFile(path, data);
43
+ return;
44
+ }
45
+ await writeFile(path, data, { mode });
46
+ await chmod(path, mode);
47
+ }
48
+ /** What `link` answers on a file system without hard links, such as exFAT. */
49
+ const NO_HARD_LINKS = new Set(["EPERM", "ENOTSUP", "EXDEV"]);
50
+ /** A link fails atomically when `path` is taken, so no reader ever sees half a file there. */
51
+ async function linkNew(temp, path, data, mode) {
52
+ try {
53
+ await link(temp, path);
54
+ }
55
+ catch (error) {
56
+ if (!NO_HARD_LINKS.has(errnoOf(error)))
57
+ throw error;
58
+ await createNew(path, data, mode);
59
+ }
60
+ }
61
+ /** A file this call created and could not finish is removed, so a rerun does not find half of it. */
62
+ async function createNew(path, data, mode) {
63
+ const handle = await open(path, "wx", mode);
64
+ try {
65
+ await handle.writeFile(data);
66
+ if (mode !== undefined)
67
+ await handle.chmod(mode);
68
+ }
69
+ catch (error) {
70
+ await handle.close();
71
+ await rm(path, { force: true });
72
+ throw error;
73
+ }
74
+ await handle.close();
75
+ }
76
+ const RENAME_ATTEMPTS = 10;
77
+ const RENAME_BACKOFF_MS = 10;
78
+ const HELD_BY_ANOTHER_PROGRAM = new Set(["EPERM", "EBUSY"]);
79
+ // Windows answers EPERM or EBUSY while another program, such as an antivirus scan, holds the file.
80
+ async function renameRetrying(from, to) {
81
+ for (let attempt = 1;; attempt++) {
82
+ try {
83
+ await rename(from, to);
84
+ return;
85
+ }
86
+ catch (error) {
87
+ const transient = process.platform === "win32" && HELD_BY_ANOTHER_PROGRAM.has(errnoOf(error));
88
+ if (!transient || attempt === RENAME_ATTEMPTS)
89
+ throw error;
90
+ await sleep(attempt * RENAME_BACKOFF_MS);
91
+ }
92
+ }
93
+ }
27
94
  /** Real files for one run: the first write to each folder sweeps the temp files of dead writers. */
28
95
  export function realFiles() {
29
96
  const swept = new Set();
@@ -34,22 +101,29 @@ export function realFiles() {
34
101
  return true;
35
102
  }
36
103
  catch (error) {
37
- if (isMissingFile(error))
104
+ if (isNothingThere(error))
38
105
  return false;
39
106
  throw error;
40
107
  }
41
108
  },
42
- write: async (path, data) => {
43
- const folder = dirname(path);
44
- await mkdir(folder, { recursive: true });
109
+ write: async (path, data, options = {}) => {
110
+ await mkdir(dirname(path), { recursive: true });
111
+ const target = options.exclusive === true ? path : await targetOf(path);
112
+ const folder = dirname(target);
45
113
  if (!swept.has(folder)) {
46
114
  await sweep(folder);
47
115
  swept.add(folder);
48
116
  }
49
- const temp = tempPathOf(path);
117
+ const temp = tempPathOf(target);
50
118
  try {
51
- await writeFile(temp, data);
52
- await rename(temp, path);
119
+ await writeWithMode(temp, data, options.mode);
120
+ if (options.exclusive === true) {
121
+ await linkNew(temp, target, data, options.mode);
122
+ await rm(temp);
123
+ }
124
+ else {
125
+ await renameRetrying(temp, target);
126
+ }
53
127
  }
54
128
  catch (error) {
55
129
  await rm(temp, { force: true });
@@ -60,12 +134,24 @@ export function realFiles() {
60
134
  list: (folder) => readdir(folder),
61
135
  remove: (path) => rm(path, { recursive: true, force: true }),
62
136
  mkdir: async (path, options) => {
137
+ const mode = options?.mode;
63
138
  if (options?.exclusive !== true) {
64
- await mkdir(path, { recursive: true });
139
+ await mkdir(path, { recursive: true, mode });
65
140
  return;
66
141
  }
67
- await mkdir(dirname(path), { recursive: true });
68
- await mkdir(path);
142
+ await mkdir(dirname(path), { recursive: true, mode });
143
+ await mkdir(path, { mode });
144
+ },
145
+ stat: async (path) => {
146
+ try {
147
+ const { size, dev, ino } = await stat(path, { bigint: true });
148
+ return { size: Number(size), id: `${dev}:${ino}` };
149
+ }
150
+ catch (error) {
151
+ if (isNothingThere(error))
152
+ return undefined;
153
+ throw error;
154
+ }
69
155
  },
70
156
  };
71
157
  }
@@ -73,23 +159,24 @@ export function realFiles() {
73
159
  * `files` resolving paths against `cwd`, its failures classified by errno; `list` drops the
74
160
  * Runtime's temp files and sorts.
75
161
  */
76
- export function classifiedFiles(files, { cwd, env, callerLine }) {
162
+ export function classifiedFiles(files, { cwd, fileError }) {
77
163
  async function at(access, path, work) {
78
164
  const target = resolve(cwd, path);
79
165
  try {
80
166
  return await work(target);
81
167
  }
82
168
  catch (error) {
83
- throw classifyErrno(error, { path: target, access, callerLine, env });
169
+ throw fileError(error, { path: target, access });
84
170
  }
85
171
  }
86
172
  return {
87
173
  exists: (path) => at("read", path, (target) => files.exists(target)),
88
- write: (path, data) => at("write", path, (target) => files.write(target, data)),
174
+ write: (path, data, options) => at("write", path, (target) => files.write(target, data, options)),
89
175
  read: (path) => at("read", path, (target) => files.read(target)),
90
176
  list: (folder) => at("read", folder, async (target) => (await files.list(target)).filter((name) => !TEMP_FILE.test(name)).sort()),
91
177
  remove: (path) => at("write", path, (target) => files.remove(target)),
92
178
  mkdir: (path, options) => at("write", path, (target) => files.mkdir(target, options)),
179
+ stat: (path) => at("read", path, (target) => files.stat(target)),
93
180
  };
94
181
  }
95
182
  //# sourceMappingURL=files.js.map
package/dist/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,EAAE,EACF,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AA6CrE,MAAM,SAAS,GAAG,8BAA8B,CAAC;AAEjD,6FAA6F;AAC7F,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yDAAyD;QACzD,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC;IACpC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,MAAc;IACjC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,GAAG,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,mFAAmF;AACnF,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,KAAK,UAAU,aAAa,CAC1B,IAAY,EACZ,IAAyB,EACzB,IAAa;IAEb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,MAAM,aAAa,GAAoC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9F,8FAA8F;AAC9F,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,IAAY,EACZ,IAAyB,EACzB,IAAa;IAEb,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAAE,MAAM,KAAK,CAAC;QACpD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,IAAyB,EAAE,IAAa;IAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,uBAAuB,GAAoC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7F,mGAAmG;AACnG,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,EAAU;IACpD,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9F,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,eAAe;gBAAE,MAAM,KAAK,CAAC;YAC3D,MAAM,KAAK,CAAC,OAAO,GAAG,iBAAiB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,cAAc,CAAC,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACxC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACxC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;oBAC/B,MAAM,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChD,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACN,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QACjC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;YAC3B,IAAI,OAAO,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACnB,IAAI,CAAC;gBACH,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,cAAc,CAAC,KAAK,CAAC;oBAAE,OAAO,SAAS,CAAC;gBAC5C,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,EAAE,GAAG,EAAE,SAAS,EAAc;IAC1E,KAAK,UAAU,EAAE,CACf,MAA4B,EAC5B,IAAY,EACZ,IAAoC;QAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAC7B,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAClC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1E;QACH,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACjE,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { CommandSpec, GroupSpec, SpecNode } from "./command-spec.js";
1
+ import { type CommandSpec, type GroupSpec, type SpecNode } from "./command-spec.js";
2
2
  import type { Cli } from "./define.js";
3
- export declare function cliHelpJson({ version, errors }: Cli, root: SpecNode): string;
3
+ export declare function cliHelpJson({ version, description, errors }: Cli, root: SpecNode): string;
4
4
  export declare function groupHelpJson(group: GroupSpec): string;
5
5
  export declare function commandHelpJson(spec: CommandSpec): string;
package/dist/help-json.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import * as z from "zod";
2
+ import { visibleCommands, } from "./command-spec.js";
2
3
  // Transforms and other unrepresentable parts become `{}` rather than failing the whole help.
3
4
  function inputSchema(schema) {
4
5
  return z.toJSONSchema(schema, { io: "input", unrepresentable: "any" });
@@ -11,7 +12,9 @@ function commandData(spec) {
11
12
  return {
12
13
  name: spec.commandLine,
13
14
  description: spec.description,
15
+ help: spec.help ?? null,
14
16
  effect: spec.effect,
17
+ operator: spec.operator,
15
18
  examples: spec.examples,
16
19
  args: inputSchema(spec.command.args ?? z.object({})),
17
20
  options: optionsSchema(spec.options),
@@ -27,7 +30,7 @@ function nodeData(node) {
27
30
  return node.kind === "command" ? commandData(node) : groupData(node);
28
31
  }
29
32
  function groupData(group) {
30
- return { name: group.commandLine, commands: Object.values(group.commands).map(nodeData) };
33
+ return { name: group.commandLine, commands: Object.values(visibleCommands(group)).map(nodeData) };
31
34
  }
32
35
  function printed(data) {
33
36
  return `${JSON.stringify(data)}\n`;
@@ -43,10 +46,11 @@ function errorsData(errors) {
43
46
  },
44
47
  ]));
45
48
  }
46
- export function cliHelpJson({ version, errors }, root) {
49
+ export function cliHelpJson({ version, description, errors }, root) {
47
50
  return printed({
48
51
  name: root.commandLine,
49
52
  version,
53
+ description,
50
54
  ...nodeData(root),
51
55
  errors: errorsData(errors ?? {}),
52
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"help-json.js","sourceRoot":"","sources":["../src/help-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help-json.js","sourceRoot":"","sources":["../src/help-json.ts"],"names":[],"mappings":"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"}
package/dist/help.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { CommandSpec, GroupSpec, SpecNode } from "./command-spec.js";
1
+ import { type CommandSpec, type GroupSpec, type SpecNode } from "./command-spec.js";
2
2
  import type { Cli } from "./define.js";
3
3
  import type { Style } from "./style.js";
4
4
  /** The CLI's own help: a listing or its single Command's help, ending with exit codes and examples. */
package/dist/help.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { visibleCommands, } from "./command-spec.js";
1
2
  import { EXIT_CODES, reachableExitClasses, SIGNAL_EXIT_CODES } from "./exit-classes.js";
2
3
  function table(rows) {
3
4
  const width = Math.max(...rows.map(([left]) => left.length));
@@ -7,19 +8,20 @@ function section(title, rows, style) {
7
8
  return rows.length === 0 ? [] : ["", style.bold(`${title}:`), ...table(rows)];
8
9
  }
9
10
  function summaryOf(node) {
10
- return node.kind === "command"
11
- ? node.description
12
- : `group: ${Object.keys(node.commands).join(", ")}`;
11
+ if (node.kind === "group")
12
+ return `group: ${Object.keys(visibleCommands(node)).join(", ")}`;
13
+ return node.operator ? `${node.description} (operator only)` : node.description;
13
14
  }
14
- function commandRows({ commands }) {
15
- return Object.entries(commands).map(([key, node]) => [key, summaryOf(node)]);
15
+ function commandRows(group) {
16
+ return Object.entries(visibleCommands(group)).map(([key, node]) => [key, summaryOf(node)]);
16
17
  }
17
18
  function lines(...parts) {
18
19
  return `${parts.join("\n")}\n`;
19
20
  }
20
- function listingLines(heading, group, style) {
21
+ function listingLines(heading, group, style, description) {
21
22
  return [
22
23
  style.bold(heading),
24
+ ...(description === undefined ? [] : [description]),
23
25
  ...section("Commands", commandRows(group), style),
24
26
  "",
25
27
  `Run \`${group.commandLine} <command> --help\` for its examples and input.`,
@@ -46,13 +48,13 @@ function exitCodeRows(cli) {
46
48
  function firstExample(node) {
47
49
  if (node.kind === "command")
48
50
  return node.examples.slice(0, 1);
49
- return Object.values(node.commands).flatMap(firstExample).slice(0, 1);
51
+ return Object.values(visibleCommands(node)).flatMap(firstExample).slice(0, 1);
50
52
  }
51
53
  // ADR 0002 of repo-harness: the last example is `doctor`, where an agent goes when a run fails.
52
54
  function rootExamples(root) {
53
55
  if (root.kind === "command")
54
56
  return [...root.examples];
55
- const { doctor, ...others } = root.commands;
57
+ const { doctor, ...others } = visibleCommands(root);
56
58
  return [...Object.values(others), ...(doctor === undefined ? [] : [doctor])].flatMap(firstExample);
57
59
  }
58
60
  function examplesSection(examples, style) {
@@ -62,7 +64,7 @@ function examplesSection(examples, style) {
62
64
  export function cliHelp(cli, root, style) {
63
65
  const body = root.kind === "command"
64
66
  ? commandLines(root, style, { examples: false })
65
- : listingLines(`${root.commandLine} ${cli.version}`, root, style);
67
+ : listingLines(`${root.commandLine} ${cli.version}`, root, style, cli.description);
66
68
  return lines(...body, ...section("Exit codes", exitCodeRows(cli), style), ...examplesSection(rootExamples(root), style));
67
69
  }
68
70
  export function groupHelp(group, style) {
@@ -74,6 +76,7 @@ const EFFECT_NOTES = {
74
76
  destructive: "changes something hard to undo; show the Plan with --dry-run, run with --confirm",
75
77
  serve: "changes nothing; prints its data at once, then runs until Ctrl-C, which exits 0",
76
78
  };
79
+ const OPERATOR_NOTE = "only a person at a terminal runs it; a Coding agent asks the operator to type it after `!`";
77
80
  function choicesOf(field) {
78
81
  return field.choices === undefined ? [] : [`one of: ${field.choices.join(", ")}`];
79
82
  }
@@ -109,8 +112,10 @@ function commandLines(spec, style, { examples }) {
109
112
  ...(examples ? examplesSection(spec.examples, style) : []),
110
113
  ...section("Arguments", spec.args.map(argRow), style),
111
114
  ...section("Options", spec.options.map(optionRow), style),
115
+ ...(spec.help === undefined ? [] : ["", spec.help]),
112
116
  "",
113
117
  `${style.bold("Effect:")} ${spec.effect} (${EFFECT_NOTES[spec.effect]})`,
118
+ ...(spec.operator ? [`${style.bold("Operator Command:")} ${OPERATOR_NOTE}`] : []),
114
119
  ...section("Standard flags", spec.standardFlags.map(flagRow), style),
115
120
  ];
116
121
  }
package/dist/help.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,19 +1,26 @@
1
1
  export type { AgentCli } from "./agent-cli.js";
2
2
  export { agentCli } from "./agent-cli.js";
3
3
  export type { Clock } from "./clock.js";
4
- export type { Cli, Command, Commands, Context, DefineCommand, DestructiveCommand, DoctorCheck, DoctorFinding, Env, Example, GlobalInstall, ListCommand, NoPorts, PollOptions, PortsBase, Project, ProjectFile, ReadCommand, RunDeadline, ServeCommand, Tool, WriteCommand, } from "./define.js";
5
- export { ALREADY_EXISTS, DISK_FULL, NOT_FOUND, PERMISSION_DENIED } from "./errno.js";
4
+ export type { BuildStamp, Context, Env, PollOptions, PortsBase, Project, ProjectFile, } from "./context.js";
5
+ export type { Cli, Command, Commands, DefineCommand, DestructiveCommand, DoctorCheck, DoctorFinding, Example, GlobalInstall, ListCommand, NoPorts, ReadCommand, RunDeadline, ServeCommand, Tool, WriteCommand, } from "./define.js";
6
+ export { ALREADY_EXISTS, DISK_FULL, type FileAccess, NOT_A_FILE, NOT_FOUND, PERMISSION_DENIED, } from "./errno.js";
6
7
  export type { CliErrorInit, DeclaredExitClass, ErrorDeclaration, ErrorTable, } from "./error-table.js";
7
8
  export { cliError, defineErrors } from "./error-table.js";
8
9
  export type { CliErrorFields, UsageErrorFields } from "./errors.js";
9
10
  export { CliError, debugVariable, UsageError } from "./errors.js";
10
- export type { Files, MkdirOptions } from "./files.js";
11
+ export type { FileStat, Files, MkdirOptions, WriteOptions } from "./files.js";
12
+ export { DEADLINE_EXCEEDED, INTERRUPTED } from "./interrupts.js";
11
13
  export type { Page, PageInput } from "./list.js";
12
- export { paginate } from "./list.js";
14
+ export { page, paginate } from "./list.js";
15
+ export { NEEDS_OPERATOR } from "./operator.js";
13
16
  export type { RunResult } from "./output.js";
14
- export type { RunOptions } from "./run-cli.js";
15
17
  export { runCli } from "./run-cli.js";
18
+ export type { RunOptions } from "./run-options.js";
16
19
  export { runProcess } from "./run-process.js";
17
20
  export type { Secret, SecretOrigin } from "./secrets.js";
21
+ export type { SideTaskRun } from "./side-task.js";
22
+ export { SIDE_TASK_WAIT_MS } from "./side-task.js";
18
23
  export type { Spawn, SpawnOptions, SpawnResult } from "./spawn.js";
24
+ export type { StdinSource } from "./stdin.js";
25
+ export { orStdin, STDIN_IDLE_MS, STDIN_STALLED } from "./stdin.js";
19
26
  export type { Style } from "./style.js";