@hs-x/cli 0.1.0 → 0.1.2

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 (141) hide show
  1. package/README.md +59 -33
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +152 -334
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/cli/kit.d.ts +36 -0
  6. package/dist/cli/kit.d.ts.map +1 -0
  7. package/dist/cli/kit.js +64 -0
  8. package/dist/cli/kit.js.map +1 -0
  9. package/dist/cli-error.d.ts +19 -1
  10. package/dist/cli-error.d.ts.map +1 -1
  11. package/dist/cli-error.js +19 -4
  12. package/dist/cli-error.js.map +1 -1
  13. package/dist/commands/account.d.ts +55 -6
  14. package/dist/commands/account.d.ts.map +1 -1
  15. package/dist/commands/account.js +254 -252
  16. package/dist/commands/account.js.map +1 -1
  17. package/dist/commands/api.d.ts +16 -0
  18. package/dist/commands/api.d.ts.map +1 -1
  19. package/dist/commands/api.js +173 -0
  20. package/dist/commands/api.js.map +1 -1
  21. package/dist/commands/completion.d.ts +6 -0
  22. package/dist/commands/completion.d.ts.map +1 -1
  23. package/dist/commands/completion.js +34 -0
  24. package/dist/commands/completion.js.map +1 -1
  25. package/dist/commands/connect.d.ts +32 -0
  26. package/dist/commands/connect.d.ts.map +1 -1
  27. package/dist/commands/connect.js +126 -1
  28. package/dist/commands/connect.js.map +1 -1
  29. package/dist/commands/control-plane-read.d.ts +60 -17
  30. package/dist/commands/control-plane-read.d.ts.map +1 -1
  31. package/dist/commands/control-plane-read.js +269 -231
  32. package/dist/commands/control-plane-read.js.map +1 -1
  33. package/dist/commands/deploy-promote.d.ts +14 -0
  34. package/dist/commands/deploy-promote.d.ts.map +1 -1
  35. package/dist/commands/deploy-promote.js +128 -0
  36. package/dist/commands/deploy-promote.js.map +1 -1
  37. package/dist/commands/deploy.d.ts +57 -0
  38. package/dist/commands/deploy.d.ts.map +1 -1
  39. package/dist/commands/deploy.js +154 -1
  40. package/dist/commands/deploy.js.map +1 -1
  41. package/dist/commands/dev.d.ts +25 -0
  42. package/dist/commands/dev.d.ts.map +1 -1
  43. package/dist/commands/dev.js +108 -0
  44. package/dist/commands/dev.js.map +1 -1
  45. package/dist/commands/doctor.d.ts +7 -7
  46. package/dist/commands/doctor.d.ts.map +1 -1
  47. package/dist/commands/doctor.js +144 -143
  48. package/dist/commands/doctor.js.map +1 -1
  49. package/dist/commands/flags.d.ts +35 -0
  50. package/dist/commands/flags.d.ts.map +1 -1
  51. package/dist/commands/flags.js +229 -0
  52. package/dist/commands/flags.js.map +1 -1
  53. package/dist/commands/history.d.ts +8 -5
  54. package/dist/commands/history.d.ts.map +1 -1
  55. package/dist/commands/history.js +46 -40
  56. package/dist/commands/history.js.map +1 -1
  57. package/dist/commands/init.d.ts +30 -0
  58. package/dist/commands/init.d.ts.map +1 -1
  59. package/dist/commands/init.js +89 -0
  60. package/dist/commands/init.js.map +1 -1
  61. package/dist/commands/link.d.ts +15 -0
  62. package/dist/commands/link.d.ts.map +1 -1
  63. package/dist/commands/link.js +284 -0
  64. package/dist/commands/link.js.map +1 -1
  65. package/dist/commands/login.d.ts +17 -1
  66. package/dist/commands/login.d.ts.map +1 -1
  67. package/dist/commands/login.js +79 -21
  68. package/dist/commands/login.js.map +1 -1
  69. package/dist/commands/migrate.d.ts +32 -0
  70. package/dist/commands/migrate.d.ts.map +1 -1
  71. package/dist/commands/migrate.js +255 -0
  72. package/dist/commands/migrate.js.map +1 -1
  73. package/dist/commands/rollback.d.ts +22 -0
  74. package/dist/commands/rollback.d.ts.map +1 -1
  75. package/dist/commands/rollback.js +271 -0
  76. package/dist/commands/rollback.js.map +1 -1
  77. package/dist/commands/secrets.d.ts +35 -5
  78. package/dist/commands/secrets.d.ts.map +1 -1
  79. package/dist/commands/secrets.js +94 -196
  80. package/dist/commands/secrets.js.map +1 -1
  81. package/dist/commands/status.d.ts +8 -5
  82. package/dist/commands/status.d.ts.map +1 -1
  83. package/dist/commands/status.js +162 -121
  84. package/dist/commands/status.js.map +1 -1
  85. package/dist/commands/unlink.d.ts +11 -0
  86. package/dist/commands/unlink.d.ts.map +1 -1
  87. package/dist/commands/unlink.js +75 -0
  88. package/dist/commands/unlink.js.map +1 -1
  89. package/dist/commands/update.d.ts +8 -4
  90. package/dist/commands/update.d.ts.map +1 -1
  91. package/dist/commands/update.js +83 -35
  92. package/dist/commands/update.js.map +1 -1
  93. package/dist/commands/validate.d.ts +12 -6
  94. package/dist/commands/validate.d.ts.map +1 -1
  95. package/dist/commands/validate.js +50 -23
  96. package/dist/commands/validate.js.map +1 -1
  97. package/dist/config.d.ts +8 -0
  98. package/dist/config.d.ts.map +1 -1
  99. package/dist/config.js +1 -1
  100. package/dist/config.js.map +1 -1
  101. package/dist/constants.d.ts +1 -1
  102. package/dist/constants.js +1 -1
  103. package/dist/init/templates.js +1 -1
  104. package/dist/init/templates.js.map +1 -1
  105. package/dist/services/cloudflare-kv.d.ts +2 -2
  106. package/dist/services/cloudflare-kv.d.ts.map +1 -1
  107. package/dist/services/cloudflare-kv.js +10 -6
  108. package/dist/services/cloudflare-kv.js.map +1 -1
  109. package/dist/services/command-history.d.ts +2 -0
  110. package/dist/services/command-history.d.ts.map +1 -1
  111. package/dist/services/command-history.js +1 -1
  112. package/dist/services/command-history.js.map +1 -1
  113. package/dist/services/config.d.ts +24 -0
  114. package/dist/services/config.d.ts.map +1 -0
  115. package/dist/services/config.js +41 -0
  116. package/dist/services/config.js.map +1 -0
  117. package/dist/services/cwd.d.ts +12 -0
  118. package/dist/services/cwd.d.ts.map +1 -0
  119. package/dist/services/cwd.js +10 -0
  120. package/dist/services/cwd.js.map +1 -0
  121. package/dist/services/hubspot-dev-client.d.ts +38 -0
  122. package/dist/services/hubspot-dev-client.d.ts.map +1 -0
  123. package/dist/services/hubspot-dev-client.js +256 -0
  124. package/dist/services/hubspot-dev-client.js.map +1 -0
  125. package/dist/services/live.d.ts +7 -1
  126. package/dist/services/live.d.ts.map +1 -1
  127. package/dist/services/live.js +20 -8
  128. package/dist/services/live.js.map +1 -1
  129. package/dist/services/reporter.d.ts +14 -0
  130. package/dist/services/reporter.d.ts.map +1 -1
  131. package/dist/services/reporter.js +20 -0
  132. package/dist/services/reporter.js.map +1 -1
  133. package/dist/services/telemetry.d.ts +43 -0
  134. package/dist/services/telemetry.d.ts.map +1 -0
  135. package/dist/services/telemetry.js +93 -0
  136. package/dist/services/telemetry.js.map +1 -0
  137. package/dist/services/tenant-state.d.ts +85 -0
  138. package/dist/services/tenant-state.d.ts.map +1 -0
  139. package/dist/services/tenant-state.js +98 -0
  140. package/dist/services/tenant-state.js.map +1 -0
  141. package/package.json +4 -2
package/dist/cli/index.js CHANGED
@@ -1,43 +1,53 @@
1
- import * as Args from '@effect/cli/Args';
2
1
  import * as Command from '@effect/cli/Command';
3
- import * as Options from '@effect/cli/Options';
4
- import { BunContext } from '@effect/platform-bun';
5
- import { Effect, Option } from 'effect';
6
- import { accountCommand } from '../commands/account.js';
2
+ import { Effect, Layer } from 'effect';
3
+ import { CliError, describeError } from '../cli-error.js';
4
+ import * as Cwd from '../services/cwd.js';
5
+ import { ServicesLive } from '../services/live.js';
6
+ import { historyCmd } from '../commands/history.js';
7
+ import { doctorCmd } from '../commands/doctor.js';
8
+ import { statusCmd } from '../commands/status.js';
9
+ import { whoamiCmd, accountCmd, accountsCmd } from '../commands/account.js';
10
+ import { logoutCmd } from '../commands/login.js';
11
+ import { migrateCmd } from '../commands/migrate.js';
12
+ import { auditListCmd, driftCmd, checkpointCmd, logsCmd, routingCmd, routeCmd, routesCmd, } from '../commands/control-plane-read.js';
13
+ import { deployCmd } from '../commands/deploy.js';
14
+ import { devCmd } from '../commands/dev.js';
15
+ import { initCmd, createCmd } from '../commands/init.js';
16
+ import { connectCmd } from '../commands/connect.js';
17
+ import { promoteCmd } from '../commands/deploy-promote.js';
18
+ import { rollbackCmd } from '../commands/rollback.js';
19
+ import { checkCmd, validateCmd } from '../commands/validate.js';
20
+ import { completionCmd } from '../commands/completion.js';
21
+ import { secretCmd, secretsCmd } from '../commands/secrets.js';
22
+ import { apiCmd } from '../commands/api.js';
23
+ import { flagsCmd } from '../commands/flags.js';
24
+ import { updateCmd, upgradeCmd } from '../commands/update.js';
25
+ import { linkCmd } from '../commands/link.js';
26
+ import { unlinkCmd } from '../commands/unlink.js';
27
+ import { loginCmd } from '../commands/login.js';
7
28
  import { recordHistory } from '../command-history.js';
29
+ // The `completions` spelling alias is the only command still served by the
30
+ // legacy direct dispatcher; the rest run through the native @effect/cli tree.
8
31
  import { completionCommand } from '../commands/completion.js';
9
- import { connectCommand } from '../commands/connect.js';
10
- import { deployCommand } from '../commands/deploy.js';
11
- import { flagsCommand } from '../commands/flags.js';
12
- import { auditCommand, checkpointCommand, driftCommand, routingCommand, } from '../commands/control-plane-read.js';
13
- import { doctorCommand } from '../commands/doctor.js';
14
- import { deployPromoteCommand } from '../commands/deploy-promote.js';
15
- import { devCommand } from '../commands/dev.js';
16
- import { historyCommand } from '../commands/history.js';
17
- import { initProject } from '../commands/init.js';
18
- import { linkCommand } from '../commands/link.js';
19
- import { logoutCommand } from '../commands/login.js';
20
- import { unlinkCommand } from '../commands/unlink.js';
21
- import { migrateCommand } from '../commands/migrate.js';
22
- import { rollbackCommand } from '../commands/rollback.js';
23
- import { secretsCommand } from '../commands/secrets.js';
24
- import { statusCommand } from '../commands/status.js';
25
- import { maybePrintUpdateHint, updateCommand } from '../commands/update.js';
26
- import { validateCommand } from '../commands/validate.js';
32
+ import { maybePrintUpdateHint } from '../commands/update.js';
27
33
  import { CLI_VERSION } from '../constants.js';
28
34
  import { emitCliTelemetry, maybePrintTelemetryNotice } from '../telemetry.js';
29
35
  import { commandHelpText, helpText, helpTextStyled, unknownCommand, } from '../commands/help-command.js';
30
- import { apiCommand } from '../commands/api.js';
31
- import { loginCommand } from '../commands/login.js';
32
36
  import { emitHelp } from '../help.js';
33
37
  const MIGRATED_ROOT_COMMANDS = new Set([
34
38
  'account',
35
39
  'accounts',
40
+ 'api',
36
41
  'audit',
42
+ 'check',
37
43
  'checkpoint',
44
+ 'completion',
38
45
  'doctor',
39
46
  'drift',
47
+ 'flags',
40
48
  'history',
49
+ 'link',
50
+ 'login',
41
51
  'logs',
42
52
  'migrate',
43
53
  'logout',
@@ -46,29 +56,25 @@ const MIGRATED_ROOT_COMMANDS = new Set([
46
56
  'route',
47
57
  'routes',
48
58
  'routing',
59
+ 'secret',
60
+ 'secrets',
49
61
  'status',
50
- 'whoami',
51
- ]);
52
- const DIRECT_ROOT_COMMANDS = new Set([
53
- 'api',
54
- 'check',
55
- 'completion',
56
- 'completions',
57
62
  'connect',
58
63
  'create',
59
64
  'deploy',
60
65
  'dev',
61
- 'flags',
62
66
  'init',
63
- 'link',
64
- 'login',
65
- 'secret',
66
- 'secrets',
67
67
  'unlink',
68
68
  'update',
69
69
  'upgrade',
70
70
  'validate',
71
+ 'whoami',
71
72
  ]);
73
+ // Every command now resolves through the native @effect/cli tree. The legacy
74
+ // direct dispatcher only survives for the `completions` spelling alias and the
75
+ // custom help/version interception in shouldRunDirect; it will be deleted once
76
+ // `completions` is folded in.
77
+ const DIRECT_ROOT_COMMANDS = new Set(['completions']);
72
78
  const FLAGS_WITH_VALUE = new Set([
73
79
  '--account-id',
74
80
  '--app-id',
@@ -92,251 +98,68 @@ export async function runCli(argv = process.argv.slice(2), cwd = process.cwd())
92
98
  }
93
99
  let exitCode = 0;
94
100
  const historyStart = Date.now();
95
- const json = Options.boolean('json').pipe(Options.withDefault(false));
96
- const cwdOption = Options.text('cwd').pipe(Options.optional);
97
- const controlPlaneUrl = Options.text('control-plane-url').pipe(Options.optional);
98
- const userId = Options.text('user-id').pipe(Options.optional);
99
- const accountId = Options.text('account-id').pipe(Options.optional);
100
- const projectId = Options.text('project-id').pipe(Options.optional);
101
- const deployId = Options.text('deploy-id').pipe(Options.optional);
102
- const appId = Options.integer('app-id').pipe(Options.optional);
103
- const localHubSpot = Options.boolean('local-hubspot').pipe(Options.withDefault(false));
104
- const force = Options.boolean('force').pipe(Options.withDefault(false));
105
- const yes = Options.boolean('yes').pipe(Options.withAlias('y'), Options.withDefault(false));
106
- const limit = Options.integer('limit').pipe(Options.optional);
107
- const accountIdArg = Args.text({ name: 'account-id' });
108
- const migrationPathArg = Args.text({ name: 'path' });
109
- const projectDir = Options.text('project').pipe(Options.optional);
110
- const legacyCardId = Options.text('legacy-card-id').pipe(Options.optional);
111
- const replacementCardId = Options.text('replacement-card-id').pipe(Options.optional);
112
- const helpdeskCardId = Options.text('helpdesk-card-id').pipe(Options.optional);
113
- const runCommandBody = (program, jsonMode = false) => Effect.promise(async () => {
114
- try {
115
- const result = await program();
116
- exitCode = result.exitCode;
117
- }
118
- catch (error) {
119
- const message = error instanceof Error ? error.message : String(error);
120
- if (jsonMode) {
121
- process.stdout.write(`${JSON.stringify({ ok: false, error: message }, null, 2)}\n`);
122
- }
123
- else {
124
- process.stderr.write(`Error: ${message}\n`);
125
- }
126
- exitCode = 1;
127
- }
128
- });
129
- const optionalFlag = (name, value) => Option.isSome(value) ? [`--${name}`, String(value.value)] : [];
130
- const booleanFlag = (name, value) => (value ? [`--${name}`] : []);
131
- const commonProjectArgv = (commandName, options) => [
132
- commandName,
133
- ...optionalFlag('control-plane-url', options.controlPlaneUrl),
134
- ...optionalFlag('project-id', options.projectId),
135
- ...optionalFlag('user-id', options.userId),
136
- ...booleanFlag('json', options.json),
137
- ];
138
- const commonAccountArgv = (commandArgv, options) => [
139
- ...commandArgv,
140
- ...optionalFlag('control-plane-url', options.controlPlaneUrl),
141
- ...optionalFlag('account-id', options.accountId),
142
- ...optionalFlag('user-id', options.userId),
143
- ...booleanFlag('json', options.json),
144
- ];
145
- const whoami = Command.make('whoami', { json }, ({ json }) => runCommandBody(() => accountCommand({
146
- argv: json ? ['whoami', '--json'] : ['whoami'],
147
- cwd,
148
- })));
149
- const logout = Command.make('logout', { json }, ({ json }) => runCommandBody(() => logoutCommand({ argv: json ? ['logout', '--json'] : ['logout'], cwd })));
150
- const doctor = Command.make('doctor', { json }, ({ json }) => runCommandBody(() => doctorCommand({ argv: json ? ['doctor', '--json'] : ['doctor'], cwd })));
151
- const history = Command.make('history', { json, limit }, ({ json, limit }) => {
152
- const historyArgv = [
153
- 'history',
154
- ...(json ? ['--json'] : []),
155
- ...(Option.isSome(limit) ? ['--limit', String(limit.value)] : []),
156
- ];
157
- return runCommandBody(() => historyCommand({ argv: historyArgv }));
158
- });
159
- const status = Command.make('status', { cwd: cwdOption, json }, ({ cwd: cwdFlag, json }) => runCommandBody(() => statusCommand({
160
- root: Option.isSome(cwdFlag) ? cwdFlag.value : cwd,
161
- json,
162
- })));
163
- const auditList = Command.make('list', { accountId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => auditCommand({
164
- argv: commonAccountArgv(['audit', 'list'], options),
165
- json: options.json,
166
- }), options.json));
167
- const audit = Command.make('audit').pipe(Command.withSubcommands([auditList]));
168
- const drift = Command.make('drift', { projectId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => driftCommand({
169
- argv: commonProjectArgv('drift', options),
170
- json: options.json,
171
- }), options.json));
172
- const checkpoint = Command.make('checkpoint', { projectId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => checkpointCommand({
173
- argv: commonProjectArgv('checkpoint', options),
174
- json: options.json,
175
- }), options.json));
176
- const logs = Command.make('logs', { projectId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => checkpointCommand({
177
- argv: commonProjectArgv('logs', options),
178
- json: options.json,
179
- }), options.json));
180
- const routing = Command.make('routing', { projectId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => routingCommand({
181
- argv: commonProjectArgv('routing', options),
182
- json: options.json,
183
- }), options.json));
184
- const route = Command.make('route', { projectId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => routingCommand({
185
- argv: commonProjectArgv('route', options),
186
- json: options.json,
187
- }), options.json));
188
- const routes = Command.make('routes', { projectId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => routingCommand({
189
- argv: commonProjectArgv('routes', options),
190
- json: options.json,
191
- }), options.json));
192
- const promote = Command.make('promote', { accountId, projectId, deployId, controlPlaneUrl, userId, json }, (options) => runCommandBody(() => deployPromoteCommand({
193
- argv: [
194
- 'promote',
195
- ...optionalFlag('control-plane-url', options.controlPlaneUrl),
196
- ...optionalFlag('account-id', options.accountId),
197
- ...optionalFlag('project-id', options.projectId),
198
- ...optionalFlag('deploy-id', options.deployId),
199
- ...optionalFlag('user-id', options.userId),
200
- ...booleanFlag('json', options.json),
201
- ],
202
- json: options.json,
203
- }), options.json));
204
- const rollback = Command.make('rollback', { accountId, projectId, deployId, controlPlaneUrl, userId, force, yes, json }, (options) => runCommandBody(() => rollbackCommand({
205
- argv: [
206
- 'rollback',
207
- ...optionalFlag('control-plane-url', options.controlPlaneUrl),
208
- ...optionalFlag('account-id', options.accountId),
209
- ...optionalFlag('project-id', options.projectId),
210
- ...optionalFlag('deploy-id', options.deployId),
211
- ...optionalFlag('user-id', options.userId),
212
- ...booleanFlag('force', options.force),
213
- ...booleanFlag('yes', options.yes),
214
- ...booleanFlag('json', options.json),
215
- ],
216
- json: options.json,
217
- }), options.json));
218
- const makeMigrationRead = (subcommand) => Command.make(subcommand, { path: migrationPathArg, json }, ({ path, json }) => runCommandBody(() => migrateCommand({ argv: ['migrate', subcommand, path, ...booleanFlag('json', json)], cwd, json }), json));
219
- const migrateCards = Command.make('cards', { path: migrationPathArg, project: projectDir, json }, ({ path, project, json }) => runCommandBody(() => migrateCommand({
220
- argv: [
221
- 'migrate',
222
- 'cards',
223
- path,
224
- ...optionalFlag('project', project),
225
- ...booleanFlag('json', json),
226
- ],
227
- cwd,
228
- json,
229
- }), json));
230
- const migrateSwapCards = Command.make('swap-cards', {
231
- appId,
232
- legacyCardId,
233
- replacementCardId,
234
- helpdeskCardId,
235
- localHubSpot,
236
- controlPlaneUrl,
237
- accountId,
238
- userId,
239
- json,
240
- }, (options) => runCommandBody(() => migrateCommand({
241
- argv: [
242
- 'migrate',
243
- 'swap-cards',
244
- ...optionalFlag('app-id', options.appId),
245
- ...optionalFlag('legacy-card-id', options.legacyCardId),
246
- ...optionalFlag('replacement-card-id', options.replacementCardId),
247
- ...optionalFlag('helpdesk-card-id', options.helpdeskCardId),
248
- ...optionalFlag('control-plane-url', options.controlPlaneUrl),
249
- ...optionalFlag('account-id', options.accountId),
250
- ...optionalFlag('user-id', options.userId),
251
- ...booleanFlag('local-hubspot', options.localHubSpot),
252
- ...booleanFlag('json', options.json),
253
- ],
254
- cwd,
255
- json: options.json,
256
- }), options.json));
257
- const migrate = Command.make('migrate').pipe(Command.withSubcommands([
258
- makeMigrationRead('inspect'),
259
- makeMigrationRead('report'),
260
- migrateCards,
261
- migrateSwapCards,
262
- ]));
263
- const accountList = Command.make('list', { cwd: cwdOption, json }, ({ cwd: cwdFlag, json }) => runCommandBody(() => accountCommand({
264
- argv: ['account', 'list', ...(json ? ['--json'] : [])],
265
- cwd: Option.isSome(cwdFlag) ? cwdFlag.value : cwd,
266
- })));
267
- const accountLs = Command.make('ls', { cwd: cwdOption, json }, ({ cwd: cwdFlag, json }) => runCommandBody(() => accountCommand({
268
- argv: ['account', 'ls', ...(json ? ['--json'] : [])],
269
- cwd: Option.isSome(cwdFlag) ? cwdFlag.value : cwd,
270
- })));
271
- const accountCurrent = Command.make('current', { json }, ({ json }) => runCommandBody(() => accountCommand({
272
- argv: ['accounts', 'current', ...(json ? ['--json'] : [])],
273
- cwd,
274
- })));
275
- const accountSwitch = Command.make('switch', { accountId: accountIdArg, json }, ({ accountId, json }) => runCommandBody(() => accountCommand({
276
- argv: ['accounts', 'switch', accountId, ...(json ? ['--json'] : [])],
277
- cwd,
278
- })));
279
- const accountSet = Command.make('set', { accountId: accountIdArg, json }, ({ accountId, json }) => runCommandBody(() => accountCommand({
280
- argv: ['accounts', 'set', accountId, ...(json ? ['--json'] : [])],
281
- cwd,
282
- })));
283
- const accountLogout = Command.make('logout', { accountId: accountIdArg, json }, ({ accountId, json }) => runCommandBody(() => accountCommand({
284
- argv: ['accounts', 'logout', accountId, ...(json ? ['--json'] : [])],
285
- cwd,
286
- })));
287
- const accountRemove = Command.make('remove', { accountId: accountIdArg, json }, ({ accountId, json }) => runCommandBody(() => accountCommand({
288
- argv: ['accounts', 'remove', accountId, ...(json ? ['--json'] : [])],
289
- cwd,
290
- })));
291
- const account = Command.make('account').pipe(Command.withSubcommands([
292
- accountList,
293
- accountLs,
294
- accountCurrent,
295
- accountSwitch,
296
- accountSet,
297
- accountLogout,
298
- accountRemove,
299
- ]));
300
- const accounts = Command.make('accounts').pipe(Command.withSubcommands([
301
- accountList,
302
- accountLs,
303
- accountCurrent,
304
- accountSwitch,
305
- accountSet,
306
- accountLogout,
307
- accountRemove,
308
- ]));
101
+ // Every command is a native @effect/cli Command value (Phase 4/5) — options
102
+ // parsed once, Effect handlers, services via ServicesLive; no argv round-trip.
309
103
  const root = Command.make('hs-x').pipe(Command.withSubcommands([
310
- whoami,
311
- logout,
312
- doctor,
313
- history,
314
- status,
315
- audit,
316
- drift,
317
- checkpoint,
318
- logs,
319
- routing,
320
- route,
321
- routes,
322
- promote,
323
- rollback,
324
- migrate,
325
- account,
326
- accounts,
104
+ whoamiCmd,
105
+ logoutCmd,
106
+ doctorCmd,
107
+ historyCmd,
108
+ statusCmd,
109
+ Command.make('audit').pipe(Command.withSubcommands([auditListCmd])),
110
+ driftCmd,
111
+ checkpointCmd,
112
+ logsCmd,
113
+ routingCmd,
114
+ routeCmd,
115
+ routesCmd,
116
+ promoteCmd,
117
+ rollbackCmd,
118
+ migrateCmd,
119
+ accountCmd,
120
+ accountsCmd,
121
+ validateCmd,
122
+ checkCmd,
123
+ completionCmd,
124
+ secretsCmd,
125
+ secretCmd,
126
+ apiCmd,
127
+ flagsCmd,
128
+ updateCmd,
129
+ upgradeCmd,
130
+ linkCmd,
131
+ unlinkCmd,
132
+ loginCmd,
133
+ deployCmd,
134
+ devCmd,
135
+ initCmd,
136
+ createCmd,
137
+ connectCmd,
327
138
  ]));
139
+ // `--cwd` is a true global: extract it for the Cwd service, then strip it so
140
+ // commands that don't declare a --cwd option (e.g. api) don't choke on it.
141
+ // The remaining argv is reordered to command-first so global flags that
142
+ // appear BEFORE the command still reach the native @effect/cli tree.
143
+ const cwdValue = resolveFlag(argv, '--cwd') ?? cwd;
144
+ const stripped = stripGlobalFlags(argv);
145
+ const nativeArgv = normalizeForNative(stripped);
328
146
  const program = Command.run(root, {
329
147
  name: 'hs-x',
330
148
  version: CLI_VERSION,
331
- })(['bun', 'hs-x', ...argv]).pipe(Effect.provide(BunContext.layer), Effect.catchAll(() => Effect.sync(() => {
332
- exitCode = 10;
149
+ })(['bun', 'hs-x', ...nativeArgv]).pipe(
150
+ // ServicesLive (FileSystem/Path/Terminal/HttpClient via BunContext) + the
151
+ // resolved Cwd power every native command handler.
152
+ Effect.provide(Layer.merge(ServicesLive, Cwd.layer(cwdValue))), Effect.catchAll((error) => Effect.sync(() => {
153
+ exitCode = error instanceof CliError ? describeError(error).exitCode : 10;
333
154
  })));
334
155
  await Effect.runPromise(program);
335
- const command = argv[0] ?? 'help';
156
+ // nativeArgv is command-first, so [0] is the real command even when the user
157
+ // wrote global flags before it (telemetry/history/update-hint key off this).
158
+ const command = nativeArgv[0] ?? 'help';
336
159
  const jsonMode = argv.includes('--json');
337
160
  await finalizeCommand({
338
161
  argv,
339
- commandArgv: argv,
162
+ commandArgv: nativeArgv,
340
163
  command,
341
164
  exitCode,
342
165
  json: jsonMode,
@@ -359,11 +182,11 @@ function shouldRunDirect(argv) {
359
182
  argv[1] === 'help') {
360
183
  return true;
361
184
  }
185
+ // Global flags before the command (commandIndex > 0) no longer force the
186
+ // legacy path — runCli normalizes argv to command-first and routes them to
187
+ // the native tree. Only unknown commands + the `completions` alias stay here.
362
188
  const commandIndex = findCommandIndex(argv);
363
- if (commandIndex !== 0) {
364
- return true;
365
- }
366
- const command = argv[commandIndex];
189
+ const command = commandIndex === -1 ? undefined : argv[commandIndex];
367
190
  return (command === undefined ||
368
191
  DIRECT_ROOT_COMMANDS.has(command) ||
369
192
  !MIGRATED_ROOT_COMMANDS.has(command));
@@ -410,72 +233,17 @@ async function dispatchDirectCommand(input) {
410
233
  }
411
234
  return { exitCode: 0 };
412
235
  }
236
+ // Every real command runs through the native @effect/cli tree (see runCli).
237
+ // The direct dispatcher only survives for `--version`, the `completions`
238
+ // spelling alias, and the custom highlights/unknown-command help below.
413
239
  switch (command) {
414
240
  case '-v':
415
241
  case '--version':
416
242
  process.stdout.write(`${CLI_VERSION}\n`);
417
243
  return { exitCode: 0 };
418
- case 'init':
419
- case 'create':
420
- return await initProject({ argv: commandArgv, cwd, json });
421
- case 'check':
422
- return await validateCommand({ command: 'check', root: cwd, json, argv: commandArgv });
423
- case 'validate':
424
- return await validateCommand({ command: 'validate', root: cwd, json, argv: commandArgv });
425
- case 'deploy':
426
- return await deployCommand({ argv: commandArgv, root: cwd, json });
427
- case 'flags':
428
- return await flagsCommand({ argv: commandArgv, root: cwd, json });
429
- case 'connect':
430
- return await connectCommand({ argv: commandArgv, cwd, json });
431
- case 'secrets':
432
- case 'secret':
433
- return await secretsCommand({ argv: commandArgv, json });
434
- case 'link':
435
- return await linkCommand({ argv: commandArgv, json, root: cwd });
436
- case 'unlink':
437
- return await unlinkCommand({ argv: commandArgv, json, root: cwd });
438
- case 'login':
439
- return await loginCommand({ argv: commandArgv, cwd });
440
244
  case 'completion':
441
245
  case 'completions':
442
246
  return completionCommand({ argv: commandArgv, json });
443
- case 'api':
444
- return await apiCommand({ argv: commandArgv, cwd });
445
- case 'account':
446
- case 'accounts':
447
- case 'whoami':
448
- return await accountCommand({ argv: commandArgv, cwd });
449
- case 'logout':
450
- return await logoutCommand({ argv: commandArgv, cwd });
451
- case 'doctor':
452
- return await doctorCommand({ argv: commandArgv });
453
- case 'history':
454
- return await historyCommand({ argv: commandArgv });
455
- case 'status':
456
- return await statusCommand({ root: cwd, json });
457
- case 'audit':
458
- return await auditCommand({ argv: commandArgv, json });
459
- case 'drift':
460
- return await driftCommand({ argv: commandArgv, json });
461
- case 'checkpoint':
462
- case 'logs':
463
- return await checkpointCommand({ argv: commandArgv, json });
464
- case 'routing':
465
- case 'route':
466
- case 'routes':
467
- return await routingCommand({ argv: commandArgv, json });
468
- case 'promote':
469
- return await deployPromoteCommand({ argv: commandArgv, json });
470
- case 'rollback':
471
- return await rollbackCommand({ argv: commandArgv, json, root: cwd });
472
- case 'dev':
473
- return await devCommand({ argv: commandArgv, root: cwd, json });
474
- case 'migrate':
475
- return await migrateCommand({ argv: commandArgv, cwd, json });
476
- case 'update':
477
- case 'upgrade':
478
- return await updateCommand({ argv: commandArgv, json });
479
247
  default: {
480
248
  const wantsHighlights = argv.length === 0;
481
249
  const wantsFullHelp = !wantsHighlights && (command === 'help' || command === '-h' || command === '--help');
@@ -530,6 +298,56 @@ async function finalizeCommand(input) {
530
298
  json: input.json,
531
299
  });
532
300
  }
301
+ // Boolean flags handled globally (Reporter mode + telemetry/update-hint, which
302
+ // read the ORIGINAL argv in finalizeCommand) rather than declared per command.
303
+ // They are stripped from the argv fed to the native tree so commands that don't
304
+ // declare them don't reject them as unknown options.
305
+ const GLOBAL_BOOLEAN_FLAGS = new Set([
306
+ '--no-telemetry',
307
+ '--quiet',
308
+ '-q',
309
+ '--verbose',
310
+ '--debug',
311
+ '--json-stream',
312
+ '--help-all',
313
+ ]);
314
+ /**
315
+ * Remove the true global flags from the argv handed to the native tree: `--cwd`
316
+ * (with value; provided via the Cwd service) and the global boolean flags above.
317
+ * The original argv is preserved for finalizeCommand.
318
+ */
319
+ function stripGlobalFlags(argv) {
320
+ const out = [];
321
+ for (let index = 0; index < argv.length; index += 1) {
322
+ const arg = argv[index];
323
+ if (arg === undefined)
324
+ continue;
325
+ if (arg === '--cwd') {
326
+ index += 1; // skip its value
327
+ continue;
328
+ }
329
+ if (arg.startsWith('--cwd='))
330
+ continue;
331
+ if (GLOBAL_BOOLEAN_FLAGS.has(arg))
332
+ continue;
333
+ out.push(arg);
334
+ }
335
+ return out;
336
+ }
337
+ /**
338
+ * Reorder argv to command-first so global flags that appear before the command
339
+ * (`--json api …`) reach the native tree: `[<command>, …after, …before]`.
340
+ */
341
+ function normalizeForNative(argv) {
342
+ const commandIndex = findCommandIndex(argv);
343
+ if (commandIndex <= 0)
344
+ return argv;
345
+ return [
346
+ argv[commandIndex],
347
+ ...argv.slice(commandIndex + 1),
348
+ ...argv.slice(0, commandIndex),
349
+ ];
350
+ }
533
351
  function findCommandIndex(argv) {
534
352
  for (let index = 0; index < argv.length; index += 1) {
535
353
  const token = argv[index];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}