@hs-x/cli 0.2.6 → 0.3.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 (298) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +25 -8
  3. package/dist/audit-interactive.d.ts +29 -0
  4. package/dist/audit-interactive.d.ts.map +1 -0
  5. package/dist/audit-interactive.js +156 -0
  6. package/dist/audit-interactive.js.map +1 -0
  7. package/dist/bin/hs-x.js.map +1 -1
  8. package/dist/checkpoint-interactive.d.ts +24 -0
  9. package/dist/checkpoint-interactive.d.ts.map +1 -0
  10. package/dist/checkpoint-interactive.js +65 -0
  11. package/dist/checkpoint-interactive.js.map +1 -0
  12. package/dist/cli/index.d.ts.map +1 -1
  13. package/dist/cli/index.js +266 -39
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/cli/kit.d.ts +1 -1
  16. package/dist/cli/kit.d.ts.map +1 -1
  17. package/dist/cli/kit.js +19 -3
  18. package/dist/cli/kit.js.map +1 -1
  19. package/dist/cloudflare-auth.d.ts +8 -0
  20. package/dist/cloudflare-auth.d.ts.map +1 -1
  21. package/dist/cloudflare-auth.js +12 -2
  22. package/dist/cloudflare-auth.js.map +1 -1
  23. package/dist/cloudflare-oauth-store.d.ts +9 -1
  24. package/dist/cloudflare-oauth-store.d.ts.map +1 -1
  25. package/dist/cloudflare-oauth-store.js +23 -4
  26. package/dist/cloudflare-oauth-store.js.map +1 -1
  27. package/dist/cloudflare-oauth.d.ts +1 -0
  28. package/dist/cloudflare-oauth.d.ts.map +1 -1
  29. package/dist/cloudflare-oauth.js +6 -2
  30. package/dist/cloudflare-oauth.js.map +1 -1
  31. package/dist/cloudflare-worker-versions.d.ts +184 -0
  32. package/dist/cloudflare-worker-versions.d.ts.map +1 -0
  33. package/dist/cloudflare-worker-versions.js +360 -0
  34. package/dist/cloudflare-worker-versions.js.map +1 -0
  35. package/dist/commands/account.d.ts +28 -13
  36. package/dist/commands/account.d.ts.map +1 -1
  37. package/dist/commands/account.js +219 -69
  38. package/dist/commands/account.js.map +1 -1
  39. package/dist/commands/api.d.ts +1 -1
  40. package/dist/commands/api.d.ts.map +1 -1
  41. package/dist/commands/api.js +6 -10
  42. package/dist/commands/api.js.map +1 -1
  43. package/dist/commands/completion.d.ts.map +1 -1
  44. package/dist/commands/completion.js +13 -7
  45. package/dist/commands/completion.js.map +1 -1
  46. package/dist/commands/connect.d.ts.map +1 -1
  47. package/dist/commands/connect.js +239 -125
  48. package/dist/commands/connect.js.map +1 -1
  49. package/dist/commands/control-plane-read.d.ts +72 -11
  50. package/dist/commands/control-plane-read.d.ts.map +1 -1
  51. package/dist/commands/control-plane-read.js +1035 -58
  52. package/dist/commands/control-plane-read.js.map +1 -1
  53. package/dist/commands/deploy-promote.d.ts +25 -3
  54. package/dist/commands/deploy-promote.d.ts.map +1 -1
  55. package/dist/commands/deploy-promote.js +314 -38
  56. package/dist/commands/deploy-promote.js.map +1 -1
  57. package/dist/commands/deploy.d.ts +67 -4
  58. package/dist/commands/deploy.d.ts.map +1 -1
  59. package/dist/commands/deploy.js +1333 -255
  60. package/dist/commands/deploy.js.map +1 -1
  61. package/dist/commands/dev.d.ts +5 -1
  62. package/dist/commands/dev.d.ts.map +1 -1
  63. package/dist/commands/dev.js +502 -107
  64. package/dist/commands/dev.js.map +1 -1
  65. package/dist/commands/doctor.d.ts +15 -1
  66. package/dist/commands/doctor.d.ts.map +1 -1
  67. package/dist/commands/doctor.js +131 -20
  68. package/dist/commands/doctor.js.map +1 -1
  69. package/dist/commands/flags.d.ts +108 -6
  70. package/dist/commands/flags.d.ts.map +1 -1
  71. package/dist/commands/flags.js +996 -75
  72. package/dist/commands/flags.js.map +1 -1
  73. package/dist/commands/help-command.d.ts +14 -0
  74. package/dist/commands/help-command.d.ts.map +1 -1
  75. package/dist/commands/help-command.js +144 -44
  76. package/dist/commands/help-command.js.map +1 -1
  77. package/dist/commands/history.js +14 -10
  78. package/dist/commands/history.js.map +1 -1
  79. package/dist/commands/init.d.ts +4 -2
  80. package/dist/commands/init.d.ts.map +1 -1
  81. package/dist/commands/init.js +69 -12
  82. package/dist/commands/init.js.map +1 -1
  83. package/dist/commands/link.d.ts +2 -3
  84. package/dist/commands/link.d.ts.map +1 -1
  85. package/dist/commands/link.js +201 -101
  86. package/dist/commands/link.js.map +1 -1
  87. package/dist/commands/login.d.ts +2 -2
  88. package/dist/commands/login.d.ts.map +1 -1
  89. package/dist/commands/login.js +22 -5
  90. package/dist/commands/login.js.map +1 -1
  91. package/dist/commands/migrate.d.ts +23 -3
  92. package/dist/commands/migrate.d.ts.map +1 -1
  93. package/dist/commands/migrate.js +500 -73
  94. package/dist/commands/migrate.js.map +1 -1
  95. package/dist/commands/rollback.d.ts +42 -2
  96. package/dist/commands/rollback.d.ts.map +1 -1
  97. package/dist/commands/rollback.js +422 -58
  98. package/dist/commands/rollback.js.map +1 -1
  99. package/dist/commands/secrets.d.ts +76 -3
  100. package/dist/commands/secrets.d.ts.map +1 -1
  101. package/dist/commands/secrets.js +328 -41
  102. package/dist/commands/secrets.js.map +1 -1
  103. package/dist/commands/status.d.ts +13 -2
  104. package/dist/commands/status.d.ts.map +1 -1
  105. package/dist/commands/status.js +154 -17
  106. package/dist/commands/status.js.map +1 -1
  107. package/dist/commands/unlink.d.ts +2 -2
  108. package/dist/commands/unlink.d.ts.map +1 -1
  109. package/dist/commands/unlink.js +2 -2
  110. package/dist/commands/unlink.js.map +1 -1
  111. package/dist/commands/update.d.ts.map +1 -1
  112. package/dist/commands/update.js +4 -3
  113. package/dist/commands/update.js.map +1 -1
  114. package/dist/commands/validate.d.ts +12 -3
  115. package/dist/commands/validate.d.ts.map +1 -1
  116. package/dist/commands/validate.js +70 -8
  117. package/dist/commands/validate.js.map +1 -1
  118. package/dist/constants.d.ts +1 -1
  119. package/dist/constants.js +1 -1
  120. package/dist/control-plane-fetch.d.ts.map +1 -1
  121. package/dist/control-plane-fetch.js +5 -4
  122. package/dist/control-plane-fetch.js.map +1 -1
  123. package/dist/deploy-revision-capture.d.ts +48 -0
  124. package/dist/deploy-revision-capture.d.ts.map +1 -0
  125. package/dist/deploy-revision-capture.js +125 -0
  126. package/dist/deploy-revision-capture.js.map +1 -0
  127. package/dist/dev/compat-shim.d.ts.map +1 -1
  128. package/dist/dev/compat-shim.js +10 -35
  129. package/dist/dev/compat-shim.js.map +1 -1
  130. package/dist/dev/event-bus.d.ts +5 -2
  131. package/dist/dev/event-bus.d.ts.map +1 -1
  132. package/dist/dev/event-bus.js +4 -1
  133. package/dist/dev/event-bus.js.map +1 -1
  134. package/dist/dev/hubspot-logs-poller.d.ts +35 -0
  135. package/dist/dev/hubspot-logs-poller.d.ts.map +1 -0
  136. package/dist/dev/hubspot-logs-poller.js +94 -0
  137. package/dist/dev/hubspot-logs-poller.js.map +1 -0
  138. package/dist/dev/invoke.d.ts +9 -1
  139. package/dist/dev/invoke.d.ts.map +1 -1
  140. package/dist/dev/invoke.js +69 -20
  141. package/dist/dev/invoke.js.map +1 -1
  142. package/dist/dev/keyboard.d.ts +31 -0
  143. package/dist/dev/keyboard.d.ts.map +1 -0
  144. package/dist/dev/keyboard.js +143 -0
  145. package/dist/dev/keyboard.js.map +1 -0
  146. package/dist/dev/log-server.d.ts +7 -0
  147. package/dist/dev/log-server.d.ts.map +1 -1
  148. package/dist/dev/log-server.js +68 -31
  149. package/dist/dev/log-server.js.map +1 -1
  150. package/dist/dev/migrated-card.d.ts +17 -0
  151. package/dist/dev/migrated-card.d.ts.map +1 -0
  152. package/dist/dev/migrated-card.js +114 -0
  153. package/dist/dev/migrated-card.js.map +1 -0
  154. package/dist/dev/stream-filter.d.ts +40 -0
  155. package/dist/dev/stream-filter.d.ts.map +1 -0
  156. package/dist/dev/stream-filter.js +93 -0
  157. package/dist/dev/stream-filter.js.map +1 -0
  158. package/dist/dev/stream-renderer.d.ts +34 -0
  159. package/dist/dev/stream-renderer.d.ts.map +1 -1
  160. package/dist/dev/stream-renderer.js +222 -8
  161. package/dist/dev/stream-renderer.js.map +1 -1
  162. package/dist/errors-registry.d.ts.map +1 -1
  163. package/dist/errors-registry.js +280 -36
  164. package/dist/errors-registry.js.map +1 -1
  165. package/dist/errors.d.ts.map +1 -1
  166. package/dist/errors.js.map +1 -1
  167. package/dist/help.d.ts.map +1 -1
  168. package/dist/help.js +8 -0
  169. package/dist/help.js.map +1 -1
  170. package/dist/hubspot-app-logs.d.ts +76 -0
  171. package/dist/hubspot-app-logs.d.ts.map +1 -0
  172. package/dist/hubspot-app-logs.js +323 -0
  173. package/dist/hubspot-app-logs.js.map +1 -0
  174. package/dist/hubspot-auth.d.ts +8 -2
  175. package/dist/hubspot-auth.d.ts.map +1 -1
  176. package/dist/hubspot-auth.js +36 -12
  177. package/dist/hubspot-auth.js.map +1 -1
  178. package/dist/hubspot-developer-client.js +119 -11
  179. package/dist/hubspot-developer-client.js.map +1 -1
  180. package/dist/index.d.ts +1 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +1 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/init/templates.d.ts +10 -0
  185. package/dist/init/templates.d.ts.map +1 -1
  186. package/dist/init/templates.js +157 -14
  187. package/dist/init/templates.js.map +1 -1
  188. package/dist/link-migration-journal.d.ts +131 -0
  189. package/dist/link-migration-journal.d.ts.map +1 -0
  190. package/dist/link-migration-journal.js +395 -0
  191. package/dist/link-migration-journal.js.map +1 -0
  192. package/dist/link-preflight.d.ts +78 -0
  193. package/dist/link-preflight.d.ts.map +1 -0
  194. package/dist/link-preflight.js +231 -0
  195. package/dist/link-preflight.js.map +1 -0
  196. package/dist/local-project-picker.d.ts +34 -0
  197. package/dist/local-project-picker.d.ts.map +1 -0
  198. package/dist/local-project-picker.js +121 -0
  199. package/dist/local-project-picker.js.map +1 -0
  200. package/dist/logs-interactive.d.ts +37 -0
  201. package/dist/logs-interactive.d.ts.map +1 -0
  202. package/dist/logs-interactive.js +110 -0
  203. package/dist/logs-interactive.js.map +1 -0
  204. package/dist/output-context.d.ts +13 -0
  205. package/dist/output-context.d.ts.map +1 -0
  206. package/dist/output-context.js +46 -0
  207. package/dist/output-context.js.map +1 -0
  208. package/dist/project-context.d.ts +55 -0
  209. package/dist/project-context.d.ts.map +1 -0
  210. package/dist/project-context.js +115 -0
  211. package/dist/project-context.js.map +1 -0
  212. package/dist/project-picker.d.ts +65 -0
  213. package/dist/project-picker.d.ts.map +1 -0
  214. package/dist/project-picker.js +227 -0
  215. package/dist/project-picker.js.map +1 -0
  216. package/dist/prompt.d.ts +8 -0
  217. package/dist/prompt.d.ts.map +1 -1
  218. package/dist/prompt.js +81 -13
  219. package/dist/prompt.js.map +1 -1
  220. package/dist/reporter/human.d.ts +10 -2
  221. package/dist/reporter/human.d.ts.map +1 -1
  222. package/dist/reporter/human.js +82 -14
  223. package/dist/reporter/human.js.map +1 -1
  224. package/dist/reporter/index.d.ts.map +1 -1
  225. package/dist/reporter/index.js +7 -5
  226. package/dist/reporter/index.js.map +1 -1
  227. package/dist/reporter/json.d.ts +2 -1
  228. package/dist/reporter/json.d.ts.map +1 -1
  229. package/dist/reporter/json.js +10 -7
  230. package/dist/reporter/json.js.map +1 -1
  231. package/dist/reporter/style.d.ts +19 -0
  232. package/dist/reporter/style.d.ts.map +1 -1
  233. package/dist/reporter/style.js +126 -6
  234. package/dist/reporter/style.js.map +1 -1
  235. package/dist/reporter/types.d.ts +34 -4
  236. package/dist/reporter/types.d.ts.map +1 -1
  237. package/dist/reporter/types.js.map +1 -1
  238. package/dist/rollback-traffic.d.ts +85 -0
  239. package/dist/rollback-traffic.d.ts.map +1 -0
  240. package/dist/rollback-traffic.js +204 -0
  241. package/dist/rollback-traffic.js.map +1 -0
  242. package/dist/services/account-store.d.ts +3 -1
  243. package/dist/services/account-store.d.ts.map +1 -1
  244. package/dist/services/account-store.js +2 -1
  245. package/dist/services/account-store.js.map +1 -1
  246. package/dist/services/app-paths.d.ts.map +1 -1
  247. package/dist/services/app-paths.js +3 -1
  248. package/dist/services/app-paths.js.map +1 -1
  249. package/dist/services/cloudflare-auth.d.ts +1 -1
  250. package/dist/services/cloudflare-auth.d.ts.map +1 -1
  251. package/dist/services/cloudflare-auth.js +2 -2
  252. package/dist/services/cloudflare-auth.js.map +1 -1
  253. package/dist/services/cloudflare-kv.d.ts.map +1 -1
  254. package/dist/services/cloudflare-kv.js.map +1 -1
  255. package/dist/services/command-history.d.ts.map +1 -1
  256. package/dist/services/command-history.js.map +1 -1
  257. package/dist/services/config.d.ts.map +1 -1
  258. package/dist/services/config.js +1 -1
  259. package/dist/services/config.js.map +1 -1
  260. package/dist/services/control-plane.d.ts.map +1 -1
  261. package/dist/services/control-plane.js +3 -3
  262. package/dist/services/control-plane.js.map +1 -1
  263. package/dist/services/env-loader.d.ts.map +1 -1
  264. package/dist/services/env-loader.js +1 -3
  265. package/dist/services/env-loader.js.map +1 -1
  266. package/dist/services/http.d.ts.map +1 -1
  267. package/dist/services/http.js.map +1 -1
  268. package/dist/services/hubspot-dev-client.d.ts.map +1 -1
  269. package/dist/services/hubspot-dev-client.js +30 -0
  270. package/dist/services/hubspot-dev-client.js.map +1 -1
  271. package/dist/services/live.d.ts +2 -2
  272. package/dist/services/live.d.ts.map +1 -1
  273. package/dist/services/live.js +1 -1
  274. package/dist/services/live.js.map +1 -1
  275. package/dist/services/machine-id.d.ts.map +1 -1
  276. package/dist/services/machine-id.js.map +1 -1
  277. package/dist/services/reporter.d.ts +8 -5
  278. package/dist/services/reporter.d.ts.map +1 -1
  279. package/dist/services/reporter.js +6 -4
  280. package/dist/services/reporter.js.map +1 -1
  281. package/dist/services/tenant-state.d.ts.map +1 -1
  282. package/dist/services/tenant-state.js.map +1 -1
  283. package/dist/state-store.d.ts +4 -0
  284. package/dist/state-store.d.ts.map +1 -1
  285. package/dist/state-store.js +15 -0
  286. package/dist/state-store.js.map +1 -1
  287. package/dist/status-drilldown.d.ts +24 -0
  288. package/dist/status-drilldown.d.ts.map +1 -0
  289. package/dist/status-drilldown.js +50 -0
  290. package/dist/status-drilldown.js.map +1 -0
  291. package/dist/tenant-state.d.ts.map +1 -1
  292. package/dist/tenant-state.js +3 -2
  293. package/dist/tenant-state.js.map +1 -1
  294. package/dist/token-key-custody.d.ts +91 -0
  295. package/dist/token-key-custody.d.ts.map +1 -0
  296. package/dist/token-key-custody.js +375 -0
  297. package/dist/token-key-custody.js.map +1 -0
  298. package/package.json +13 -14
@@ -1,16 +1,17 @@
1
- import { defaultStorePath } from '../account-store.js';
2
- import * as Command from '@effect/cli/Command';
3
1
  import * as Args from '@effect/cli/Args';
2
+ import * as Command from '@effect/cli/Command';
4
3
  import { HttpClientRequest } from '@hs-x/types';
5
4
  import { Effect } from 'effect';
5
+ import { Option } from 'effect';
6
+ import { defaultStorePath, loadStore } from '../account-store.js';
6
7
  import { cliError } from '../cli-error.js';
7
- import { jsonOption, cwdOption, runHandler } from '../cli/kit.js';
8
+ import { cwdOption, jsonOption, runHandler, yesOption } from '../cli/kit.js';
8
9
  import { executeCliHttp } from '../effect-http.js';
9
10
  import { discoverHubSpotAccounts } from '../hubspot-auth.js';
11
+ import { isInteractive, promptConfirm, promptSelect, } from '../prompt.js';
10
12
  import { AccountStore } from '../services/account-store.js';
11
13
  import { Cwd } from '../services/cwd.js';
12
14
  import { Reporter } from '../services/reporter.js';
13
- import { Option } from 'effect';
14
15
  async function fetchControlPlaneAccounts(controlPlaneUrl) {
15
16
  try {
16
17
  const response = await executeCliHttp(HttpClientRequest.get(new URL('/v1/accounts', controlPlaneUrl)).pipe(HttpClientRequest.setHeaders({
@@ -70,36 +71,36 @@ function jsonErrorLine(command, code, message, hint) {
70
71
  // and the handler fails with a silent `exitWith`/rendered error so `runHandler` does
71
72
  // not re-render. TODO(phase-5): reconcile with the standard envelope once the
72
73
  // dispatch swap lets the fixtures move in lockstep.
73
- const accountIdArg = Args.text({ name: 'account-id' });
74
+ // switch/set and destructive account aliases accept an optional id: absent +
75
+ // interactive → account selector; automation receives a curated missing-id error.
76
+ const accountIdOptionalArg = Args.text({ name: 'account-id' }).pipe(Args.optional);
74
77
  /**
75
- * Build the single block string the legacy `renderRows` emits (same padding /
76
- * markers), so the native path produces byte-identical human output through the
77
- * Reporter service's `block`. Empty input yields `undefined` (no block).
78
+ * Railed rows for a set of accounts: id as the cyan key, display name at full
79
+ * brightness, portal/source provenance on the dim detail tail. The default
80
+ * account carries the green ok glyph plus a `default` marker in its detail —
81
+ * the railed replacement for the old all-dim `block()` table (same facts:
82
+ * id, portal, name, source, default marker).
78
83
  */
79
- function renderRowsBlock(rows) {
80
- if (rows.length === 0)
81
- return undefined;
82
- const widestId = Math.max(...rows.map((r) => r.id.length));
83
- const widestName = Math.max(...rows.map((r) => r.displayName.length));
84
- const lines = [];
85
- for (const row of rows) {
86
- const marker = row.isDefault ? '' : ' ';
87
- const id = row.id.padEnd(widestId);
88
- const name = row.displayName.padEnd(widestName);
89
- const portal = String(row.hubspotDeveloperAccountId ?? '—').padEnd(10);
90
- const suffix = row.isDefault ? ' (default)' : '';
91
- lines.push(`${marker} ${id} ${portal} ${name} [${row.source}]${suffix}`);
92
- }
93
- return lines.join('\n');
84
+ function accountRows(rows) {
85
+ return rows.map((row) => {
86
+ const portal = row.hubspotDeveloperAccountId !== undefined
87
+ ? `portal ${row.hubspotDeveloperAccountId}`
88
+ : 'no portal';
89
+ const detail = [portal, row.source, ...(row.isDefault ? ['default'] : [])].join(' · ');
90
+ return {
91
+ ...(row.isDefault ? { status: 'ok' } : {}),
92
+ key: row.id,
93
+ value: row.displayName,
94
+ detail,
95
+ };
96
+ });
94
97
  }
95
98
  function currentBody(commandName, json) {
96
99
  return Effect.gen(function* () {
97
100
  const accounts = yield* AccountStore;
98
101
  const reporter = yield* Reporter;
99
102
  const store = yield* accounts.load;
100
- const current = store.defaultAccountId
101
- ? store.accounts[store.defaultAccountId]
102
- : undefined;
103
+ const current = store.defaultAccountId ? store.accounts[store.defaultAccountId] : undefined;
103
104
  if (json) {
104
105
  // raw write — bespoke `{schema_version, command, ok, data:{account}}` shape
105
106
  yield* reporter.raw(`${JSON.stringify({
@@ -112,13 +113,49 @@ function currentBody(commandName, json) {
112
113
  }
113
114
  if (!current) {
114
115
  yield* reporter.header();
115
- yield* reporter.info('No default HS-X account.');
116
- yield* reporter.info('Run `hs-x accounts list`, then `hs-x accounts switch <id>`.');
116
+ // With zero accounts the old hint was a dead end: `accounts list` shows
117
+ // nothing and `accounts switch` has no id to take (cold-stranger G4).
118
+ // Branch on whether any account exists at all.
119
+ const store = yield* Effect.promise(() => loadStore());
120
+ if (Object.keys(store.accounts).length === 0) {
121
+ yield* reporter.info('No HS-X account — and you do not need one.');
122
+ yield* reporter.info('Deploys run unlinked with your HubSpot + Cloudflare tokens. Run `hs-x login` only if you want the dashboard, deploy history, or team features.');
123
+ }
124
+ else {
125
+ yield* reporter.info('No default HS-X account.');
126
+ yield* reporter.info('Run `hs-x accounts list`, then `hs-x accounts switch <id>`.');
127
+ }
117
128
  yield* reporter.done();
118
129
  return;
119
130
  }
131
+ // Railed account facts: id / name / portal / source, plus the session
132
+ // identity (who `hs-x login` signed in as) so `whoami` answers the actual
133
+ // question. The account row carries the ok glyph as the default marker.
120
134
  yield* reporter.header(current.id);
121
- yield* reporter.block(`${current.id} ${current.hubspotPortalId} ${current.displayName}`);
135
+ const session = current.session;
136
+ yield* reporter.rows([
137
+ { status: 'ok', key: 'account', value: current.id, detail: 'default' },
138
+ { key: 'name', value: current.displayName },
139
+ {
140
+ key: 'portal',
141
+ value: current.hubspotPortalId !== undefined ? String(current.hubspotPortalId) : '—',
142
+ ...(current.hubspotPortalId === undefined
143
+ ? { hint: 'Bind a HubSpot portal with `hs-x connect`.' }
144
+ : {}),
145
+ },
146
+ { key: 'source', value: current.source },
147
+ session
148
+ ? {
149
+ key: 'session',
150
+ value: session.email || session.userId,
151
+ detail: `expires ${session.expiresAt.slice(0, 10)}`,
152
+ }
153
+ : {
154
+ key: 'session',
155
+ value: 'not signed in',
156
+ hint: 'Run `hs-x login` to authenticate control-plane calls.',
157
+ },
158
+ ]);
122
159
  yield* reporter.done('current');
123
160
  });
124
161
  }
@@ -150,9 +187,7 @@ function listBody(commandName, json, cwdOverride = Option.none()) {
150
187
  return;
151
188
  }
152
189
  yield* reporter.header(`${rows.length} account${rows.length === 1 ? '' : 's'}`);
153
- const block = renderRowsBlock(rows);
154
- if (block !== undefined)
155
- yield* reporter.block(block);
190
+ yield* reporter.rows(accountRows(rows));
156
191
  if (rows.length > 1) {
157
192
  yield* reporter.info('Switch the default with `hs-x accounts switch <id>`.');
158
193
  }
@@ -168,9 +203,7 @@ function listBody(commandName, json, cwdOverride = Option.none()) {
168
203
  return;
169
204
  }
170
205
  yield* reporter.header(`${remote.length} account${remote.length === 1 ? '' : 's'}`);
171
- const block = renderRowsBlock(remote);
172
- if (block !== undefined)
173
- yield* reporter.block(block);
206
+ yield* reporter.rows(accountRows(remote));
174
207
  yield* reporter.done();
175
208
  return;
176
209
  }
@@ -190,9 +223,7 @@ function listBody(commandName, json, cwdOverride = Option.none()) {
190
223
  }
191
224
  yield* reporter.header('importable');
192
225
  yield* reporter.info('No HS-X accounts connected yet, but found HubSpot CLI accounts you could connect:');
193
- const block = renderRowsBlock(rows);
194
- if (block !== undefined)
195
- yield* reporter.block(block);
226
+ yield* reporter.rows(accountRows(rows));
196
227
  yield* reporter.info('Run `hs-x connect` to bind one to an HS-X account.');
197
228
  yield* reporter.done();
198
229
  return;
@@ -211,9 +242,47 @@ function switchBody(commandName, target, json) {
211
242
  return Effect.gen(function* () {
212
243
  const accounts = yield* AccountStore;
213
244
  const reporter = yield* Reporter;
214
- const next = yield* accounts.setDefault(target).pipe(Effect.catchTag('CliError', (error) => Effect.gen(function* () {
245
+ // Resolve the account to switch to: the positional arg, else an interactive
246
+ // selector over stored accounts. `--json` / non-TTY skip the prompt
247
+ // (promptSelect returns undefined off a TTY) and fall through to a clear
248
+ // missing-argument error instead of a raw @effect/cli one.
249
+ const store = yield* accounts.load;
250
+ let resolved = Option.getOrUndefined(target);
251
+ if (!resolved && !json) {
252
+ const ids = Object.keys(store.accounts);
253
+ if (ids.length > 0) {
254
+ resolved = yield* Effect.promise(() => promptSelect({
255
+ message: 'Which HS-X account should be the default?',
256
+ ...(store.defaultAccountId ? { default: store.defaultAccountId } : {}),
257
+ options: ids.map((id) => {
258
+ const account = store.accounts[id];
259
+ const portal = account?.hubspotPortalId ? ` — portal ${account.hubspotPortalId}` : '';
260
+ const current = id === store.defaultAccountId ? ' (current)' : '';
261
+ return {
262
+ value: id,
263
+ label: id,
264
+ description: account ? `${account.displayName}${portal}${current}` : '',
265
+ };
266
+ }),
267
+ }));
268
+ }
269
+ }
270
+ if (!resolved) {
271
+ const code = 'HSX_E_INPUT_MISSING_ACCOUNT_ID';
272
+ const message = 'Missing account id.';
273
+ const hint = 'Pass an account id (`hs-x accounts switch <id>`) or list them with `hs-x accounts list`.';
274
+ if (json) {
275
+ yield* reporter.raw(jsonErrorLine(commandName, code, message, hint));
276
+ }
277
+ else {
278
+ yield* reporter.error(code, message, { hint, docs_url: `https://hs-x.dev/errors/${code}` });
279
+ yield* reporter.done(undefined, 10);
280
+ }
281
+ return yield* Effect.fail(cliError(code, message, { silent: true, exitCode: 10 }));
282
+ }
283
+ const next = yield* accounts.setDefault(resolved).pipe(Effect.catchTag('CliError', (error) => Effect.gen(function* () {
215
284
  if (error.code === 'HSX_E_ACCOUNT_NOT_FOUND') {
216
- const message = `No HS-X account with id ${target}.`;
285
+ const message = `No HS-X account with id ${resolved}.`;
217
286
  const hint = 'List connected accounts with `hs-x accounts list`.';
218
287
  if (json) {
219
288
  yield* reporter.raw(jsonErrorLine(commandName, error.code, message, hint));
@@ -238,45 +307,126 @@ function switchBody(commandName, target, json) {
238
307
  })}\n`);
239
308
  return;
240
309
  }
241
- yield* reporter.header(target);
242
- const step = yield* reporter.step(`Default account is now ${target}`);
310
+ yield* reporter.header(resolved);
311
+ const step = yield* reporter.step(`Default account is now ${resolved}`);
243
312
  yield* step.ok();
244
313
  yield* reporter.done();
245
314
  });
246
315
  }
247
- function logoutBody(commandName, target, json) {
316
+ const liveAccountRemovalPrompts = {
317
+ isInteractive,
318
+ select: promptSelect,
319
+ confirm: promptConfirm,
320
+ };
321
+ function removalPickerOptions(store) {
322
+ return Object.keys(store.accounts).map((id) => {
323
+ const account = store.accounts[id];
324
+ const portal = account?.hubspotPortalId ? `portal ${account.hubspotPortalId}` : 'no portal';
325
+ const current = id === store.defaultAccountId ? ' · current default' : '';
326
+ return {
327
+ value: id,
328
+ label: account ? `${account.displayName} (${id})` : id,
329
+ description: `${portal}${current}`,
330
+ };
331
+ });
332
+ }
333
+ export function accountRemovalPreview(store, target) {
334
+ const account = store.accounts[target];
335
+ if (!account)
336
+ return '';
337
+ const remainingIds = Object.keys(store.accounts).filter((id) => id !== target);
338
+ const defaultChange = store.defaultAccountId === target
339
+ ? remainingIds[0]
340
+ ? `${target} → ${remainingIds[0]}`
341
+ : `${target} → none (no accounts remain)`
342
+ : `unchanged (${store.defaultAccountId ?? 'none'})`;
343
+ return [
344
+ 'Local account removal preview',
345
+ `Account: ${account.displayName} (${target})`,
346
+ `Current default: ${store.defaultAccountId === target ? 'yes' : 'no'}`,
347
+ `Stored bearer token/session: ${account.session ? 'removed' : 'none stored'}`,
348
+ `Default account: ${defaultChange}`,
349
+ 'Local HS-X account record: removed',
350
+ 'Remote account and projects: unchanged',
351
+ 'Checkout .hs-x bindings: unchanged',
352
+ ].join('\n');
353
+ }
354
+ function accountRemovalError(reporter, commandName, json, code, message, hint) {
355
+ return Effect.gen(function* () {
356
+ if (json) {
357
+ yield* reporter.raw(jsonErrorLine(commandName, code, message, hint));
358
+ }
359
+ else {
360
+ yield* reporter.error(code, message, {
361
+ hint,
362
+ docs_url: `https://hs-x.dev/errors/${code}`,
363
+ });
364
+ yield* reporter.done(undefined, 10);
365
+ }
366
+ return yield* Effect.fail(cliError(code, message, { silent: true, exitCode: 10 }));
367
+ });
368
+ }
369
+ export function removeAccountBody(commandName, target, json, yes, prompts = liveAccountRemovalPrompts) {
248
370
  return Effect.gen(function* () {
249
371
  const accounts = yield* AccountStore;
250
372
  const reporter = yield* Reporter;
251
- const next = yield* accounts.removeAccount(target).pipe(Effect.catchTag('CliError', (error) => Effect.gen(function* () {
252
- if (error.code === 'HSX_E_ACCOUNT_NOT_FOUND') {
253
- const message = `No HS-X account with id ${target}.`;
254
- const hint = 'List connected accounts with `hs-x accounts list`.';
255
- if (json) {
256
- yield* reporter.raw(jsonErrorLine(commandName, error.code, message, hint));
257
- }
258
- else {
259
- yield* reporter.error(error.code, message, {
260
- hint,
261
- docs_url: `https://hs-x.dev/errors/${error.code}`,
262
- });
263
- yield* reporter.done(undefined, 10);
264
- }
265
- return yield* Effect.fail(cliError(error.code, message, { silent: true, exitCode: 10 }));
373
+ const store = yield* accounts.load;
374
+ const machineOutput = json || reporter.mode === 'ndjson';
375
+ const canPrompt = !machineOutput && prompts.isInteractive();
376
+ let resolved = Option.getOrUndefined(target);
377
+ let pickerOpened = false;
378
+ if (!resolved && canPrompt) {
379
+ const options = removalPickerOptions(store);
380
+ if (options.length > 0) {
381
+ pickerOpened = true;
382
+ resolved = yield* Effect.promise(() => prompts.select({
383
+ message: 'Which local HS-X account should be removed?',
384
+ options,
385
+ }));
266
386
  }
267
- return yield* Effect.fail(error);
268
- })));
387
+ }
388
+ if (!resolved) {
389
+ if (pickerOpened) {
390
+ yield* reporter.info('Cancelled.');
391
+ return yield* Effect.fail(cliError('HSX_E_INTERNAL', 'cancelled', { silent: true, exitCode: 130 }));
392
+ }
393
+ return yield* accountRemovalError(reporter, commandName, json, 'HSX_E_INPUT_MISSING_ACCOUNT_ID', 'Missing account id.', 'Pass an account id (for example, `hs-x accounts remove <id> --yes`) or list them with `hs-x accounts list`.');
394
+ }
395
+ const account = store.accounts[resolved];
396
+ if (!account) {
397
+ return yield* accountRemovalError(reporter, commandName, json, 'HSX_E_ACCOUNT_NOT_FOUND', `No HS-X account with id ${resolved}.`, 'List connected accounts with `hs-x accounts list`.');
398
+ }
399
+ if (!machineOutput)
400
+ yield* reporter.block(accountRemovalPreview(store, resolved));
401
+ if (!yes) {
402
+ if (!canPrompt) {
403
+ return yield* accountRemovalError(reporter, commandName, json, 'HSX_E_INPUT_INVALID', 'Removing a local account requires explicit consent in machine or non-interactive mode.', 'Re-run with an explicit account id and `--yes`.');
404
+ }
405
+ const confirmed = yield* Effect.promise(() => prompts.confirm({
406
+ message: `Remove ${account.displayName} (${resolved}) from the local account store?`,
407
+ default: false,
408
+ }));
409
+ if (confirmed !== true) {
410
+ yield* reporter.info('Cancelled.');
411
+ return yield* Effect.fail(cliError('HSX_E_INTERNAL', 'cancelled', { silent: true, exitCode: 130 }));
412
+ }
413
+ }
414
+ const next = yield* accounts
415
+ .removeAccount(resolved)
416
+ .pipe(Effect.catchTag('CliError', (error) => error.code === 'HSX_E_ACCOUNT_NOT_FOUND'
417
+ ? accountRemovalError(reporter, commandName, json, error.code, `No HS-X account with id ${resolved}.`, 'List connected accounts with `hs-x accounts list`.')
418
+ : Effect.fail(error)));
269
419
  if (json) {
270
420
  yield* reporter.raw(`${JSON.stringify({
271
421
  schema_version: 1,
272
422
  command: commandName,
273
423
  ok: true,
274
- data: { removed: target, defaultAccountId: next.defaultAccountId ?? null },
424
+ data: { removed: resolved, defaultAccountId: next.defaultAccountId ?? null },
275
425
  })}\n`);
276
426
  return;
277
427
  }
278
- yield* reporter.header(target);
279
- const step = yield* reporter.step(`Removed ${target} from HS-X account store`);
428
+ yield* reporter.header(resolved);
429
+ const step = yield* reporter.step(`Removed ${resolved} from HS-X account store`);
280
430
  yield* step.ok();
281
431
  if (next.defaultAccountId)
282
432
  yield* reporter.info(`New default: ${next.defaultAccountId}`);
@@ -294,12 +444,12 @@ function listBodyResolved(commandName, opts) {
294
444
  }
295
445
  const accountCurrentCmd = Command.make('current', { json: jsonOption }, (opts) => runHandler('accounts current', { json: opts.json }, currentBody('accounts current', opts.json)));
296
446
  const whoamiCmd = Command.make('whoami', { json: jsonOption }, (opts) => runHandler('whoami', { json: opts.json }, currentBody('whoami', opts.json)));
297
- const accountSwitchCmd = Command.make('switch', { 'account-id': accountIdArg, json: jsonOption }, (opts) => runHandler('accounts switch', { json: opts.json }, switchBody('accounts switch', opts['account-id'], opts.json)));
298
- const accountSetCmd = Command.make('set', { 'account-id': accountIdArg, json: jsonOption }, (opts) => runHandler('account set', { json: opts.json }, switchBody('account set', opts['account-id'], opts.json)));
299
- const accountLogoutCmd = Command.make('logout', { 'account-id': accountIdArg, json: jsonOption }, (opts) => runHandler('account logout', { json: opts.json }, logoutBody('account logout', opts['account-id'], opts.json)));
300
- const accountRemoveCmd = Command.make('remove', { 'account-id': accountIdArg, json: jsonOption }, (opts) => runHandler('account logout', { json: opts.json }, logoutBody('account logout', opts['account-id'], opts.json)));
301
- const accountsLogoutCmd = Command.make('logout', { 'account-id': accountIdArg, json: jsonOption }, (opts) => runHandler('accounts logout', { json: opts.json }, logoutBody('accounts logout', opts['account-id'], opts.json)));
302
- const accountsRemoveCmd = Command.make('remove', { 'account-id': accountIdArg, json: jsonOption }, (opts) => runHandler('accounts logout', { json: opts.json }, logoutBody('accounts logout', opts['account-id'], opts.json)));
447
+ const accountSwitchCmd = Command.make('switch', { 'account-id': accountIdOptionalArg, json: jsonOption }, (opts) => runHandler('accounts switch', { json: opts.json }, switchBody('accounts switch', opts['account-id'], opts.json)));
448
+ const accountSetCmd = Command.make('set', { 'account-id': accountIdOptionalArg, json: jsonOption }, (opts) => runHandler('account set', { json: opts.json }, switchBody('account set', opts['account-id'], opts.json)));
449
+ const accountLogoutCmd = Command.make('logout', { 'account-id': accountIdOptionalArg, json: jsonOption, yes: yesOption }, (opts) => runHandler('account logout', { json: opts.json }, removeAccountBody('account logout', opts['account-id'], opts.json, opts.yes)));
450
+ const accountRemoveCmd = Command.make('remove', { 'account-id': accountIdOptionalArg, json: jsonOption, yes: yesOption }, (opts) => runHandler('account logout', { json: opts.json }, removeAccountBody('account logout', opts['account-id'], opts.json, opts.yes)));
451
+ const accountsLogoutCmd = Command.make('logout', { 'account-id': accountIdOptionalArg, json: jsonOption, yes: yesOption }, (opts) => runHandler('accounts logout', { json: opts.json }, removeAccountBody('accounts logout', opts['account-id'], opts.json, opts.yes)));
452
+ const accountsRemoveCmd = Command.make('remove', { 'account-id': accountIdOptionalArg, json: jsonOption, yes: yesOption }, (opts) => runHandler('accounts logout', { json: opts.json }, removeAccountBody('accounts logout', opts['account-id'], opts.json, opts.yes)));
303
453
  export const accountCmd = Command.make('account').pipe(Command.withSubcommands([
304
454
  accountListCmd,
305
455
  accountLsCmd,
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/commands/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/commands/account.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ interface ParseError {
38
38
  }
39
39
  export declare function parseApiArgs(args: readonly string[]): ParsedArgs | ParseError;
40
40
  export declare function apiHelpText(): string;
41
- export declare const apiCmd: Command.Command<"api", ControlPlaneClient | CliHttp | Cwd, CliError, {
41
+ export declare const apiCmd: Command.Command<"api", Cwd | CliHttp | ControlPlaneClient, CliError, {
42
42
  readonly path: Option.Option<string>;
43
43
  readonly fields: string[];
44
44
  readonly json: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAY,MAAM,iBAAiB,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAmB9C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAgJ3E;AAoED,UAAU,UAAU;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChC;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,CAiI7E;AAqJD,wBAAgB,WAAW,IAAI,MAAM,CA+CpC;AA8ND,eAAO,MAAM,MAAM;;;;;;;;;EAgB6B,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/commands/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAY,MAAM,iBAAiB,CAAC;AAMrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAmB9C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAgJ3E;AA+DD,UAAU,UAAU;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChC;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,CAiI7E;AAqJD,wBAAgB,WAAW,IAAI,MAAM,CA+CpC;AAsOD,eAAO,MAAM,MAAM;;;;;;;;;EAgB6B,CAAC"}
@@ -4,10 +4,11 @@ import { HttpClientRequest } from '@hs-x/types';
4
4
  import { Config, Effect, Option } from 'effect';
5
5
  import { CliError, cliError } from '../cli-error.js';
6
6
  import { jsonOption, runHandler } from '../cli/kit.js';
7
+ import { DEFAULT_CONTROL_PLANE_URL } from '../config.js';
8
+ import { discoverHubSpotPak } from '../hubspot-auth.js';
7
9
  import { createReporter } from '../reporter/index.js';
8
10
  import { ControlPlaneClient } from '../services/control-plane.js';
9
11
  import { Cwd } from '../services/cwd.js';
10
- import { discoverHubSpotPak } from '../hubspot-auth.js';
11
12
  import { CliHttp } from '../services/http.js';
12
13
  import { Reporter as ReporterSvc } from '../services/reporter.js';
13
14
  const HUBSPOT_BASE_URL = 'https://api.hubapi.com';
@@ -173,18 +174,13 @@ function resolveTarget(target, parsed, env) {
173
174
  },
174
175
  };
175
176
  }
177
+ // The control plane URL is a platform-managed constant (see config.ts): every
178
+ // other command defaults to it, so `hs-x api` does too instead of erroring —
179
+ // a --base-url flag or HSX_CONTROL_PLANE_URL still overrides for local testing.
176
180
  const controlPlaneUrl = parsed.flags.baseUrl ??
177
181
  (env.HSX_CONTROL_PLANE_URL && env.HSX_CONTROL_PLANE_URL.length > 0
178
182
  ? env.HSX_CONTROL_PLANE_URL
179
- : undefined);
180
- if (!controlPlaneUrl) {
181
- return {
182
- kind: 'error',
183
- code: 'HSX_E_API_NO_CONTROL_PLANE',
184
- message: 'No HS-X control plane URL configured.',
185
- hint: 'Pass --base-url <url>, set HSX_CONTROL_PLANE_URL, or use `hs-x api hubspot <path>` to call HubSpot instead.',
186
- };
187
- }
183
+ : DEFAULT_CONTROL_PLANE_URL);
188
184
  const userId = env.HSX_USER_ID ?? 'local-cli-user';
189
185
  const accountId = env.HSX_ACCOUNT_ID;
190
186
  return {