@hs-x/cli 0.2.1 → 0.2.3

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 (65) hide show
  1. package/dist/account-store.d.ts.map +1 -1
  2. package/dist/account-store.js +9 -1
  3. package/dist/account-store.js.map +1 -1
  4. package/dist/cli/index.d.ts.map +1 -1
  5. package/dist/cli/index.js +5 -3
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cloudflare-oauth.d.ts.map +1 -1
  8. package/dist/cloudflare-oauth.js +1 -1
  9. package/dist/cloudflare-oauth.js.map +1 -1
  10. package/dist/commands/account.d.ts.map +1 -1
  11. package/dist/commands/account.js +3 -0
  12. package/dist/commands/account.js.map +1 -1
  13. package/dist/commands/connect.d.ts.map +1 -1
  14. package/dist/commands/connect.js +67 -3
  15. package/dist/commands/connect.js.map +1 -1
  16. package/dist/commands/deploy.d.ts +4 -0
  17. package/dist/commands/deploy.d.ts.map +1 -1
  18. package/dist/commands/deploy.js +153 -5
  19. package/dist/commands/deploy.js.map +1 -1
  20. package/dist/commands/dev.d.ts +2 -0
  21. package/dist/commands/dev.d.ts.map +1 -1
  22. package/dist/commands/dev.js +150 -2
  23. package/dist/commands/dev.js.map +1 -1
  24. package/dist/commands/help-command.d.ts.map +1 -1
  25. package/dist/commands/help-command.js +11 -4
  26. package/dist/commands/help-command.js.map +1 -1
  27. package/dist/commands/init.d.ts +2 -0
  28. package/dist/commands/init.d.ts.map +1 -1
  29. package/dist/commands/init.js +46 -2
  30. package/dist/commands/init.js.map +1 -1
  31. package/dist/commands/link.d.ts +15 -0
  32. package/dist/commands/link.d.ts.map +1 -1
  33. package/dist/commands/link.js +224 -11
  34. package/dist/commands/link.js.map +1 -1
  35. package/dist/commands/migrate.d.ts +6 -0
  36. package/dist/commands/migrate.d.ts.map +1 -1
  37. package/dist/commands/migrate.js +242 -1
  38. package/dist/commands/migrate.js.map +1 -1
  39. package/dist/commands/update.d.ts +3 -1
  40. package/dist/commands/update.d.ts.map +1 -1
  41. package/dist/commands/update.js +103 -25
  42. package/dist/commands/update.js.map +1 -1
  43. package/dist/constants.d.ts +1 -1
  44. package/dist/constants.js +1 -1
  45. package/dist/dev/invoke.d.ts +32 -0
  46. package/dist/dev/invoke.d.ts.map +1 -1
  47. package/dist/dev/invoke.js +73 -1
  48. package/dist/dev/invoke.js.map +1 -1
  49. package/dist/errors-registry.d.ts.map +1 -1
  50. package/dist/errors-registry.js +73 -0
  51. package/dist/errors-registry.js.map +1 -1
  52. package/dist/reporter/human.d.ts.map +1 -1
  53. package/dist/reporter/human.js +2 -1
  54. package/dist/reporter/human.js.map +1 -1
  55. package/dist/reporter/index.d.ts +2 -0
  56. package/dist/reporter/index.d.ts.map +1 -1
  57. package/dist/reporter/index.js +1 -0
  58. package/dist/reporter/index.js.map +1 -1
  59. package/dist/reporter/types.d.ts +7 -0
  60. package/dist/reporter/types.d.ts.map +1 -1
  61. package/dist/reporter/types.js.map +1 -1
  62. package/dist/tenant-state.d.ts.map +1 -1
  63. package/dist/tenant-state.js +63 -10
  64. package/dist/tenant-state.js.map +1 -1
  65. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAsB,MAAM,iBAAiB,CAAC;AAWpE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAmiBzC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;EAAsB,CAAC;AAC3C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;EAAwB,CAAC;AAE/C,wBAAgB,YAAY,IAAI,MAAM,CAoBrC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAsB,MAAM,iBAAiB,CAAC;AAWpE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAqjBzC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;EAAsB,CAAC;AAC3C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;EAAwB,CAAC;AAE/C,wBAAgB,YAAY,IAAI,MAAM,CAoBrC"}
@@ -99,6 +99,7 @@ const uiExtensionOption = Options.boolean('ui-extension').pipe(Options.withDefau
99
99
  const noUiExtensionOption = Options.boolean('no-ui-extension').pipe(Options.withDefault(false));
100
100
  const yesOption = Options.boolean('yes').pipe(Options.withAlias('y'), Options.withDefault(false));
101
101
  const noInstallOption = Options.boolean('no-install').pipe(Options.withDefault(false));
102
+ const noLinkOption = Options.boolean('no-link').pipe(Options.withDefault(false));
102
103
  const forceOption = Options.boolean('force').pipe(Options.withDefault(false));
103
104
  /** Emit a cancelled result (interactive prompt aborted). */
104
105
  function cancelled() {
@@ -434,6 +435,14 @@ function initBody(opts) {
434
435
  if (installed)
435
436
  yield* installStep.ok();
436
437
  }
438
+ // Default-link (owner directive 2026-06-10): a logged-in init registers
439
+ // the CP project and writes the local binding, so the project exists in
440
+ // the dashboard immediately and the FIRST deploy takes the linked path.
441
+ // --no-link opts out; no session degrades silently to unlinked.
442
+ let linked;
443
+ if (!opts.noLink) {
444
+ linked = yield* Effect.promise(() => autoLinkInitProject(root));
445
+ }
437
446
  const result = {
438
447
  ok: true,
439
448
  command: 'init',
@@ -446,6 +455,7 @@ function initBody(opts) {
446
455
  auth,
447
456
  uiExtension,
448
457
  installed: shouldInstall,
458
+ ...(linked ? { linked } : {}),
449
459
  },
450
460
  };
451
461
  if (json) {
@@ -453,11 +463,16 @@ function initBody(opts) {
453
463
  return;
454
464
  }
455
465
  yield* reporter.info('');
466
+ if (linked) {
467
+ yield* reporter.info(`Linked: ${linked.projectId} → ${linked.accountId} (app.hs-x.dev)`);
468
+ }
456
469
  yield* reporter.info('Next steps:');
457
470
  yield* reporter.info(` cd ${name}`);
458
471
  if (!shouldInstall)
459
- yield* reporter.info(' bun install');
460
- yield* reporter.info(' hs-x dev');
472
+ yield* reporter.info(' bun install install dependencies');
473
+ yield* reporter.info(' hs-x check validate the project');
474
+ yield* reporter.info(' hs-x dev run it locally');
475
+ yield* reporter.info(' hs-x deploy ship it');
461
476
  yield* reporter.done('Created');
462
477
  });
463
478
  }
@@ -475,6 +490,7 @@ function makeInitCmd(commandName) {
475
490
  noUiExtension: noUiExtensionOption,
476
491
  yes: yesOption,
477
492
  noInstall: noInstallOption,
493
+ noLink: noLinkOption,
478
494
  force: forceOption,
479
495
  json: jsonOption,
480
496
  cwd: cwdOption,
@@ -508,4 +524,32 @@ Options:
508
524
  --json Emit JSON result
509
525
  `;
510
526
  }
527
+ /**
528
+ * Default-link a fresh scaffold: when a session is active, register the CP
529
+ * project under the session's account and write .hs-x/project.json. Best
530
+ * effort by design — init must never fail because the platform is
531
+ * unreachable; an unlinked scaffold links later via `hs-x link`.
532
+ */
533
+ async function autoLinkInitProject(root) {
534
+ try {
535
+ const { loadStore, activeSession } = await import('../account-store.js');
536
+ const store = await loadStore();
537
+ const session = activeSession(store);
538
+ const accountId = session?.accountId ?? store.defaultAccountId;
539
+ if (!session || !accountId)
540
+ return undefined;
541
+ const { ensureCpProject } = await import('./link.js');
542
+ const project = await ensureCpProject({ argv: [], root, accountId });
543
+ if (project.warning)
544
+ return undefined;
545
+ const { mkdir, writeFile } = await import('node:fs/promises');
546
+ const { join } = await import('node:path');
547
+ await mkdir(join(root, '.hs-x'), { recursive: true });
548
+ await writeFile(join(root, '.hs-x', 'project.json'), `${JSON.stringify({ accountId, projectId: project.projectId }, null, 2)}\n`);
549
+ return { accountId, projectId: project.projectId };
550
+ }
551
+ catch {
552
+ return undefined;
553
+ }
554
+ }
511
555
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,19 @@ export declare const linkCmd: Command.Command<"link", Cwd | CloudflareAuth | Clo
13
13
  readonly accountId: Option.Option<string>;
14
14
  readonly yes: boolean;
15
15
  }>;
16
+ /**
17
+ * Register the local project under the claimed account so it appears in the
18
+ * dashboard immediately (owner directive: it should be hard for a project to
19
+ * stay unlinked). Idempotent — an existing project is left untouched. The
20
+ * project id comes from the local artifact identity (manifest/hsx.config
21
+ * name); failures degrade to a warning, never a failed link.
22
+ */
23
+ export declare function ensureCpProject(input: {
24
+ readonly argv: readonly string[];
25
+ readonly root: string;
26
+ readonly accountId: string;
27
+ }): Promise<{
28
+ readonly projectId: string;
29
+ readonly warning?: string;
30
+ }>;
16
31
  //# sourceMappingURL=link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAY,MAAM,iBAAiB,CAAC;AAkBrD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAA2B,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiBtD,eAAO,MAAM,OAAO;;;;;EAInB,CAAC"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAY,MAAM,iBAAiB,CAAC;AAkBrD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAA2B,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiBtD,eAAO,MAAM,OAAO;;;;;EAInB,CAAC;AAudF;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCrE"}
@@ -1,3 +1,5 @@
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
+ import { basename, join } from 'node:path';
1
3
  import * as Command from '@effect/cli/Command';
2
4
  import { HttpClientRequest, Schema, schemas } from '@hs-x/types';
3
5
  import { Config, Effect, Option } from 'effect';
@@ -52,13 +54,65 @@ function linkBody(opts) {
52
54
  const accountIdEnv = yield* Config.string('HSX_ACCOUNT_ID').pipe(Config.withDefault(''), Effect.orDie);
53
55
  const accountId = Option.getOrUndefined(opts.accountId) ?? (accountIdEnv || undefined);
54
56
  // The project must have a `.hs-x/cloudflare.json` pointer to operate on.
55
- const pointer = yield* cloudflare.loadPointer(projectRoot);
57
+ let pointer = yield* cloudflare.loadPointer(projectRoot);
56
58
  if (!pointer) {
57
- return yield* linkError(opts.json, reporter, {
58
- code: 'HSX_E_LINK_NO_POINTER',
59
- message: '`.hs-x/cloudflare.json` not found in this project.',
60
- hint: 'Deploy the project at least once before linking. `hs-x deploy` provisions the pointer on first run.',
59
+ // Fresh project (no deploy yet): there is no local history to claim, so
60
+ // link provisions the tenant state store and binds the pointer straight
61
+ // to the session's account killing the deploy-before-link ordering.
62
+ const memberships = yield* Effect.promise(() => listSessionAccounts(opts.json ? ['--json'] : []));
63
+ const sessionAccountId = memberships?.[0];
64
+ const freshAccountId = accountId ?? sessionAccountId;
65
+ // Fresh provisioning requires an authenticated session — without one
66
+ // there is nothing to register against, so keep the classic pointer
67
+ // error (memberships === undefined means no session).
68
+ if (memberships === undefined || !freshAccountId || !memberships.includes(freshAccountId)) {
69
+ return yield* linkError(opts.json, reporter, {
70
+ code: 'HSX_E_LINK_NO_POINTER',
71
+ message: '`.hs-x/cloudflare.json` not found and no linked account to provision for.',
72
+ hint: 'Log in (`hs-x login`) so link can provision fresh, or deploy once (`hs-x deploy`) and re-run.',
73
+ });
74
+ }
75
+ const provisioned = yield* Effect.tryPromise({
76
+ try: async () => {
77
+ const { ensureTenantStateStore } = await import('../tenant-state.js');
78
+ const { pointer: freshPointer } = await ensureTenantStateStore({
79
+ argv: ['link'],
80
+ root: projectRoot,
81
+ });
82
+ const targetOwner = freshAccountId.startsWith('acct_')
83
+ ? freshAccountId
84
+ : `acct_${freshAccountId}`;
85
+ if (freshPointer.ownerId !== targetOwner) {
86
+ await rewriteCloudflarePointerOwner({
87
+ root: projectRoot,
88
+ ownerId: targetOwner,
89
+ });
90
+ }
91
+ const project = await ensureCpProject({
92
+ argv: [],
93
+ root: projectRoot,
94
+ accountId: freshAccountId,
95
+ });
96
+ await writeFile(join(projectRoot, '.hs-x', 'project.json'), `${JSON.stringify({ accountId: freshAccountId, projectId: project.projectId }, null, 2)}\n`);
97
+ return { targetOwner, projectId: project.projectId };
98
+ },
99
+ catch: (cause) => cliError('HSX_E_LINK_REQUIRED', `Fresh-link provisioning failed: ${cause instanceof Error ? cause.message : String(cause)}`),
61
100
  });
101
+ if (opts.json) {
102
+ yield* writeJson(reporter, {
103
+ ok: true,
104
+ command: 'link',
105
+ mode: 'fresh',
106
+ accountId: freshAccountId,
107
+ projectId: provisioned.projectId,
108
+ ownerId: provisioned.targetOwner,
109
+ });
110
+ return;
111
+ }
112
+ yield* reporter.info(`Provisioned tenant state for ${freshAccountId} (owner ${provisioned.targetOwner}).`);
113
+ yield* reporter.info(`Project: ${provisioned.projectId} → dashboard.`);
114
+ yield* reporter.done('Linked');
115
+ return;
62
116
  }
63
117
  if (!accountId) {
64
118
  // Dashboard claim flow (browser handoff + poll) — stays on the legacy
@@ -72,6 +126,21 @@ function linkBody(opts) {
72
126
  }
73
127
  return;
74
128
  }
129
+ // Membership preflight: an explicit account (flag or HSX_ACCOUNT_ID env)
130
+ // must be one the logged-in user actually belongs to. Without this, a
131
+ // stale env var silently steers the claim at a foreign account and the
132
+ // user gets an opaque 404 from the control plane (hit live, run-008).
133
+ const memberships = yield* Effect.promise(() => listSessionAccounts(opts.json ? ['--json'] : []));
134
+ if (memberships !== undefined && !memberships.includes(accountId)) {
135
+ const fromFlag = Option.isSome(opts.accountId);
136
+ return yield* linkError(opts.json, reporter, {
137
+ code: 'HSX_E_LINK_NOT_MEMBER',
138
+ message: `Your session has no membership in account \`${accountId}\`${fromFlag ? '' : ' (from HSX_ACCOUNT_ID in the environment)'}.`,
139
+ hint: memberships.length > 0
140
+ ? `Accounts you belong to: ${memberships.join(', ')}. ${fromFlag ? 'Pass one of those with --account-id.' : 'Unset HSX_ACCOUNT_ID or pass --account-id.'} Running \`hs-x link\` with no account opens the dashboard claim flow.`
141
+ : 'Create an account in the dashboard first (app.hs-x.dev).',
142
+ });
143
+ }
75
144
  // Already linked under the target account — idempotent no-op.
76
145
  const targetOwnerId = accountId.startsWith('acct_') ? accountId : `acct_${accountId}`;
77
146
  if (pointer.ownerId === targetOwnerId) {
@@ -90,11 +159,13 @@ function linkBody(opts) {
90
159
  yield* reporter.done('No change');
91
160
  return;
92
161
  }
93
- // Only `local_*` owners can be claimed via link.
162
+ // Only `local_*` owners can be claimed via link. Name the owning account
163
+ // so a re-link says WHO holds the link instead of a generic refusal.
94
164
  if (!pointer.ownerId.startsWith('local_')) {
165
+ const owningAccountId = pointer.ownerId.replace(/^acct_/, '');
95
166
  return yield* linkError(opts.json, reporter, {
96
167
  code: 'HSX_E_LINK_NOT_CLAIMABLE',
97
- message: `Project owner ${pointer.ownerId} is already attached to a different HS-X account.`,
168
+ message: `This project is already linked to HS-X account \`${owningAccountId}\` (owner ${pointer.ownerId}), not \`${accountId}\`.`,
98
169
  hint: 'Unlink and reset the local pointer first (see `hs-x unlink`), or contact support to transfer ownership.',
99
170
  });
100
171
  }
@@ -293,6 +364,29 @@ function rewriteOwnerIdValue(value, from, to) {
293
364
  return value;
294
365
  }
295
366
  // ─── Dashboard claim flow (quarantined legacy path; used by `linkBody`) ──────
367
+ /**
368
+ * Account ids the active session belongs to, or undefined when there is no
369
+ * session / the lookup fails (preflight degrades to the old behavior rather
370
+ * than blocking offline use).
371
+ */
372
+ async function listSessionAccounts(argv) {
373
+ const store = await loadStore();
374
+ const sessionToken = activeSession(store)?.sessionToken;
375
+ if (!sessionToken)
376
+ return undefined;
377
+ try {
378
+ const response = await executeCliHttp(HttpClientRequest.get(new URL('/v1/users/me/accounts', resolveControlPlaneUrl(argv))).pipe(HttpClientRequest.setHeader('authorization', `Bearer ${sessionToken}`)));
379
+ if (!response.ok)
380
+ return undefined;
381
+ const body = (await response.json());
382
+ return (body.accounts ?? [])
383
+ .map((account) => account.accountId)
384
+ .filter((id) => typeof id === 'string');
385
+ }
386
+ catch {
387
+ return undefined;
388
+ }
389
+ }
296
390
  async function postLinkNotify(input) {
297
391
  const store = await loadStore();
298
392
  const sessionToken = activeSession(store)?.sessionToken;
@@ -313,17 +407,113 @@ async function postLinkNotify(input) {
313
407
  return error instanceof Error ? error.message : String(error);
314
408
  }
315
409
  }
410
+ /**
411
+ * Register the local project under the claimed account so it appears in the
412
+ * dashboard immediately (owner directive: it should be hard for a project to
413
+ * stay unlinked). Idempotent — an existing project is left untouched. The
414
+ * project id comes from the local artifact identity (manifest/hsx.config
415
+ * name); failures degrade to a warning, never a failed link.
416
+ */
417
+ export async function ensureCpProject(input) {
418
+ const projectName = await readLocalProjectName(input.root);
419
+ const projectId = projectName
420
+ .toLowerCase()
421
+ .replace(/[^a-z0-9-]+/g, '-')
422
+ .replace(/^-+|-+$/g, '')
423
+ .slice(0, 64);
424
+ const store = await loadStore();
425
+ const sessionToken = activeSession(store)?.sessionToken;
426
+ if (!sessionToken)
427
+ return { projectId, warning: 'no bearer session' };
428
+ const url = new URL(`/v1/accounts/${encodeURIComponent(input.accountId)}/projects`, resolveControlPlaneUrl(input.argv));
429
+ try {
430
+ const response = await executeCliHttp(HttpClientRequest.post(url).pipe(HttpClientRequest.setHeader('authorization', `Bearer ${sessionToken}`), HttpClientRequest.bodyText(JSON.stringify({ projectId, displayName: projectName }), 'application/json')));
431
+ // 409/conflict means the project already exists — that's success here.
432
+ if (!response.ok && response.status !== 409) {
433
+ const body = await response.text().catch(() => '');
434
+ return {
435
+ projectId,
436
+ warning: `project registration returned ${response.status}${body ? `: ${body.slice(0, 160)}` : ''}`,
437
+ };
438
+ }
439
+ return { projectId };
440
+ }
441
+ catch (error) {
442
+ return { projectId, warning: error instanceof Error ? error.message : String(error) };
443
+ }
444
+ }
445
+ async function readLocalProjectName(root) {
446
+ try {
447
+ const manifest = JSON.parse(await readFile(join(root, '.hs-x', 'manifest.json'), 'utf8'));
448
+ if (manifest.project?.name)
449
+ return manifest.project.name;
450
+ }
451
+ catch {
452
+ // fall through
453
+ }
454
+ try {
455
+ const raw = await readFile(join(root, 'hsx.config.ts'), 'utf8');
456
+ const match = /name\s*:\s*["'`]([^"'`]+)["'`]/.exec(raw);
457
+ if (match?.[1])
458
+ return match[1];
459
+ }
460
+ catch {
461
+ // fall through
462
+ }
463
+ return basename(root);
464
+ }
316
465
  async function linkViaDashboard(input) {
466
+ const reporter = createReporter({ command: 'link', argv: input.argv });
317
467
  if (!input.pointer.ownerId.startsWith('local_')) {
468
+ // Already claimed. If it's an account this session belongs to, link acts
469
+ // as a RECONCILER instead of erroring: ensure the CP project record and
470
+ // refresh .hs-x/project.json (both can lag when the claim happened
471
+ // before those legs existed, or on a fresh clone of a linked project).
472
+ const claimedAccountId = input.pointer.ownerId.replace(/^acct_/, '');
473
+ const memberships = await listSessionAccounts(input.argv);
474
+ if (memberships?.includes(claimedAccountId)) {
475
+ const project = await ensureCpProject({
476
+ argv: input.argv,
477
+ root: input.root,
478
+ accountId: claimedAccountId,
479
+ });
480
+ try {
481
+ await writeFile(join(input.root, '.hs-x', 'project.json'), `${JSON.stringify({ accountId: claimedAccountId, projectId: project.projectId }, null, 2)}\n`);
482
+ }
483
+ catch {
484
+ // advisory
485
+ }
486
+ if (input.json) {
487
+ process.stdout.write(`${JSON.stringify({
488
+ ok: true,
489
+ command: 'link',
490
+ mode: 'reconciled',
491
+ accountId: claimedAccountId,
492
+ projectId: project.projectId,
493
+ ownerId: input.pointer.ownerId,
494
+ ...(project.warning ? { projectWarning: project.warning } : {}),
495
+ }, null, 2)}\n`);
496
+ }
497
+ else {
498
+ reporter.info(`Already linked to ${claimedAccountId} (owner ${input.pointer.ownerId}).`);
499
+ if (project.warning) {
500
+ reporter.info(`Project registration: ${project.warning}`);
501
+ }
502
+ else {
503
+ reporter.info(`Project: ${project.projectId} → dashboard.`);
504
+ }
505
+ reporter.done('Reconciled');
506
+ }
507
+ return { exitCode: 0 };
508
+ }
318
509
  return errorResult({
319
510
  argv: input.argv,
320
511
  json: input.json,
321
512
  code: 'HSX_E_LINK_NOT_CLAIMABLE',
322
- message: `Project owner ${input.pointer.ownerId} is already attached to an HS-X account.`,
323
- hint: 'Unlink and reset the local pointer first (see `hs-x unlink`), or contact support to transfer ownership.',
513
+ message: `This project is already linked to HS-X account \`${claimedAccountId}\` (owner ${input.pointer.ownerId}), which your session does not belong to.`,
514
+ hint: 'Log in to that account (`hs-x login`) and re-run, or contact support to transfer ownership.',
324
515
  });
325
516
  }
326
- const reporter = createReporter({ command: 'link', argv: input.argv });
327
517
  const { apiToken } = resolveCloudflareCredentials(input.argv);
328
518
  if (!apiToken) {
329
519
  return errorResult({
@@ -351,7 +541,10 @@ async function linkViaDashboard(input) {
351
541
  reporter.info(`Machine: ${machineId}`);
352
542
  reporter.info(`Owners: ${pairing.pairing.ownerIds.join(', ')}`);
353
543
  reporter.info(`Open: ${dashboardUrl}`);
354
- await openInBrowser(dashboardUrl);
544
+ // CI / non-TTY: never spawn a browser — the URL above is the instruction;
545
+ // approval can happen from any logged-in browser while we poll.
546
+ if (isInteractive())
547
+ await openInBrowser(dashboardUrl);
355
548
  reporter.info('Waiting for dashboard approval...');
356
549
  }
357
550
  let approved;
@@ -415,16 +608,30 @@ async function linkViaDashboard(input) {
415
608
  accountId: approved.accountId,
416
609
  payload: notifyPayload,
417
610
  });
611
+ const project = await ensureCpProject({
612
+ argv: input.argv,
613
+ root: input.root,
614
+ accountId: approved.accountId,
615
+ });
616
+ // Refresh the local binding so later commands act on the claimed account.
617
+ try {
618
+ await writeFile(join(input.root, '.hs-x', 'project.json'), `${JSON.stringify({ accountId: approved.accountId, projectId: project.projectId }, null, 2)}\n`);
619
+ }
620
+ catch {
621
+ // advisory
622
+ }
418
623
  const result = {
419
624
  ok: true,
420
625
  command: 'link',
421
626
  mode: 'dashboard',
422
627
  accountId: approved.accountId,
628
+ projectId: project.projectId,
423
629
  priorOwnerIds: approvedOwnerIds,
424
630
  newOwnerId: targetOwnerId,
425
631
  rewrittenKeyCount,
426
632
  pairingId: approved.pairingId,
427
633
  ...(notifyError ? { notifyWarning: notifyError } : {}),
634
+ ...(project.warning ? { projectWarning: project.warning } : {}),
428
635
  };
429
636
  if (input.json) {
430
637
  process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
@@ -432,6 +639,12 @@ async function linkViaDashboard(input) {
432
639
  else {
433
640
  reporter.info(`Owner: ${approvedOwnerIds.join(', ')} → ${targetOwnerId}`);
434
641
  reporter.info(`Rewrote ${rewrittenKeyCount} tenant KV key${rewrittenKeyCount === 1 ? '' : 's'}.`);
642
+ if (project.warning) {
643
+ reporter.info(`Project registration: ${project.warning}`);
644
+ }
645
+ else {
646
+ reporter.info(`Project: ${project.projectId} → dashboard.`);
647
+ }
435
648
  reporter.done('Linked');
436
649
  }
437
650
  return { exitCode: 0 };