@indigoai-us/hq-cloud 6.14.17 → 6.14.18

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 (39) hide show
  1. package/dist/active-company.d.ts +43 -0
  2. package/dist/active-company.d.ts.map +1 -0
  3. package/dist/active-company.js +132 -0
  4. package/dist/active-company.js.map +1 -0
  5. package/dist/active-company.test.d.ts +2 -0
  6. package/dist/active-company.test.d.ts.map +1 -0
  7. package/dist/active-company.test.js +149 -0
  8. package/dist/active-company.test.js.map +1 -0
  9. package/dist/bin/sync-runner-planning.d.ts +27 -1
  10. package/dist/bin/sync-runner-planning.d.ts.map +1 -1
  11. package/dist/bin/sync-runner-planning.js +33 -4
  12. package/dist/bin/sync-runner-planning.js.map +1 -1
  13. package/dist/bin/sync-runner-planning.test.d.ts +2 -0
  14. package/dist/bin/sync-runner-planning.test.d.ts.map +1 -0
  15. package/dist/bin/sync-runner-planning.test.js +115 -0
  16. package/dist/bin/sync-runner-planning.test.js.map +1 -0
  17. package/dist/bin/sync-runner.d.ts +22 -7
  18. package/dist/bin/sync-runner.d.ts.map +1 -1
  19. package/dist/bin/sync-runner.js +92 -16
  20. package/dist/bin/sync-runner.js.map +1 -1
  21. package/dist/bin/sync-runner.test.js +357 -5
  22. package/dist/bin/sync-runner.test.js.map +1 -1
  23. package/dist/manifest-reconcile.d.ts +118 -5
  24. package/dist/manifest-reconcile.d.ts.map +1 -1
  25. package/dist/manifest-reconcile.js +319 -62
  26. package/dist/manifest-reconcile.js.map +1 -1
  27. package/dist/manifest-reconcile.test.js +824 -2
  28. package/dist/manifest-reconcile.test.js.map +1 -1
  29. package/package.json +1 -1
  30. package/pnpm-workspace.yaml +1 -1
  31. package/src/active-company.test.ts +188 -0
  32. package/src/active-company.ts +168 -0
  33. package/src/bin/sync-runner-planning.test.ts +131 -0
  34. package/src/bin/sync-runner-planning.ts +60 -7
  35. package/src/bin/sync-runner.test.ts +430 -10
  36. package/src/bin/sync-runner.ts +129 -23
  37. package/src/manifest-reconcile.test.ts +1019 -3
  38. package/src/manifest-reconcile.ts +424 -66
  39. package/test/joiner-manifest-reconcile.integration.test.ts +283 -0
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-reconcile.test.js","sourceRoot":"","sources":["../src/manifest-reconcile.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest-reconcile.test.js","sourceRoot":"","sources":["../src/manifest-reconcile.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@indigoai-us/hq-cloud",
3
- "version": "6.14.17",
3
+ "version": "6.14.18",
4
4
  "description": "HQ by Indigo cloud sync engine — bidirectional S3 sync for mobile access",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,2 +1,2 @@
1
1
  allowBuilds:
2
- esbuild: set this to true or false
2
+ esbuild: true
@@ -0,0 +1,188 @@
1
+ import { afterEach, describe, expect, it } from "vitest";
2
+ import * as fs from "node:fs";
3
+ import * as os from "node:os";
4
+ import * as path from "node:path";
5
+
6
+ import { seedActiveCompany } from "./active-company.js";
7
+
8
+ let hqRoot: string | undefined;
9
+
10
+ afterEach(() => {
11
+ if (hqRoot) {
12
+ fs.rmSync(hqRoot, { recursive: true, force: true });
13
+ hqRoot = undefined;
14
+ }
15
+ });
16
+
17
+ function makeHqRoot(): string {
18
+ return fs.mkdtempSync(path.join(os.tmpdir(), "hq-active-company-"));
19
+ }
20
+
21
+ function configPath(root: string): string {
22
+ return path.join(root, ".hq", "config.json");
23
+ }
24
+
25
+ function writeConfig(root: string, contents: string): string {
26
+ const p = configPath(root);
27
+ fs.mkdirSync(path.dirname(p), { recursive: true });
28
+ fs.writeFileSync(p, contents, "utf8");
29
+ return p;
30
+ }
31
+
32
+ function readConfig(root: string): Record<string, unknown> {
33
+ return JSON.parse(fs.readFileSync(configPath(root), "utf8")) as Record<string, unknown>;
34
+ }
35
+
36
+ describe("seedActiveCompany", () => {
37
+ it("seeds the single company when activeCompany is unset", () => {
38
+ hqRoot = makeHqRoot();
39
+ writeConfig(hqRoot, JSON.stringify({ someOtherSetting: true }));
40
+
41
+ expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
42
+ written: true,
43
+ activeCompany: "boring-ecom",
44
+ });
45
+ expect(readConfig(hqRoot)).toEqual({
46
+ someOtherSetting: true,
47
+ activeCompany: "boring-ecom",
48
+ });
49
+ });
50
+
51
+ it("creates a missing config file", () => {
52
+ hqRoot = makeHqRoot();
53
+ expect(fs.existsSync(configPath(hqRoot))).toBe(false);
54
+
55
+ expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
56
+ written: true,
57
+ activeCompany: "boring-ecom",
58
+ });
59
+ expect(readConfig(hqRoot)).toEqual({ activeCompany: "boring-ecom" });
60
+ });
61
+
62
+ it("no-ops on zero companies", () => {
63
+ hqRoot = makeHqRoot();
64
+ const before = writeConfig(hqRoot, JSON.stringify({ keep: 1 }));
65
+ const raw = fs.readFileSync(before, "utf8");
66
+
67
+ expect(seedActiveCompany({ hqRoot, companySlugs: [] })).toEqual({
68
+ written: false,
69
+ skippedReason: "no-companies",
70
+ });
71
+ expect(fs.readFileSync(before, "utf8")).toBe(raw);
72
+ });
73
+
74
+ // Two companies is a real choice. Guessing would route the user somewhere
75
+ // arbitrary, which is indistinguishable from a bug to the person it happens to.
76
+ it("no-ops on two or more companies rather than guessing", () => {
77
+ hqRoot = makeHqRoot();
78
+ const p = writeConfig(hqRoot, JSON.stringify({ keep: 1 }));
79
+ const raw = fs.readFileSync(p, "utf8");
80
+
81
+ expect(
82
+ seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom", "acme"] }),
83
+ ).toEqual({ written: false, skippedReason: "ambiguous" });
84
+ expect(fs.readFileSync(p, "utf8")).toBe(raw);
85
+ });
86
+
87
+ it("never overwrites an existing activeCompany", () => {
88
+ hqRoot = makeHqRoot();
89
+ const p = writeConfig(hqRoot, JSON.stringify({ activeCompany: "chosen-by-user" }));
90
+ const raw = fs.readFileSync(p, "utf8");
91
+
92
+ expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
93
+ written: false,
94
+ skippedReason: "already-set",
95
+ });
96
+ expect(fs.readFileSync(p, "utf8")).toBe(raw);
97
+ });
98
+
99
+ // Even when the existing value names a company they have since left. Repairing
100
+ // that is a separate, user-visible decision — not something a sync should do
101
+ // silently underneath them.
102
+ it("never overwrites activeCompany even for a company the user has left", () => {
103
+ hqRoot = makeHqRoot();
104
+ writeConfig(hqRoot, JSON.stringify({ activeCompany: "former-employer" }));
105
+
106
+ expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
107
+ written: false,
108
+ skippedReason: "already-set",
109
+ });
110
+ expect(readConfig(hqRoot).activeCompany).toBe("former-employer");
111
+ });
112
+
113
+ // sync-core's resolveActiveCompany falls back to `companySlug`, so a config
114
+ // carrying only that already HAS an effective answer. Writing activeCompany
115
+ // would silently re-route the user.
116
+ it("treats a legacy companySlug as already-set", () => {
117
+ hqRoot = makeHqRoot();
118
+ const p = writeConfig(hqRoot, JSON.stringify({ companySlug: "legacy-choice" }));
119
+ const raw = fs.readFileSync(p, "utf8");
120
+
121
+ expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
122
+ written: false,
123
+ skippedReason: "already-set",
124
+ });
125
+ expect(fs.readFileSync(p, "utf8")).toBe(raw);
126
+ });
127
+
128
+ it("leaves malformed JSON untouched and reports a diagnostic", () => {
129
+ hqRoot = makeHqRoot();
130
+ const p = writeConfig(hqRoot, '{"activeCompany": "half-edited"');
131
+ const raw = fs.readFileSync(p, "utf8");
132
+ const diagnostics: Array<{ event: string }> = [];
133
+
134
+ expect(
135
+ seedActiveCompany({
136
+ hqRoot,
137
+ companySlugs: ["boring-ecom"],
138
+ reportDiagnostic: (d) => diagnostics.push(d),
139
+ }),
140
+ ).toEqual({ written: false, skippedReason: "unreadable-config" });
141
+
142
+ expect(fs.readFileSync(p, "utf8")).toBe(raw);
143
+ expect(diagnostics).toHaveLength(1);
144
+ expect(diagnostics[0].event).toBe("runner.active_company.config_malformed");
145
+ });
146
+
147
+ it("leaves a non-object config untouched", () => {
148
+ hqRoot = makeHqRoot();
149
+ const p = writeConfig(hqRoot, "[1, 2, 3]");
150
+ const raw = fs.readFileSync(p, "utf8");
151
+
152
+ expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] })).toEqual({
153
+ written: false,
154
+ skippedReason: "unreadable-config",
155
+ });
156
+ expect(fs.readFileSync(p, "utf8")).toBe(raw);
157
+ });
158
+
159
+ it("preserves unknown keys and leaves no temp files behind", () => {
160
+ hqRoot = makeHqRoot();
161
+ writeConfig(
162
+ hqRoot,
163
+ JSON.stringify({ nested: { a: 1 }, list: [1, 2], flag: false }),
164
+ );
165
+
166
+ expect(seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom"] }).written).toBe(
167
+ true,
168
+ );
169
+ expect(readConfig(hqRoot)).toEqual({
170
+ nested: { a: 1 },
171
+ list: [1, 2],
172
+ flag: false,
173
+ activeCompany: "boring-ecom",
174
+ });
175
+ const strays = fs
176
+ .readdirSync(path.join(hqRoot, ".hq"))
177
+ .filter((f) => f.startsWith(".config-"));
178
+ expect(strays).toEqual([]);
179
+ });
180
+
181
+ it("collapses duplicate slugs — one company named twice is not ambiguous", () => {
182
+ hqRoot = makeHqRoot();
183
+ expect(
184
+ seedActiveCompany({ hqRoot, companySlugs: ["boring-ecom", "boring-ecom"] }),
185
+ ).toEqual({ written: true, activeCompany: "boring-ecom" });
186
+ expect(readConfig(hqRoot).activeCompany).toBe("boring-ecom");
187
+ });
188
+ });
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Seed `activeCompany` in `.hq/config.json` for a joiner who has exactly one
3
+ * cloud company.
4
+ *
5
+ * A newly invited member arrives with no local company routing at all. The
6
+ * manifest reconciler restores their `companies/manifest.yaml` entry, but
7
+ * nothing tells HQ which company is *current*, so they stay unrouted even
8
+ * though membership resolved fine. When the answer is unambiguous — one company
9
+ * and no existing choice — recording it is strictly better than leaving the
10
+ * user to guess.
11
+ *
12
+ * Everything here is deliberately conservative. This runs unattended on every
13
+ * sync, against a file the user also edits by hand, so the bar for writing is
14
+ * "the answer cannot be wrong": never overwrite an existing choice, never guess
15
+ * between two companies, and never clobber a file we could not parse.
16
+ */
17
+
18
+ import { randomUUID } from "node:crypto";
19
+ import * as fs from "node:fs";
20
+ import * as path from "node:path";
21
+
22
+ export interface SeedActiveCompanyOptions {
23
+ hqRoot: string;
24
+ /** Slugs of companies that reconciled successfully this run. */
25
+ companySlugs: readonly string[];
26
+ reportDiagnostic?: (diagnostic: {
27
+ event: string;
28
+ message: string;
29
+ err: unknown;
30
+ context: Record<string, unknown>;
31
+ }) => void;
32
+ }
33
+
34
+ export interface SeedActiveCompanyResult {
35
+ /** True only when `.hq/config.json` was actually written. */
36
+ written: boolean;
37
+ /** The slug that was seeded, when one was. */
38
+ activeCompany?: string;
39
+ /** Why nothing was written. Absent when `written` is true. */
40
+ skippedReason?:
41
+ | "ambiguous"
42
+ | "no-companies"
43
+ | "already-set"
44
+ | "unreadable-config"
45
+ | "write-failed";
46
+ }
47
+
48
+ interface HqConfig {
49
+ activeCompany?: unknown;
50
+ companySlug?: unknown;
51
+ [key: string]: unknown;
52
+ }
53
+
54
+ function isPlainObject(value: unknown): value is Record<string, unknown> {
55
+ if (value === null || typeof value !== "object" || Array.isArray(value)) return false;
56
+ const proto = Object.getPrototypeOf(value) as object | null;
57
+ return proto === Object.prototype || proto === null;
58
+ }
59
+
60
+ function isNonEmptyString(value: unknown): value is string {
61
+ return typeof value === "string" && value.length > 0;
62
+ }
63
+
64
+ /**
65
+ * Write `config` to `configPath` via temp-file + rename, so a reader never
66
+ * observes a half-written config and a crash cannot truncate the original.
67
+ */
68
+ function writeConfigAtomically(configPath: string, config: HqConfig): void {
69
+ const dir = path.dirname(configPath);
70
+ fs.mkdirSync(dir, { recursive: true });
71
+ const temporaryPath = path.join(dir, `.config-${process.pid}-${randomUUID()}.json`);
72
+ try {
73
+ fs.writeFileSync(temporaryPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
74
+ fs.renameSync(temporaryPath, configPath);
75
+ } finally {
76
+ // The rename consumed the temp file on the success path; this only fires
77
+ // when writing or renaming threw, and must not mask the original error.
78
+ try {
79
+ fs.rmSync(temporaryPath, { force: true });
80
+ } catch {
81
+ // Best effort — a stray temp file is not worth failing a sync over.
82
+ }
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Seed `activeCompany` when — and only when — the answer is unambiguous.
88
+ *
89
+ * Never throws: the caller is a sync run whose exit code must not depend on
90
+ * local routing convenience.
91
+ */
92
+ export function seedActiveCompany(
93
+ options: SeedActiveCompanyOptions,
94
+ ): SeedActiveCompanyResult {
95
+ const slugs = Array.from(new Set(options.companySlugs.filter(isNonEmptyString)));
96
+ if (slugs.length === 0) return { written: false, skippedReason: "no-companies" };
97
+ // Two or more companies is a genuine choice and belongs to the user. Picking
98
+ // one would route them somewhere arbitrary and look like a bug.
99
+ if (slugs.length > 1) return { written: false, skippedReason: "ambiguous" };
100
+
101
+ const activeCompany = slugs[0];
102
+ const configPath = path.join(options.hqRoot, ".hq", "config.json");
103
+
104
+ let config: HqConfig = {};
105
+ let raw: string | undefined;
106
+ try {
107
+ raw = fs.readFileSync(configPath, "utf8");
108
+ } catch (err) {
109
+ if ((err as NodeJS.ErrnoException).code !== "ENOENT") {
110
+ // An unreadable config is user state we cannot reason about. Leave it.
111
+ options.reportDiagnostic?.({
112
+ event: "runner.active_company.config_unreadable",
113
+ message: "could not read .hq/config.json; activeCompany not seeded",
114
+ err,
115
+ context: { configPath },
116
+ });
117
+ return { written: false, skippedReason: "unreadable-config" };
118
+ }
119
+ }
120
+
121
+ if (raw !== undefined) {
122
+ let parsed: unknown;
123
+ try {
124
+ parsed = JSON.parse(raw);
125
+ } catch (err) {
126
+ // Malformed JSON is almost always a half-finished hand edit. Overwriting
127
+ // it would destroy whatever the user was in the middle of doing.
128
+ options.reportDiagnostic?.({
129
+ event: "runner.active_company.config_malformed",
130
+ message: ".hq/config.json is not valid JSON; left untouched",
131
+ err,
132
+ context: { configPath },
133
+ });
134
+ return { written: false, skippedReason: "unreadable-config" };
135
+ }
136
+ if (!isPlainObject(parsed)) {
137
+ options.reportDiagnostic?.({
138
+ event: "runner.active_company.config_malformed",
139
+ message: ".hq/config.json is not a JSON object; left untouched",
140
+ err: undefined,
141
+ context: { configPath },
142
+ });
143
+ return { written: false, skippedReason: "unreadable-config" };
144
+ }
145
+ config = parsed;
146
+ }
147
+
148
+ // `companySlug` counts as already-set: sync-core resolves it as the active
149
+ // company when `activeCompany` is absent, so writing `activeCompany` here
150
+ // would silently re-route a user who already had an effective answer.
151
+ if (isNonEmptyString(config.activeCompany) || isNonEmptyString(config.companySlug)) {
152
+ return { written: false, skippedReason: "already-set" };
153
+ }
154
+
155
+ try {
156
+ writeConfigAtomically(configPath, { ...config, activeCompany });
157
+ } catch (err) {
158
+ options.reportDiagnostic?.({
159
+ event: "runner.active_company.write_failed",
160
+ message: "failed to seed activeCompany in .hq/config.json",
161
+ err,
162
+ context: { configPath, activeCompany },
163
+ });
164
+ return { written: false, skippedReason: "write-failed" };
165
+ }
166
+
167
+ return { written: true, activeCompany };
168
+ }
@@ -0,0 +1,131 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+
3
+ import { buildFanoutPlan, resolveMembershipsForRun } from "./sync-runner-planning.js";
4
+ import type { VaultClientSurface } from "./sync-runner.js";
5
+
6
+ const noopStderr = { write: () => true };
7
+
8
+ function clientStub(overrides: Record<string, unknown> = {}): VaultClientSurface {
9
+ return {
10
+ entity: {
11
+ get: () => Promise.resolve(undefined),
12
+ listByType: () => Promise.resolve([]),
13
+ },
14
+ ...overrides,
15
+ } as unknown as VaultClientSurface;
16
+ }
17
+
18
+ describe("resolveMembershipsForRun — setup-needed reasons", () => {
19
+ // Each reason must come from its OWN trigger. Collapsing them back into a
20
+ // bare `setup-needed` is what left joiners unable to tell "you have no team"
21
+ // apart from "you have an invite waiting".
22
+ it("reports no-memberships when the membership list came back empty", async () => {
23
+ const result = await resolveMembershipsForRun({
24
+ personal: false,
25
+ companies: true,
26
+ client: clientStub(),
27
+ claims: null,
28
+ stderr: noopStderr,
29
+ runClaimDance: () => Promise.resolve(0),
30
+ listMemberships: () => Promise.resolve([]),
31
+ });
32
+
33
+ expect(result).toEqual({ status: "setup-needed", reason: "no-memberships" });
34
+ });
35
+
36
+ it("attaches pendingInviteCount when the claim dance left invites unconverted", async () => {
37
+ const result = await resolveMembershipsForRun({
38
+ personal: false,
39
+ companies: true,
40
+ client: clientStub(),
41
+ claims: { sub: "sub-1" } as never,
42
+ stderr: noopStderr,
43
+ runClaimDance: () => Promise.resolve(3),
44
+ listMemberships: () => Promise.resolve([]),
45
+ });
46
+
47
+ expect(result).toEqual({
48
+ status: "setup-needed",
49
+ reason: "no-memberships",
50
+ pendingInviteCount: 3,
51
+ });
52
+ });
53
+
54
+ it("omits pendingInviteCount rather than reporting zero", async () => {
55
+ const result = await resolveMembershipsForRun({
56
+ personal: false,
57
+ companies: true,
58
+ client: clientStub(),
59
+ claims: { sub: "sub-1" } as never,
60
+ stderr: noopStderr,
61
+ runClaimDance: () => Promise.resolve(0),
62
+ listMemberships: () => Promise.resolve([]),
63
+ });
64
+
65
+ expect(result).toEqual({ status: "setup-needed", reason: "no-memberships" });
66
+ expect("pendingInviteCount" in result).toBe(false);
67
+ });
68
+
69
+ it("does not report setup-needed at all when memberships exist", async () => {
70
+ const runClaimDance = vi.fn().mockResolvedValue(2);
71
+ const result = await resolveMembershipsForRun({
72
+ personal: false,
73
+ companies: true,
74
+ client: clientStub(),
75
+ claims: { sub: "sub-1" } as never,
76
+ stderr: noopStderr,
77
+ runClaimDance,
78
+ listMemberships: () => Promise.resolve([{ companyUid: "cmp_a" }]),
79
+ });
80
+
81
+ // Pending invites are only meaningful as an explanation for emptiness.
82
+ expect(result).toEqual({
83
+ status: "memberships",
84
+ memberships: [{ companyUid: "cmp_a" }],
85
+ });
86
+ });
87
+ });
88
+
89
+ describe("buildFanoutPlan — setup-needed reasons", () => {
90
+ it("reports no-person-entity when --personal has no resolvable personal target", async () => {
91
+ const result = await buildFanoutPlan({
92
+ memberships: [],
93
+ companies: false,
94
+ personal: true,
95
+ skipPersonal: false,
96
+ client: clientStub(),
97
+ claims: null,
98
+ resolveSkipPersonal: () => false,
99
+ });
100
+
101
+ expect(result).toEqual({ status: "setup-needed", reason: "no-person-entity" });
102
+ });
103
+
104
+ // A --companies run does not need a personal target to be useful, so an
105
+ // unresolvable one must not abort the whole run.
106
+ it("does not report no-person-entity for a --companies run", async () => {
107
+ const result = await buildFanoutPlan({
108
+ memberships: [{ companyUid: "cmp_a" }],
109
+ companies: true,
110
+ personal: false,
111
+ skipPersonal: false,
112
+ client: clientStub({
113
+ entity: {
114
+ get: () =>
115
+ Promise.resolve({
116
+ uid: "cmp_a",
117
+ slug: "acme",
118
+ type: "company",
119
+ status: "active",
120
+ bucketName: "bucket-a",
121
+ }),
122
+ listByType: () => Promise.resolve([]),
123
+ },
124
+ }),
125
+ claims: null,
126
+ resolveSkipPersonal: () => false,
127
+ });
128
+
129
+ expect(result.status).toBe("plan");
130
+ });
131
+ });