@legioncodeinc/hive 0.3.1 → 0.5.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 (87) hide show
  1. package/README.md +1 -1
  2. package/dist/daemon/dashboard/app.js +11 -11
  3. package/dist/daemon/gate.d.ts +10 -6
  4. package/dist/daemon/gate.js +20 -8
  5. package/dist/daemon/gate.js.map +1 -1
  6. package/dist/daemon/installer/config.d.ts +2 -0
  7. package/dist/daemon/installer/config.js +5 -3
  8. package/dist/daemon/installer/config.js.map +1 -1
  9. package/dist/daemon/installer/funnel-telemetry.d.ts +17 -2
  10. package/dist/daemon/installer/funnel-telemetry.js +34 -3
  11. package/dist/daemon/installer/funnel-telemetry.js.map +1 -1
  12. package/dist/daemon/installer/routes.js +6 -2
  13. package/dist/daemon/installer/routes.js.map +1 -1
  14. package/dist/daemon/installer/security.d.ts +9 -2
  15. package/dist/daemon/installer/security.js +8 -0
  16. package/dist/daemon/installer/security.js.map +1 -1
  17. package/dist/daemon/installer/token.d.ts +8 -7
  18. package/dist/daemon/installer/token.js +40 -18
  19. package/dist/daemon/installer/token.js.map +1 -1
  20. package/dist/daemon/registry.d.ts +6 -0
  21. package/dist/daemon/registry.js +15 -17
  22. package/dist/daemon/registry.js.map +1 -1
  23. package/dist/daemon/server.d.ts +14 -0
  24. package/dist/daemon/server.js +19 -0
  25. package/dist/daemon/server.js.map +1 -1
  26. package/dist/daemon/setup-tenancy.d.ts +18 -0
  27. package/dist/daemon/setup-tenancy.js +37 -0
  28. package/dist/daemon/setup-tenancy.js.map +1 -0
  29. package/dist/dashboard/web/active-tenancy-display.d.ts +34 -0
  30. package/dist/dashboard/web/active-tenancy-display.js +84 -0
  31. package/dist/dashboard/web/active-tenancy-display.js.map +1 -0
  32. package/dist/dashboard/web/app.js +6 -2
  33. package/dist/dashboard/web/app.js.map +1 -1
  34. package/dist/dashboard/web/onboarding/contracts.d.ts +1 -1
  35. package/dist/dashboard/web/onboarding/contracts.js +9 -1
  36. package/dist/dashboard/web/onboarding/contracts.js.map +1 -1
  37. package/dist/dashboard/web/onboarding/login-step.d.ts +3 -4
  38. package/dist/dashboard/web/onboarding/login-step.js +12 -18
  39. package/dist/dashboard/web/onboarding/login-step.js.map +1 -1
  40. package/dist/dashboard/web/onboarding/onboarding-screen.d.ts +8 -4
  41. package/dist/dashboard/web/onboarding/onboarding-screen.js +90 -13
  42. package/dist/dashboard/web/onboarding/onboarding-screen.js.map +1 -1
  43. package/dist/dashboard/web/onboarding/tenancy-client.d.ts +19 -0
  44. package/dist/dashboard/web/onboarding/tenancy-client.js +84 -0
  45. package/dist/dashboard/web/onboarding/tenancy-client.js.map +1 -0
  46. package/dist/dashboard/web/onboarding/tenancy-contracts.d.ts +119 -0
  47. package/dist/dashboard/web/onboarding/tenancy-contracts.js +79 -0
  48. package/dist/dashboard/web/onboarding/tenancy-contracts.js.map +1 -0
  49. package/dist/dashboard/web/onboarding/tenancy-step.d.ts +32 -0
  50. package/dist/dashboard/web/onboarding/tenancy-step.js +223 -0
  51. package/dist/dashboard/web/onboarding/tenancy-step.js.map +1 -0
  52. package/dist/dashboard/web/pages/hive-graph.js +138 -43
  53. package/dist/dashboard/web/pages/hive-graph.js.map +1 -1
  54. package/dist/dashboard/web/wire.d.ts +111 -14
  55. package/dist/dashboard/web/wire.js +105 -0
  56. package/dist/dashboard/web/wire.js.map +1 -1
  57. package/dist/install/registry.d.ts +2 -2
  58. package/dist/install/registry.js +14 -7
  59. package/dist/install/registry.js.map +1 -1
  60. package/dist/lock.d.ts +5 -2
  61. package/dist/lock.js +36 -1
  62. package/dist/lock.js.map +1 -1
  63. package/dist/service/index.d.ts +5 -0
  64. package/dist/service/index.js +9 -1
  65. package/dist/service/index.js.map +1 -1
  66. package/dist/service/templates.d.ts +22 -3
  67. package/dist/service/templates.js +47 -10
  68. package/dist/service/templates.js.map +1 -1
  69. package/dist/shared/apiary-root.d.ts +28 -0
  70. package/dist/shared/apiary-root.js +71 -0
  71. package/dist/shared/apiary-root.js.map +1 -0
  72. package/dist/shared/constants.d.ts +0 -1
  73. package/dist/shared/constants.js +3 -5
  74. package/dist/shared/constants.js.map +1 -1
  75. package/dist/shared/legacy-paths.d.ts +22 -0
  76. package/dist/shared/legacy-paths.js +48 -0
  77. package/dist/shared/legacy-paths.js.map +1 -0
  78. package/dist/shared/registry-paths.d.ts +19 -0
  79. package/dist/shared/registry-paths.js +52 -0
  80. package/dist/shared/registry-paths.js.map +1 -0
  81. package/dist/shared/state-migration.d.ts +13 -0
  82. package/dist/shared/state-migration.js +92 -0
  83. package/dist/shared/state-migration.js.map +1 -0
  84. package/dist/telemetry/emit.d.ts +27 -14
  85. package/dist/telemetry/emit.js +20 -4
  86. package/dist/telemetry/emit.js.map +1 -1
  87. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/daemon/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/daemon/registry.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { type ProxyFetch } from "./proxy.js";
6
6
  import { type TelemetryFetch } from "./telemetry-proxy.js";
7
7
  import { type InstallerServiceOptions } from "./installer/index.js";
8
8
  import type { SetupAuthFetchImpl } from "./setup-auth.js";
9
+ import type { SetupTenancyFetchImpl } from "./setup-tenancy.js";
9
10
  export interface CreateHiveOptions {
10
11
  readonly host?: string;
11
12
  readonly port?: number;
@@ -17,6 +18,8 @@ export interface CreateHiveOptions {
17
18
  readonly proxyFetch?: ProxyFetch;
18
19
  /** The fetch used by the portal gate's auth check (`/setup/state`, defaults to the global `fetch`). */
19
20
  readonly setupAuthFetch?: SetupAuthFetchImpl;
21
+ /** The fetch used by the portal gate's tenancy check (`/setup/tenancy`, defaults to the global `fetch`). */
22
+ readonly setupTenancyFetch?: SetupTenancyFetchImpl;
20
23
  /** Override doctor's SSE events URL the telemetry relay connects to (defaults to the fixed loopback constant). */
21
24
  readonly doctorEventsUrl?: string;
22
25
  /** The fetch used by the telemetry relay to reach doctor's SSE stream (defaults to the global `fetch`). */
@@ -30,6 +33,17 @@ export interface CreateHiveOptions {
30
33
  export interface StartHiveOptions extends CreateHiveOptions {
31
34
  readonly lockPaths?: Partial<LockPaths>;
32
35
  readonly serveFn?: ServeFunction;
36
+ /**
37
+ * PRD-010b boot-migration seam. Defaults to the real {@link migrateHiveState}; tests MUST
38
+ * inject a no-op (or the suite-wide isolated home applies) so no test touches the real home.
39
+ */
40
+ readonly migrateState?: () => void;
41
+ /**
42
+ * rc-AC-2/mg-AC-7 registry-upsert seam, invoked AFTER the lock is acquired and the pid file is
43
+ * written (same boot, pinned ordering). Defaults to the real {@link registerHiveWithDoctor};
44
+ * tests inject a no-op or a recorder.
45
+ */
46
+ readonly registerWithDoctor?: () => void;
33
47
  }
34
48
  export interface HiveInstance {
35
49
  readonly app: Hono;
@@ -1,6 +1,8 @@
1
1
  import { serve } from "@hono/node-server";
2
2
  import { Hono } from "hono";
3
3
  import { acquireSingleInstanceLock, releaseSingleInstanceLock } from "../lock.js";
4
+ import { registerHiveWithDoctor } from "../install/registry.js";
5
+ import { migrateHiveState } from "../shared/state-migration.js";
4
6
  import { DOCTOR_STATUS_URL, HIVE_HOST, HIVE_PORT, HIVE_VERSION } from "../shared/constants.js";
5
7
  import { mountDashboardAssets, mountDashboardShellFallback, renderShell } from "./dashboard/host.js";
6
8
  import { fetchFleetStatus } from "./fleet-status.js";
@@ -36,6 +38,7 @@ export function createHive(options = {}) {
36
38
  fleetStatusFetch,
37
39
  doctorStatusUrl,
38
40
  setupAuthFetch: options.setupAuthFetch,
41
+ setupTenancyFetch: options.setupTenancyFetch,
39
42
  registryPath: options.registryPath
40
43
  }));
41
44
  // The bundled SPA's static assets — specific, fixed paths registered before the shell catch-all
@@ -98,8 +101,24 @@ export function createHive(options = {}) {
98
101
  }
99
102
  export function startHive(options = {}) {
100
103
  const serveFn = options.serveFn ?? serve;
104
+ const migrateState = options.migrateState ?? (() => {
105
+ migrateHiveState();
106
+ });
107
+ const registerWithDoctor = options.registerWithDoctor ?? (() => {
108
+ registerHiveWithDoctor();
109
+ });
110
+ migrateState();
101
111
  const hive = createHive(options);
102
112
  const lockPaths = acquireSingleInstanceLock(options.lockPaths);
113
+ // rc-AC-2/mg-AC-7 ordering: the lock is held and the new pid file is written; NOW upsert the
114
+ // registry entry naming that pid path, in the same boot. Best-effort: boot never fails when the
115
+ // registry file is mid-move.
116
+ try {
117
+ registerWithDoctor();
118
+ }
119
+ catch {
120
+ // Fail-soft by design.
121
+ }
103
122
  let server;
104
123
  try {
105
124
  server = serveFn({
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAkB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAmB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAuB,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAgC,MAAM,sBAAsB,CAAC;AA2D5F,SAAS,WAAW,CAAC,MAAuB;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAa,EAAE,EAAE;YAC7B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAA6B,EAAE;IACxD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IAExB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;IAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC;IAErE,4FAA4F;IAC5F,yFAAyF;IACzF,4FAA4F;IAC5F,sEAAsE;IACtE,GAAG,CAAC,GAAG,CACL,GAAG,EACH,gBAAgB,CAAC;QACf,gBAAgB;QAChB,eAAe;QACf,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CACH,CAAC;IAEF,gGAAgG;IAChG,uBAAuB;IACvB,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAE1B,4FAA4F;IAC5F,2FAA2F;IAC3F,4FAA4F;IAC5F,6FAA6F;IAC7F,kFAAkF;IAClF,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YACtC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,kFAAkF;IAClF,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CACvC,CAAC,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAClE,CAAC;IAEF,uFAAuF;IACvF,sFAAsF;IACtF,2FAA2F;IAC3F,iGAAiG;IACjG,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CACzF,CAAC;IAEF,gFAAgF;IAChF,8FAA8F;IAC9F,8FAA8F;IAC9F,GAAG,CAAC,GAAG,CACL,uBAAuB,EACvB,4BAA4B,CAAC;QAC3B,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,SAAS,EAAE,OAAO,CAAC,oBAAoB;KACxC,CAAC,CACH,CAAC;IAEF,8FAA8F;IAC9F,iGAAiG;IACjG,kGAAkG;IAClG,kGAAkG;IAClG,4FAA4F;IAC5F,sBAAsB,CAAC,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAElG,4FAA4F;IAC5F,oFAAoF;IACpF,uEAAuE;IACvE,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACvG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE9B,4FAA4F;IAC5F,6FAA6F;IAC7F,yFAAyF;IACzF,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAEjC,OAAO;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAA4B,EAAE;IACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,GAAS,EAAE;QACvD,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,GAAS,EAAE;QACnE,sBAAsB,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,YAAY,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/D,6FAA6F;IAC7F,gGAAgG;IAChG,6BAA6B;IAC7B,IAAI,CAAC;QACH,kBAAkB,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IAED,IAAI,MAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC;YACf,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;YACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;QACrC,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,IAAI;QACP,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * PRD-011c gate tenancy input: fail-closed read of honeycomb `GET /setup/tenancy` `selected` bit.
3
+ * Mirrors `setup-auth.ts` construction exactly (tg-AC-5).
4
+ */
5
+ export type SetupTenancyFetchInit = {
6
+ readonly redirect?: "error" | "follow" | "manual";
7
+ readonly signal?: AbortSignal;
8
+ };
9
+ export type SetupTenancyFetchImpl = (input: string, init?: SetupTenancyFetchInit) => Promise<Response>;
10
+ export interface FetchTenancySelectedOptions {
11
+ readonly registryPath?: string;
12
+ readonly signal?: AbortSignal;
13
+ }
14
+ /**
15
+ * Resolve whether tenancy is confirmed for the gate's third precedence step (tg-AC-1..4).
16
+ * Returns `false` on ANY failure so a transient fault lands on `/onboarding`, never the dashboard.
17
+ */
18
+ export declare function fetchTenancySelected(fetchImpl?: SetupTenancyFetchImpl, options?: FetchTenancySelectedOptions): Promise<boolean>;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * PRD-011c gate tenancy input: fail-closed read of honeycomb `GET /setup/tenancy` `selected` bit.
3
+ * Mirrors `setup-auth.ts` construction exactly (tg-AC-5).
4
+ */
5
+ import { z } from "zod";
6
+ import { isLoopbackBaseUrl } from "../shared/daemon-routing.js";
7
+ import { resolveDaemonBases } from "./registry.js";
8
+ const SetupTenancySelectedSchema = z.object({
9
+ selected: z.boolean().catch(false),
10
+ });
11
+ /**
12
+ * Resolve whether tenancy is confirmed for the gate's third precedence step (tg-AC-1..4).
13
+ * Returns `false` on ANY failure so a transient fault lands on `/onboarding`, never the dashboard.
14
+ */
15
+ export async function fetchTenancySelected(fetchImpl = fetch, options = {}) {
16
+ const base = resolveDaemonBases({ registryPath: options.registryPath }).honeycomb;
17
+ if (!isLoopbackBaseUrl(base))
18
+ return false;
19
+ try {
20
+ const response = await fetchImpl(`${base}/setup/tenancy`, { redirect: "error", signal: options.signal });
21
+ if (!response.ok)
22
+ return false;
23
+ let parsedJson;
24
+ try {
25
+ parsedJson = await response.json();
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ const parsed = SetupTenancySelectedSchema.safeParse(parsedJson);
31
+ return parsed.success ? parsed.data.selected : false;
32
+ }
33
+ catch {
34
+ return false;
35
+ }
36
+ }
37
+ //# sourceMappingURL=setup-tenancy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-tenancy.js","sourceRoot":"","sources":["../../src/daemon/setup-tenancy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;CAClC,CAAC,CAAC;AAaH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,YAAmC,KAAK,EACxC,UAAuC,EAAE;IAEzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC;IAClF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAE/B,IAAI,UAAmB,CAAC;QACxB,IAAI,CAAC;YACJ,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * PRD-011b: active tenancy readout helpers and shell chrome component.
3
+ * Maps daemon truth to honest labels; never fabricates `local · default`.
4
+ */
5
+ import React from "react";
6
+ import type { SetupTenancyResultWire, WireClient } from "./wire.js";
7
+ export type ActiveTenancyLabel = {
8
+ readonly kind: "ok";
9
+ readonly org: string;
10
+ readonly workspace: string;
11
+ /** How the tenancy was confirmed (honeycomb `confirmedBy`); absent on older daemons. */
12
+ readonly confirmedBy?: "selection" | "grandfathered";
13
+ } | {
14
+ readonly kind: "unavailable";
15
+ } | {
16
+ readonly kind: "not-linked";
17
+ } | {
18
+ readonly kind: "not-selected";
19
+ };
20
+ /** Derive the shell readout label from a tenancy read (tv-AC-2/3). */
21
+ export declare function deriveActiveTenancyLabel(read: SetupTenancyResultWire): ActiveTenancyLabel;
22
+ export declare function formatActiveTenancyLabel(label: ActiveTenancyLabel): string;
23
+ export interface ActiveTenancyDisplayProps {
24
+ readonly wire: WireClient;
25
+ /** Incremented by the shell on honeycomb down→up recovery (tv-AC-4). */
26
+ readonly refreshKey?: number;
27
+ }
28
+ /** Persistent org · workspace readout for the shell chrome bar (tv-AC-1..5). */
29
+ export declare function ActiveTenancyDisplay({ wire, refreshKey }: ActiveTenancyDisplayProps): React.JSX.Element;
30
+ /** Tenancy line for the nectar projects panel (tv-AC-6..8). */
31
+ export declare function formatNectarPanelTenancy(projectsTenancy: {
32
+ org?: string;
33
+ workspace?: string;
34
+ } | undefined, fleetTenancy: ActiveTenancyLabel): string | null;
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * PRD-011b: active tenancy readout helpers and shell chrome component.
4
+ * Maps daemon truth to honest labels; never fabricates `local · default`.
5
+ */
6
+ import React from "react";
7
+ import { UNREACHABLE_SETUP_TENANCY } from "./wire.js";
8
+ import { useScopeSwitcher } from "./scope-context.js";
9
+ /** Derive the shell readout label from a tenancy read (tv-AC-2/3). */
10
+ export function deriveActiveTenancyLabel(read) {
11
+ if (read.unreachable)
12
+ return { kind: "unavailable" };
13
+ if (!read.authenticated)
14
+ return { kind: "not-linked" };
15
+ if (!read.selected)
16
+ return { kind: "not-selected" };
17
+ const org = read.org?.name !== "" && read.org?.name !== undefined ? read.org.name : read.org?.id ?? "";
18
+ const workspace = read.workspace?.name !== "" && read.workspace?.name !== undefined ? read.workspace.name : read.workspace?.id ?? "";
19
+ if (org === "" || workspace === "")
20
+ return { kind: "unavailable" };
21
+ return read.confirmedBy !== undefined ? { kind: "ok", org, workspace, confirmedBy: read.confirmedBy } : { kind: "ok", org, workspace };
22
+ }
23
+ export function formatActiveTenancyLabel(label) {
24
+ switch (label.kind) {
25
+ case "ok":
26
+ // A grandfathered confirmation (carried forward from a pre-selection credential) is
27
+ // hinted subtly so the operator knows this tenancy was never explicitly picked.
28
+ return label.confirmedBy === "grandfathered" ? `${label.org} · ${label.workspace} (grandfathered)` : `${label.org} · ${label.workspace}`;
29
+ case "unavailable":
30
+ return "tenancy unavailable";
31
+ case "not-linked":
32
+ return "not linked";
33
+ case "not-selected":
34
+ return "tenancy not selected";
35
+ default: {
36
+ const _exhaustive = label;
37
+ return _exhaustive;
38
+ }
39
+ }
40
+ }
41
+ /** Persistent org · workspace readout for the shell chrome bar (tv-AC-1..5). */
42
+ export function ActiveTenancyDisplay({ wire, refreshKey = 0 }) {
43
+ const { switchFeedback } = useScopeSwitcher();
44
+ const [tenancy, setTenancy] = React.useState(UNREACHABLE_SETUP_TENANCY);
45
+ const hydrate = React.useCallback(async () => {
46
+ setTenancy(await wire.setupTenancy());
47
+ }, [wire]);
48
+ React.useEffect(() => {
49
+ void hydrate();
50
+ }, [hydrate, refreshKey]);
51
+ // tv-AC-5: re-hydrate after a persisted org/workspace switch acknowledges.
52
+ React.useEffect(() => {
53
+ if (switchFeedback?.kind === "persisted" && switchFeedback.pending !== true) {
54
+ void hydrate();
55
+ }
56
+ }, [switchFeedback, hydrate]);
57
+ const label = deriveActiveTenancyLabel(tenancy);
58
+ const text = formatActiveTenancyLabel(label);
59
+ return (_jsx("span", { "data-testid": "active-tenancy-display", "data-tenancy-state": label.kind, style: {
60
+ fontFamily: "var(--font-mono)",
61
+ fontSize: "var(--text-xs)",
62
+ color: label.kind === "ok" ? "var(--text-secondary)" : "var(--text-tertiary)",
63
+ whiteSpace: "nowrap",
64
+ overflow: "hidden",
65
+ textOverflow: "ellipsis",
66
+ }, children: text }));
67
+ }
68
+ /** Tenancy line for the nectar projects panel (tv-AC-6..8). */
69
+ export function formatNectarPanelTenancy(projectsTenancy, fleetTenancy) {
70
+ if (projectsTenancy?.org !== undefined && projectsTenancy.org !== "" && projectsTenancy.workspace !== undefined && projectsTenancy.workspace !== "") {
71
+ return `${projectsTenancy.org} · ${projectsTenancy.workspace}`;
72
+ }
73
+ if (fleetTenancy.kind === "ok") {
74
+ return `${fleetTenancy.org} · ${fleetTenancy.workspace} (fleet credential)`;
75
+ }
76
+ if (fleetTenancy.kind === "unavailable")
77
+ return "tenancy unknown";
78
+ if (fleetTenancy.kind === "not-linked")
79
+ return "not linked";
80
+ if (fleetTenancy.kind === "not-selected")
81
+ return "tenancy not selected";
82
+ return "tenancy unknown";
83
+ }
84
+ //# sourceMappingURL=active-tenancy-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-tenancy-display.js","sourceRoot":"","sources":["../../../src/dashboard/web/active-tenancy-display.tsx"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
29
  * XSS-safe, no token/secret in the shell/route/registry/pill — D-9).
30
30
  */
31
31
  import React from "react";
32
+ import { ActiveTenancyDisplay } from "./active-tenancy-display.js";
32
33
  import { Button } from "./primitives.js";
33
34
  import { ConnectivityBanner } from "./panels.js";
34
35
  import { HEALTH_ROUTE, HealthRail } from "./health-rail.js";
@@ -90,6 +91,7 @@ export function Shell({ client, assetBase = "assets" } = {}) {
90
91
  const [healthReasons, setHealthReasons] = React.useState(null);
91
92
  const [settings, setSettings] = React.useState(EMPTY_SETTINGS);
92
93
  const [pollinating, setPollinating] = React.useState(false);
94
+ const [tenancyRefreshKey, setTenancyRefreshKey] = React.useState(0);
93
95
  // Collapsed: a manual toggle OR an auto-collapse under the narrow breakpoint (037a AC-6). We track
94
96
  // both an explicit user choice and the viewport, preferring the user's choice once they toggle.
95
97
  const [collapsed, setCollapsed] = React.useState(false);
@@ -121,8 +123,10 @@ export function Shell({ client, assetBase = "assets" } = {}) {
121
123
  const nextNectarUp = !nectarStatus.unreachable;
122
124
  setDaemonUpByOwner({ honeycomb: nextHoneycombUp, nectar: nextNectarUp });
123
125
  setHealthReasons(honeycombProbe.reasons);
124
- if (nextHoneycombUp && prevDaemonUpRef.current === false)
126
+ if (nextHoneycombUp && prevDaemonUpRef.current === false) {
125
127
  void hydrateIdentity();
128
+ setTenancyRefreshKey((k) => k + 1);
129
+ }
126
130
  prevDaemonUpRef.current = nextHoneycombUp;
127
131
  }, HEALTH_POLL_MS);
128
132
  // 037a AC-6: auto-collapse under the narrow breakpoint. Tracks the viewport via matchMedia; the
@@ -182,7 +186,7 @@ export function Shell({ client, assetBase = "assets" } = {}) {
182
186
  gap: 12,
183
187
  padding: "16px 28px",
184
188
  borderBottom: "1px solid var(--border-subtle)",
185
- }, children: [_jsx("span", { style: { flex: 1 } }), _jsx(Button, { variant: "pollinate", onClick: () => void pollinate(), disabled: pollinating, children: pollinating ? "pollinating…" : "Pollinate now" })] }), pageDaemonUp ? (_jsx(Outlet, { route: route, pageProps: pageProps, navigate: navigate })) : (_jsx("div", { style: { flex: 1, minWidth: 0, padding: "28px 28px 48px" }, children: _jsx("div", { style: { maxWidth: PAGE_MAX_WIDTH, margin: "0 auto" }, children: _jsx(ConnectivityBanner, { url: daemonUrl, onRetry: () => {
189
+ }, children: [_jsx(ActiveTenancyDisplay, { wire: wire, refreshKey: tenancyRefreshKey }), _jsx("span", { style: { flex: 1 } }), _jsx(Button, { variant: "pollinate", onClick: () => void pollinate(), disabled: pollinating, children: pollinating ? "pollinating…" : "Pollinate now" })] }), pageDaemonUp ? (_jsx(Outlet, { route: route, pageProps: pageProps, navigate: navigate })) : (_jsx("div", { style: { flex: 1, minWidth: 0, padding: "28px 28px 48px" }, children: _jsx("div", { style: { maxWidth: PAGE_MAX_WIDTH, margin: "0 auto" }, children: _jsx(ConnectivityBanner, { url: daemonUrl, onRetry: () => {
186
190
  void (async () => {
187
191
  if (routeOwner === "nectar") {
188
192
  const status = await wire.hiveGraphStatus();
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/dashboard/web/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/dashboard/web/app.tsx"],"names":[],"mappings":"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"}
@@ -184,5 +184,5 @@ export declare function parseHealthResponse(body: unknown): HealthResponse;
184
184
  /** Re-exported so onboarding modules read the daemon health vocabulary from one place. */
185
185
  export type { FleetHealth, FleetStatusResponse };
186
186
  /** The exact UI-fired event names (product install + health events are daemon-side, never sent here). */
187
- export declare const ONBOARDING_UI_EVENTS: readonly ["onboarding_started", "mode_selected", "login_shown", "dashboard_reached"];
187
+ export declare const ONBOARDING_UI_EVENTS: readonly ["onboarding_started", "mode_selected", "login_shown", "tenancy_shown", "tenancy_selected", "workspace_created", "dashboard_reached"];
188
188
  export type OnboardingUiEvent = (typeof ONBOARDING_UI_EVENTS)[number];
@@ -157,5 +157,13 @@ function isFleetStatusShaped(value) {
157
157
  // POST /api/onboarding/event, the UI funnel chokepoint (fire-and-forget, never awaited by callers)
158
158
  // ─────────────────────────────────────────────────────────────────────────────
159
159
  /** The exact UI-fired event names (product install + health events are daemon-side, never sent here). */
160
- export const ONBOARDING_UI_EVENTS = ["onboarding_started", "mode_selected", "login_shown", "dashboard_reached"];
160
+ export const ONBOARDING_UI_EVENTS = [
161
+ "onboarding_started",
162
+ "mode_selected",
163
+ "login_shown",
164
+ "tenancy_shown",
165
+ "tenancy_selected",
166
+ "workspace_created",
167
+ "dashboard_reached",
168
+ ];
161
169
  //# sourceMappingURL=contracts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/contracts.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,8 @@
8
8
  * Unlike `/login`'s `GuidedSetup` (which waits for an explicit "First time setup" click), the
9
9
  * onboarding flow has already walked the operator through installs and a health check, so this
10
10
  * step begins the device flow automatically on mount: one fewer click at the end of a long guided
11
- * sequence. Once `/setup/state.authenticated` flips true it fires `dashboard_reached`, best-effort
12
- * POSTs `/api/onboarding/complete`, then hard-navigates to `/` (ob-AC-15) so the server gate
13
- * revalidates and serves the authoritative dashboard, the same discipline `LoginScreen` follows.
11
+ * sequence. Once `/setup/state.authenticated` flips true the parent advances to the PRD-011 tenancy
12
+ * step; the terminal `dashboard_reached` handoff runs only after tenancy selection (ts-AC-1/9).
14
13
  */
15
14
  import React from "react";
16
15
  import { type WireClient } from "../wire.js";
@@ -21,7 +20,7 @@ export interface LoginStepProps {
21
20
  readonly onboardingClient: OnboardingClient;
22
21
  /** The proxied setup wire client (defaults to the live one; a test injects a mock). */
23
22
  readonly wire?: WireClient;
24
- /** Test seam: called instead of the real hard navigation once authenticated. */
23
+ /** Test seam: called when login authenticates (parent advances to the tenancy step). */
25
24
  readonly onAuthenticated?: () => void;
26
25
  /** Overrides {@link LOGIN_STEP_POLL_MS} (a test injects a short window). */
27
26
  readonly pollMs?: number;
@@ -9,9 +9,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
9
9
  * Unlike `/login`'s `GuidedSetup` (which waits for an explicit "First time setup" click), the
10
10
  * onboarding flow has already walked the operator through installs and a health check, so this
11
11
  * step begins the device flow automatically on mount: one fewer click at the end of a long guided
12
- * sequence. Once `/setup/state.authenticated` flips true it fires `dashboard_reached`, best-effort
13
- * POSTs `/api/onboarding/complete`, then hard-navigates to `/` (ob-AC-15) so the server gate
14
- * revalidates and serves the authoritative dashboard, the same discipline `LoginScreen` follows.
12
+ * sequence. Once `/setup/state.authenticated` flips true the parent advances to the PRD-011 tenancy
13
+ * step; the terminal `dashboard_reached` handoff runs only after tenancy selection (ts-AC-1/9).
15
14
  */
16
15
  import React from "react";
17
16
  import { createWireClient, FRESH_SETUP_STATE } from "../wire.js";
@@ -31,7 +30,7 @@ export function LoginStep({ onboardingClient, wire: wireOverride, onAuthenticate
31
30
  const [error, setError] = React.useState(false);
32
31
  const beginRef = React.useRef(false);
33
32
  const grantShownEventRef = React.useRef(false);
34
- const navigatedRef = React.useRef(false);
33
+ const authenticatedHandledRef = React.useRef(false);
35
34
  // Auto-begin the device flow on mount (see module doc for why onboarding skips the button
36
35
  // `GuidedSetup` shows on the standalone `/login` route).
37
36
  React.useEffect(() => {
@@ -71,22 +70,17 @@ export function LoginStep({ onboardingClient, wire: wireOverride, onAuthenticate
71
70
  clearInterval(id);
72
71
  };
73
72
  }, [wire, state.authenticated, pollMs]);
74
- // ob-AC-15, authenticated: fire `dashboard_reached`, best-effort POST complete, then hard-nav.
73
+ // ts-AC-1: authenticated advances to the tenancy step; terminal handoff lives in TenancyStep.
75
74
  React.useEffect(() => {
76
- if (!state.authenticated || navigatedRef.current)
75
+ if (!state.authenticated || authenticatedHandledRef.current)
77
76
  return;
78
- navigatedRef.current = true;
79
- onboardingClient.sendEvent("dashboard_reached");
80
- void (async () => {
81
- await onboardingClient.complete();
82
- if (onAuthenticated !== undefined) {
83
- onAuthenticated();
84
- return;
85
- }
86
- if (typeof window !== "undefined")
87
- window.location.assign("/");
88
- })();
89
- }, [state.authenticated, onboardingClient, onAuthenticated]);
77
+ authenticatedHandledRef.current = true;
78
+ if (onAuthenticated !== undefined) {
79
+ onAuthenticated();
80
+ return;
81
+ }
82
+ // Real usage: parent OnboardingScreen owns the phase transition; this branch is unreachable.
83
+ }, [state.authenticated, onAuthenticated]);
90
84
  if (state.authenticated)
91
85
  return _jsx(_Fragment, {});
92
86
  return (_jsxs("div", { "data-testid": "onboarding-login-step", style: {
@@ -1 +1 @@
1
- {"version":3,"file":"login-step.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/login-step.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login-step.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/login-step.tsx"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@
12
12
  * └ Advanced → picker → installing(exactly the chosen subset) (ob-AC-7)
13
13
  * installing(queue, index) ── each card completes+dwells → advance → next index, else → health
14
14
  * health ── polls until ready → login
15
- * login ── device-code display, then a hard navigation to `/` on authenticated (ob-AC-14/15)
15
+ * login ── device-code display tenancy when authenticated (PRD-011a)
16
+ * tenancy ── org + workspace selection → hard navigation to `/` on `selected: true` (ts-AC-9)
16
17
  *
17
18
  * Resume honesty (ob-AC-16): the Standard/Advanced choice is persisted client-side
18
19
  * (onboarding-selection-store), so a resumed install uses `buildResumeQueue`, which excludes a
@@ -22,13 +23,16 @@
22
23
  */
23
24
  import React from "react";
24
25
  import { type OnboardingClient } from "./onboarding-client.js";
25
- import type { WireClient } from "../wire.js";
26
+ import type { TenancyClient } from "./tenancy-client.js";
27
+ import { type WireClient } from "../wire.js";
26
28
  export interface OnboardingScreenProps {
27
29
  readonly assetBase?: string;
28
30
  /** Test seam: inject a fake onboarding client, bypassing the real token + fetch wiring entirely. */
29
31
  readonly client?: OnboardingClient;
30
32
  /** Test seam: inject a fake proxied setup wire client for the login step. */
31
33
  readonly wire?: WireClient;
34
+ /** Test seam: inject a fake tenancy client for the tenancy step (never touches the network). */
35
+ readonly tenancyClient?: TenancyClient;
32
36
  /** Test seam: override the brief install dwell (ob-AC-11, revised). */
33
37
  readonly minDwellMs?: number;
34
38
  /** Test seam: override the health-check poll interval. */
@@ -37,7 +41,7 @@ export interface OnboardingScreenProps {
37
41
  readonly loginPollMs?: number;
38
42
  /** Test seam: called instead of the real hard navigation from the short-circuit summary. */
39
43
  readonly onShortCircuitNavigate?: () => void;
40
- /** Test seam: called instead of the real hard navigation once login completes (ob-AC-15). */
44
+ /** Test seam: called instead of the real hard navigation once tenancy selection completes. */
41
45
  readonly onAuthenticated?: () => void;
42
46
  }
43
- export declare function OnboardingScreen({ assetBase, client: clientOverride, wire, minDwellMs, healthPollMs, loginPollMs, onShortCircuitNavigate, onAuthenticated, }: OnboardingScreenProps): React.JSX.Element;
47
+ export declare function OnboardingScreen({ assetBase, client: clientOverride, wire, tenancyClient, minDwellMs, healthPollMs, loginPollMs, onShortCircuitNavigate, onAuthenticated, }: OnboardingScreenProps): React.JSX.Element;