@devdogsuga/devtools 0.1.26 → 0.1.27

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 (271) hide show
  1. package/README.md +72 -11
  2. package/bin/devtools.mjs +4 -4
  3. package/dist/cli-CZKkNHK5.js +6619 -0
  4. package/dist/failure-log-BBPGejQv.js +256 -0
  5. package/dist/launch.js +267 -281
  6. package/dist/local-env-D8HC2JK_.js +351 -0
  7. package/dist/local-env-DrBCXqD8.js +2 -0
  8. package/dist/menu-CQBsQRgH.js +1684 -0
  9. package/dist/peer-redirect-hooks.js +15 -0
  10. package/dist/peers-RBplwovA.js +229 -0
  11. package/dist/root-C2OmZDwD.js +94 -0
  12. package/dist/stack-Bx-55oi_.js +2 -0
  13. package/dist/stack-BynCgRVS.js +181 -0
  14. package/dist/supabase-project-0knM0mqd.js +426 -0
  15. package/dist/telemetry-C4foD8MD.js +249 -0
  16. package/dist/telemetry.js +2 -148
  17. package/package.json +10 -29
  18. package/bin/devtools-ci-bare.mjs +0 -48
  19. package/bin/devtools-ci.mjs +0 -31
  20. package/dist/args.d.ts +0 -26
  21. package/dist/args.js +0 -78
  22. package/dist/bws/bw.d.ts +0 -18
  23. package/dist/bws/bw.js +0 -70
  24. package/dist/bws/client.d.ts +0 -43
  25. package/dist/bws/client.js +0 -363
  26. package/dist/bws/environments.d.ts +0 -96
  27. package/dist/bws/environments.js +0 -111
  28. package/dist/bws/pace.d.ts +0 -25
  29. package/dist/bws/pace.js +0 -43
  30. package/dist/bws/retry.d.ts +0 -12
  31. package/dist/bws/retry.js +0 -39
  32. package/dist/bws/store.d.ts +0 -1
  33. package/dist/bws/store.js +0 -32
  34. package/dist/bws/token.d.ts +0 -31
  35. package/dist/bws/token.js +0 -88
  36. package/dist/bws/vault.d.ts +0 -29
  37. package/dist/bws/vault.js +0 -200
  38. package/dist/catalog.d.ts +0 -57
  39. package/dist/catalog.js +0 -57
  40. package/dist/cf/build.d.ts +0 -13
  41. package/dist/cf/build.js +0 -65
  42. package/dist/cf/commands.d.ts +0 -1
  43. package/dist/cf/commands.js +0 -172
  44. package/dist/cf/local-env.d.ts +0 -58
  45. package/dist/cf/local-env.js +0 -177
  46. package/dist/ci.d.ts +0 -1
  47. package/dist/ci.js +0 -328
  48. package/dist/cli.d.ts +0 -11
  49. package/dist/cli.js +0 -1094
  50. package/dist/commands.d.ts +0 -261
  51. package/dist/commands.js +0 -1318
  52. package/dist/completions.d.ts +0 -4
  53. package/dist/completions.js +0 -110
  54. package/dist/cron/commands.d.ts +0 -47
  55. package/dist/cron/commands.js +0 -372
  56. package/dist/cron/discovery.d.ts +0 -55
  57. package/dist/cron/discovery.js +0 -85
  58. package/dist/cron/schema.d.ts +0 -45
  59. package/dist/cron/schema.js +0 -35
  60. package/dist/db/config-push.d.ts +0 -8
  61. package/dist/db/config-push.js +0 -11
  62. package/dist/db/connection.d.ts +0 -79
  63. package/dist/db/connection.js +0 -114
  64. package/dist/db/exec.d.ts +0 -1
  65. package/dist/db/exec.js +0 -11
  66. package/dist/db/generate-types.d.ts +0 -1
  67. package/dist/db/generate-types.js +0 -4
  68. package/dist/db/generated-env.d.ts +0 -69
  69. package/dist/db/generated-env.js +0 -113
  70. package/dist/db/introspect.d.ts +0 -1
  71. package/dist/db/introspect.js +0 -122
  72. package/dist/db/local-env.d.ts +0 -65
  73. package/dist/db/local-env.js +0 -23
  74. package/dist/db/new-migration.d.ts +0 -8
  75. package/dist/db/new-migration.js +0 -69
  76. package/dist/db/pooler.d.ts +0 -23
  77. package/dist/db/pooler.js +0 -55
  78. package/dist/db/run.d.ts +0 -68
  79. package/dist/db/run.js +0 -156
  80. package/dist/db/seed-buckets.d.ts +0 -2
  81. package/dist/db/seed-buckets.js +0 -4
  82. package/dist/db/seed-production.d.ts +0 -8
  83. package/dist/db/seed-production.js +0 -79
  84. package/dist/db/seed-roles.d.ts +0 -7
  85. package/dist/db/seed-roles.js +0 -33
  86. package/dist/db/session-refresh.d.ts +0 -43
  87. package/dist/db/session-refresh.js +0 -40
  88. package/dist/deploy/migrations.d.ts +0 -20
  89. package/dist/deploy/migrations.js +0 -68
  90. package/dist/deploy/orphans.d.ts +0 -20
  91. package/dist/deploy/orphans.js +0 -177
  92. package/dist/deploy/preflight.d.ts +0 -53
  93. package/dist/deploy/preflight.js +0 -189
  94. package/dist/deploy/report.d.ts +0 -26
  95. package/dist/deploy/report.js +0 -70
  96. package/dist/deploy/require-planner.d.ts +0 -2
  97. package/dist/deploy/require-planner.js +0 -60
  98. package/dist/deploy/require-token.d.ts +0 -15
  99. package/dist/deploy/require-token.js +0 -78
  100. package/dist/deploy/secrets-file.d.ts +0 -17
  101. package/dist/deploy/secrets-file.js +0 -166
  102. package/dist/deploy/write-env.d.ts +0 -40
  103. package/dist/deploy/write-env.js +0 -395
  104. package/dist/docs/index-pages.d.ts +0 -38
  105. package/dist/docs/index-pages.js +0 -186
  106. package/dist/emails/commands.d.ts +0 -15
  107. package/dist/emails/commands.js +0 -130
  108. package/dist/emails/email-types.d.ts +0 -13
  109. package/dist/emails/email-types.js +0 -1
  110. package/dist/emails/fixtures.d.ts +0 -20
  111. package/dist/emails/fixtures.js +0 -20
  112. package/dist/env/audit.d.ts +0 -206
  113. package/dist/env/audit.js +0 -436
  114. package/dist/env/cloudflare.d.ts +0 -21
  115. package/dist/env/cloudflare.js +0 -61
  116. package/dist/env/commands.d.ts +0 -99
  117. package/dist/env/commands.js +0 -613
  118. package/dist/env/discovery.d.ts +0 -15
  119. package/dist/env/discovery.js +0 -239
  120. package/dist/env/document.d.ts +0 -119
  121. package/dist/env/document.js +0 -323
  122. package/dist/env/example.d.ts +0 -68
  123. package/dist/env/example.js +0 -605
  124. package/dist/env/selection.d.ts +0 -105
  125. package/dist/env/selection.js +0 -228
  126. package/dist/env-entry.d.ts +0 -49
  127. package/dist/env-entry.js +0 -204
  128. package/dist/environment-doctor.d.ts +0 -45
  129. package/dist/environment-doctor.js +0 -429
  130. package/dist/environment.d.ts +0 -92
  131. package/dist/environment.js +0 -185
  132. package/dist/fingerprint.d.ts +0 -10
  133. package/dist/fingerprint.js +0 -18
  134. package/dist/gen/campus-map.d.ts +0 -1
  135. package/dist/gen/campus-map.js +0 -473
  136. package/dist/gen/commands.d.ts +0 -1
  137. package/dist/gen/commands.js +0 -25
  138. package/dist/gen/hypno.d.ts +0 -1
  139. package/dist/gen/hypno.js +0 -134
  140. package/dist/gh/client.d.ts +0 -80
  141. package/dist/gh/client.js +0 -259
  142. package/dist/gh/environments.d.ts +0 -83
  143. package/dist/gh/environments.js +0 -178
  144. package/dist/gh/rulesets/actors.d.ts +0 -14
  145. package/dist/gh/rulesets/actors.js +0 -69
  146. package/dist/gh/rulesets/api.d.ts +0 -15
  147. package/dist/gh/rulesets/api.js +0 -104
  148. package/dist/gh/rulesets/commands.d.ts +0 -3
  149. package/dist/gh/rulesets/commands.js +0 -203
  150. package/dist/gh/rulesets/desired.d.ts +0 -112
  151. package/dist/gh/rulesets/desired.js +0 -271
  152. package/dist/gh/rulesets/diff.d.ts +0 -65
  153. package/dist/gh/rulesets/diff.js +0 -170
  154. package/dist/gh/rulesets/types.d.ts +0 -76
  155. package/dist/gh/rulesets/types.js +0 -13
  156. package/dist/gh/settings/api.d.ts +0 -40
  157. package/dist/gh/settings/api.js +0 -180
  158. package/dist/gh/settings/commands.d.ts +0 -1
  159. package/dist/gh/settings/commands.js +0 -254
  160. package/dist/gh/settings/desired.d.ts +0 -53
  161. package/dist/gh/settings/desired.js +0 -43
  162. package/dist/gh/settings/diff.d.ts +0 -57
  163. package/dist/gh/settings/diff.js +0 -161
  164. package/dist/gh/settings/types.d.ts +0 -92
  165. package/dist/gh/settings/types.js +0 -11
  166. package/dist/gh/settings/workflows.d.ts +0 -41
  167. package/dist/gh/settings/workflows.js +0 -128
  168. package/dist/grantRoot.d.ts +0 -42
  169. package/dist/grantRoot.js +0 -89
  170. package/dist/help.d.ts +0 -18
  171. package/dist/help.js +0 -169
  172. package/dist/images/commands.d.ts +0 -32
  173. package/dist/images/commands.js +0 -231
  174. package/dist/images/events.d.ts +0 -47
  175. package/dist/images/events.js +0 -116
  176. package/dist/images/graphics.d.ts +0 -70
  177. package/dist/images/graphics.js +0 -234
  178. package/dist/images/open-graph-types.d.ts +0 -75
  179. package/dist/images/open-graph-types.js +0 -1
  180. package/dist/images/prompts.d.ts +0 -34
  181. package/dist/images/prompts.js +0 -100
  182. package/dist/images/render.d.ts +0 -21
  183. package/dist/images/render.js +0 -61
  184. package/dist/images/select.d.ts +0 -64
  185. package/dist/images/select.js +0 -96
  186. package/dist/instance.d.ts +0 -69
  187. package/dist/instance.js +0 -102
  188. package/dist/invocation.d.ts +0 -49
  189. package/dist/invocation.js +0 -78
  190. package/dist/launch-ci.d.ts +0 -1
  191. package/dist/launch-ci.js +0 -90
  192. package/dist/launch.d.ts +0 -18
  193. package/dist/menu.d.ts +0 -43
  194. package/dist/menu.js +0 -300
  195. package/dist/moderation.d.ts +0 -70
  196. package/dist/moderation.js +0 -128
  197. package/dist/oauth/browser.d.ts +0 -1
  198. package/dist/oauth/browser.js +0 -13
  199. package/dist/oauth/config.d.ts +0 -24
  200. package/dist/oauth/config.js +0 -24
  201. package/dist/oauth/connect-url.d.ts +0 -17
  202. package/dist/oauth/connect-url.js +0 -23
  203. package/dist/oauth/db.d.ts +0 -37
  204. package/dist/oauth/db.js +0 -108
  205. package/dist/oauth/device.d.ts +0 -93
  206. package/dist/oauth/device.js +0 -198
  207. package/dist/oauth/discovery.d.ts +0 -28
  208. package/dist/oauth/discovery.js +0 -54
  209. package/dist/oauth/env-file.d.ts +0 -6
  210. package/dist/oauth/env-file.js +0 -35
  211. package/dist/oauth/exchange.d.ts +0 -43
  212. package/dist/oauth/exchange.js +0 -93
  213. package/dist/oauth/label.d.ts +0 -1
  214. package/dist/oauth/label.js +0 -25
  215. package/dist/oauth/loopback.d.ts +0 -52
  216. package/dist/oauth/loopback.js +0 -168
  217. package/dist/oauth/pkce.d.ts +0 -6
  218. package/dist/oauth/pkce.js +0 -34
  219. package/dist/oauth/target.d.ts +0 -54
  220. package/dist/oauth/target.js +0 -102
  221. package/dist/oauth/transport.d.ts +0 -41
  222. package/dist/oauth/transport.js +0 -32
  223. package/dist/oauth/wizard.d.ts +0 -40
  224. package/dist/oauth/wizard.js +0 -578
  225. package/dist/persona.d.ts +0 -18
  226. package/dist/persona.js +0 -221
  227. package/dist/pick.d.ts +0 -6
  228. package/dist/pick.js +0 -64
  229. package/dist/pipes.d.ts +0 -1
  230. package/dist/pipes.js +0 -25
  231. package/dist/planner/checks.d.ts +0 -26
  232. package/dist/planner/checks.js +0 -104
  233. package/dist/planner/commands.d.ts +0 -10
  234. package/dist/planner/commands.js +0 -367
  235. package/dist/planner/db.d.ts +0 -15
  236. package/dist/planner/db.js +0 -33
  237. package/dist/planner/role.d.ts +0 -33
  238. package/dist/planner/role.js +0 -68
  239. package/dist/repo/peer-redirect-hooks.d.ts +0 -16
  240. package/dist/repo/peer-redirect-hooks.js +0 -10
  241. package/dist/repo/peer-redirect.d.ts +0 -4
  242. package/dist/repo/peer-redirect.js +0 -26
  243. package/dist/repo/peers.d.ts +0 -39
  244. package/dist/repo/peers.js +0 -139
  245. package/dist/repo/resolve.d.ts +0 -41
  246. package/dist/repo/resolve.js +0 -152
  247. package/dist/repo/root.d.ts +0 -23
  248. package/dist/repo/root.js +0 -91
  249. package/dist/repo/source.d.ts +0 -14
  250. package/dist/repo/source.js +0 -54
  251. package/dist/repo/supabase-project.d.ts +0 -60
  252. package/dist/repo/supabase-project.js +0 -124
  253. package/dist/repo/tsx-loader.d.ts +0 -6
  254. package/dist/repo/tsx-loader.js +0 -41
  255. package/dist/run/pick.d.ts +0 -90
  256. package/dist/run/pick.js +0 -664
  257. package/dist/setup.d.ts +0 -1
  258. package/dist/setup.js +0 -280
  259. package/dist/stack.d.ts +0 -48
  260. package/dist/stack.js +0 -403
  261. package/dist/telemetry.d.ts +0 -59
  262. package/dist/tier.d.ts +0 -40
  263. package/dist/tier.js +0 -96
  264. package/dist/ui.d.ts +0 -40
  265. package/dist/ui.js +0 -71
  266. package/dist/version.d.ts +0 -7
  267. package/dist/version.js +0 -17
  268. package/dist/workers.d.ts +0 -5
  269. package/dist/workers.js +0 -33
  270. package/dist/workflows/commands.d.ts +0 -54
  271. package/dist/workflows/commands.js +0 -763
@@ -1,261 +0,0 @@
1
- /**
2
- * One choice in a select prompt.
3
- *
4
- * `value` is the value the wizard passes for the option's own flag — e.g.
5
- * `local`/`remote` for `--target`. The menu always emits `[flag, value]`.
6
- */
7
- export interface OptionChoice {
8
- value: string;
9
- label?: string;
10
- hint?: string;
11
- }
12
- /**
13
- * A prompt the wizard raises to fill an option the command line would carry.
14
- *
15
- * `confirm` has no polarity switch on purpose: **yes adds the flag**, always.
16
- * So every message here is phrased so yes is the flag's own meaning ("Skip the
17
- * duplicate scan?" rather than "Scan for duplicates?"). That leaves the wizard
18
- * without a second place to get an inversion wrong.
19
- */
20
- export type OptionPrompt = {
21
- kind: "confirm";
22
- message: string;
23
- initial: boolean;
24
- } | {
25
- kind: "select";
26
- message: string;
27
- choices: readonly OptionChoice[];
28
- } | {
29
- kind: "text";
30
- message: string;
31
- placeholder?: string;
32
- optional?: boolean;
33
- };
34
- export interface CommandOption {
35
- /** `--target`. */
36
- flag: string;
37
- /** `<t>` for a flag that takes a value; absent for a boolean. */
38
- value?: string;
39
- /** One line. Printed by `devtools <command> --help`. */
40
- summary: string;
41
- /**
42
- * How the wizard asks for it.
43
- *
44
- * Absent means the wizard does not ask HERE, a decision rather than an
45
- * omission. Three kinds of option are deliberately promptless:
46
- *
47
- * * ones the command asks for ITSELF, from something live. `--app` picks
48
- * from the apps in the database, `--user` from the accounts on it,
49
- * `--target` from `pick.ts`'s danger-ordered list, `--apps` from the env
50
- * registry. A wizard text box would be a worse version of a menu that
51
- * already exists, and `--target`'s would put production one keystroke
52
- * closer than `pick.ts` deliberately puts it;
53
- * * ones that exist to SUPPRESS a prompt (`--yes`), meaningless in a
54
- * wizard, which is the prompt;
55
- * * ones that carry a credential (`--access-token`). The interactive path
56
- * resolves it better, and typing it makes it visible to `ps` and shell
57
- * history.
58
- *
59
- * So every option is reachable from the menu; what varies is which screen
60
- * asks. `commands.test.ts` pins the promptless set so a fourth case has to be
61
- * argued for rather than accumulate.
62
- */
63
- prompt?: OptionPrompt;
64
- }
65
- /**
66
- * Something about the machine that a command cares about.
67
- *
68
- * A string rather than a predicate, so this file stays what its header says it
69
- * is: data. `environment.ts` is the only module that knows what these mean,
70
- * `menu.ts` acts on them, and the docs build can render "shown when the local
71
- * stack is running" without being able to run anything.
72
- */
73
- export type Condition = "docker" | "instance-running" | "instance-stopped";
74
- /**
75
- * Which layer of the database group a command acts on.
76
- *
77
- * Groups like Supabase and (future) `db` span multiple layers: the local
78
- * Docker stack, the Postgres database inside it, and hosted endpoints. Scopes
79
- * let `--help` head each run and the wizard put the layer on every line,
80
- * so a contributor chooses deliberately rather than by accident.
81
- *
82
- * `machine` — acts on this machine's containers (`link`, `stop`, `restart`)
83
- * `repo` — reads or writes repository files only (no live connection)
84
- * `endpoint` — connects to the SESSION's database (picked once at launch,
85
- * `--tier development:local|development:remote|staging|production`)
86
- * `infra` — infrastructure-level; touches roles, credentials, or config
87
- */
88
- export type Scope = "machine" | "repo" | "endpoint" | "infra";
89
- /**
90
- * How each scope reads, in the two places that draw it.
91
- *
92
- * `menu` sits inline in a hint, so it is one word. `help` heads a block of
93
- * commands, so it can be a phrase. Both live here rather than in the renderers
94
- * because they are labels, the same kind of data as a group title.
95
- */
96
- export declare const SCOPES: Record<Scope, {
97
- menu: string;
98
- help: string;
99
- }>;
100
- export interface CommandNode {
101
- name: string;
102
- /** One line. See the header. */
103
- summary: string;
104
- /** Sits beside the name in the wizard; shorter than the summary. */
105
- hint?: string;
106
- options?: readonly CommandOption[];
107
- subcommands?: readonly CommandNode[];
108
- /**
109
- * Offer this in the wizard only while the condition holds.
110
- *
111
- * For commands that are *meaningless* otherwise, not merely inconvenient:
112
- * stopping a stack that is already stopped is the whole of the category. A
113
- * command that would run and fail with a good message gets `needs` instead.
114
- * See the two-line rule on `isOffered` in `environment.ts` for why hiding is
115
- * the rarer of the two.
116
- *
117
- * Wizard-only. `--help`, the dispatcher and the generated reference all
118
- * ignore this, so nothing here removes a command from the CLI.
119
- */
120
- when?: Condition;
121
- /**
122
- * Offer this always, but say on the line why it will not work right now.
123
- *
124
- * Nothing in the tree carries it at the moment — the four moderation
125
- * commands were the only ones that ever did, back when each opened a
126
- * client against Supabase on this machine with no remote path at all, so
127
- * with it down they were a spinner followed by a connection error. They
128
- * moved onto the session system alongside `db migrate`/`db reset`, neither
129
- * of which has ever gated on a local probe (a hosted session has no local
130
- * stack to probe), so nothing here needs the hint any more. Left declared
131
- * rather than deleted: a future local-only command is exactly the shape of
132
- * thing that would want it back, and `blockedBecause`
133
- * (`environment.test.ts`) still exercises the mechanism directly.
134
- */
135
- needs?: Condition;
136
- /**
137
- * Which layer this acts on, for a group that spans several. See `Scope`.
138
- *
139
- * Groups like Supabase span the stack on this machine and the database
140
- * inside it.
141
- * `--help` heads a block with it; the wizard puts it on the line.
142
- */
143
- scope?: Scope;
144
- /**
145
- * Where this command may be reached.
146
- *
147
- * Most commands are interactive and therefore appear in both the menu and
148
- * `--help`. `cli-only` commands still appear in help and completions, but do
149
- * not get a GUI entry: their output is meant to be consumed by a shell.
150
- */
151
- surface?: "interactive" | "cli-only";
152
- /**
153
- * This command reads and writes no DevDogsUGA env file, database, or
154
- * `DEPLOY_ENV` — `launch.ts` may enter plain `development` for it with no
155
- * tier prompt and no multi-tier refusal, exactly like the hardcoded
156
- * `setup`/`completions` bypass it already carries (see that file's
157
- * `launch()` for why those two cannot go through ordinary tier
158
- * resolution).
159
- *
160
- * Both `github rulesets` and `github settings` are the first commands to
161
- * use this flag rather than joining that hardcoded name check: everything
162
- * either one touches is a `gh api` call against GitHub itself, resolved
163
- * from `--org`/`--repo` flags, not from the session's deploy tier — so
164
- * `--tier` was never a real requirement, only an artifact of every command
165
- * going through the same tier-resolution gate before dispatch. Marked on
166
- * the leaf command (`rulesets`, `settings`), not the `github` group node,
167
- * because `launch.ts` looks up the exact dispatched path.
168
- */
169
- envFree?: boolean;
170
- }
171
- /** Top-level sections. Only `--help` and the wizard's first screen use these. */
172
- export interface CommandGroup {
173
- title: string;
174
- commands: readonly CommandNode[];
175
- }
176
- /** Standard success. */
177
- export declare const EXIT_OK = 0;
178
- /** Command failed. */
179
- export declare const EXIT_FAIL = 1;
180
- /** `--check` found drift. Distinct from failure so scripts can tell them apart. */
181
- export declare const EXIT_DRIFT = 2;
182
- /**
183
- * `docs index`'s delete acknowledgment — NOT a database selector.
184
- *
185
- * The db namespace's old `--target local|remote` flag is retired outright
186
- * (the SESSION names the database now — see `db/connection.ts`), but `docs
187
- * index` keeps this spelling for a different job: its prune deletes rows,
188
- * and running that against a non-local `DB_URL` requires saying so out
189
- * loud. The database itself still comes from the session's env.
190
- */
191
- export declare const DOCS_TARGET: CommandOption;
192
- /**
193
- * The deployment-tier selector, for the commands that resolve a tier of
194
- * their OWN (cron/workflows run against a chosen tier's env). The session's
195
- * global `--tier` — `development:local|development:remote|staging|production`,
196
- * stripped by the launcher before dispatch — is a superset of this
197
- * vocabulary; this per-command flag still reads plain tiers.
198
- */
199
- export declare const TIER: CommandOption;
200
- /** Print what would change; write nothing; exit 0. On every command that writes. */
201
- export declare const DRY_RUN: CommandOption;
202
- /** Verify correctness; write nothing; exit 2 on drift. */
203
- export declare const CHECK: CommandOption;
204
- /**
205
- * Machine-readable output to stdout.
206
- *
207
- * Promptless by design: the wizard is already interactive; a flag that switches
208
- * its output format has no meaning there. `commands.test.ts` pins the promptless
209
- * set with a "scripting-only" category for exactly this kind of flag.
210
- */
211
- export declare const JSON_FLAG: CommandOption;
212
- /** Skip every interactive confirmation prompt. On every destructive command. */
213
- export declare const YES: CommandOption;
214
- export declare const GROUPS: readonly CommandGroup[];
215
- /**
216
- * The commands the `devtools-ci` bin exposes.
217
- *
218
- * Kept separate from `GROUPS` because CI commands are never reached from the
219
- * wizard and never rendered in `--help`. They live here so the docs build can
220
- * render a CI reference page from the same declaration, and so the tests that
221
- * guard the style guide can cover both trees without duplicating the pins.
222
- */
223
- export declare const CI_GROUPS: readonly CommandGroup[];
224
- /** Every top-level command, in group order. */
225
- export declare const TOP_LEVEL: readonly CommandNode[];
226
- /** Every top-level CI command, in group order. */
227
- export declare const CI_TOP_LEVEL: readonly CommandNode[];
228
- /**
229
- * Walks a path in the CI tree, returning `null` at the first miss.
230
- *
231
- * Identical to `findCommand` but over `CI_TOP_LEVEL` rather than `TOP_LEVEL`.
232
- */
233
- export declare function findCiCommand(path: readonly string[]): CommandNode | null;
234
- /** The subcommand names under a CI path. */
235
- export declare function subcommandCiNames(path: readonly string[]): string[];
236
- /**
237
- * Walks a path like `["env", "pull"]`, returning `null` at the first miss.
238
- *
239
- * Callers use `null` to mean "not a command", which is the same answer the
240
- * dispatcher gives, so an unknown name reads the same whichever notices first.
241
- */
242
- export declare function findCommand(path: readonly string[]): CommandNode | null;
243
- /** The group a top-level command sits in, for the wizard's first screen. */
244
- export declare function groupOf(name: string): CommandGroup | undefined;
245
- /**
246
- * The subcommand names under a path, in the order they are declared.
247
- *
248
- * This is what the dispatchers in `cli.ts` validate against. A subcommand the
249
- * tree does not declare is refused by the CLI, and an interactive one it does
250
- * declare is in the menu. There is one list, and this reads it.
251
- */
252
- export declare function subcommandNames(path: readonly string[]): string[];
253
- /** `pull, push, audit, init, example or reset`, for a refusal message. */
254
- export declare function subcommandList(path: readonly string[]): string;
255
- /**
256
- * Every command path in the tree, deepest names included.
257
- *
258
- * Used by the coverage test, and by anything that wants to enumerate the CLI
259
- * (the docs build's reference page is the intended second caller).
260
- */
261
- export declare function allPaths(): string[][];