@indigoai-us/hq-cloud 6.11.20 → 6.12.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.
- package/dist/bin/sync-runner-company.d.ts.map +1 -1
- package/dist/bin/sync-runner-company.js +9 -11
- package/dist/bin/sync-runner-company.js.map +1 -1
- package/dist/bin/sync-runner.test.js +35 -64
- package/dist/bin/sync-runner.test.js.map +1 -1
- package/dist/cli/sync.d.ts +11 -25
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +16 -17
- package/dist/cli/sync.js.map +1 -1
- package/dist/cli/sync.test.js +40 -42
- package/dist/cli/sync.test.js.map +1 -1
- package/dist/personal-vault.d.ts +23 -24
- package/dist/personal-vault.d.ts.map +1 -1
- package/dist/personal-vault.js +38 -30
- package/dist/personal-vault.js.map +1 -1
- package/dist/personal-vault.test.d.ts +9 -6
- package/dist/personal-vault.test.d.ts.map +1 -1
- package/dist/personal-vault.test.js +90 -79
- package/dist/personal-vault.test.js.map +1 -1
- package/package.json +1 -1
- package/src/bin/sync-runner-company.ts +9 -12
- package/src/bin/sync-runner.test.ts +35 -74
- package/src/cli/sync.test.ts +40 -42
- package/src/cli/sync.ts +25 -42
- package/src/personal-vault.test.ts +91 -83
- package/src/personal-vault.ts +45 -41
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner-company.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAqB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,KAAK,EACV,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,YAAY,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;IACnD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACpC,GAAG,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"sync-runner-company.d.ts","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAqB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,KAAK,EACV,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,YAAY,EAAE,KAAK,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,kBAAkB,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;IACnD,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACpC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8S/B"}
|
|
@@ -118,7 +118,13 @@ export async function executeCompanyFanout(options) {
|
|
|
118
118
|
scopeOrphansRemoved: 0,
|
|
119
119
|
scopeOrphansBlocked: 0,
|
|
120
120
|
};
|
|
121
|
-
|
|
121
|
+
// Local (non-cloud) companies always sync to the personal vault. The
|
|
122
|
+
// only "cloud-backed" signal is membership: every non-personal target
|
|
123
|
+
// in the run plan is a company the operator has an active Membership
|
|
124
|
+
// for. Those slugs are excluded from the personal push (no double-
|
|
125
|
+
// bucketing) and decommissioned from the personal vault if a stale
|
|
126
|
+
// pre-promotion copy lingers — this is how a company "becoming
|
|
127
|
+
// cloud-true" is handled.
|
|
122
128
|
const teamSyncedSlugs = new Set(options.plan
|
|
123
129
|
.filter((p) => p.personalMode !== true)
|
|
124
130
|
.map((p) => p.slug));
|
|
@@ -128,10 +134,7 @@ export async function executeCompanyFanout(options) {
|
|
|
128
134
|
if (doPush) {
|
|
129
135
|
activePhase = "push";
|
|
130
136
|
const pushPaths = target.personalMode === true
|
|
131
|
-
? computePersonalVaultPaths(options.hqRoot, {
|
|
132
|
-
includeLocalCompanies,
|
|
133
|
-
teamSyncedSlugs,
|
|
134
|
-
})
|
|
137
|
+
? computePersonalVaultPaths(options.hqRoot, { teamSyncedSlugs })
|
|
135
138
|
: [path.join(options.hqRoot, "companies", target.slug)];
|
|
136
139
|
const decommissionPrefixes = target.personalMode === true
|
|
137
140
|
? Array.from(teamSyncedSlugs).map((slug) => `companies/${slug}`)
|
|
@@ -183,12 +186,7 @@ export async function executeCompanyFanout(options) {
|
|
|
183
186
|
...(target.journalSlug !== undefined
|
|
184
187
|
? { journalSlug: target.journalSlug }
|
|
185
188
|
: {}),
|
|
186
|
-
...(target.personalMode === true
|
|
187
|
-
? {
|
|
188
|
-
includeLocalCompanies,
|
|
189
|
-
teamSyncedSlugs,
|
|
190
|
-
}
|
|
191
|
-
: {}),
|
|
189
|
+
...(target.personalMode === true ? { teamSyncedSlugs } : {}),
|
|
192
190
|
...(options.operationLockAlreadyHeld
|
|
193
191
|
? { operationLockAlreadyHeld: true }
|
|
194
192
|
: {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-runner-company.js","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sync-runner-company.js","sourceRoot":"","sources":["../../src/bin/sync-runner-company.ts"],"names":[],"mappings":"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"}
|
|
@@ -1865,16 +1865,16 @@ describe("personal slot fanout", () => {
|
|
|
1865
1865
|
fs.rmSync(tmpHqRoot, { recursive: true, force: true });
|
|
1866
1866
|
}
|
|
1867
1867
|
});
|
|
1868
|
-
it("G: personal slot includes companies/{slug}/ subdirs
|
|
1869
|
-
//
|
|
1870
|
-
//
|
|
1871
|
-
//
|
|
1872
|
-
|
|
1868
|
+
it("G: personal slot includes local companies/{slug}/ subdirs by default, excluding _template + team-synced slugs + cloud:true markers", async () => {
|
|
1869
|
+
// Local (non-cloud) companies sync to the personal vault unconditionally
|
|
1870
|
+
// — no env-var gate. A missing/markerless company.yaml is INCLUDED; only
|
|
1871
|
+
// _template, team-synced slugs, and an explicit cloud:true marker are
|
|
1872
|
+
// excluded.
|
|
1873
1873
|
const shareSpy = vi.fn().mockResolvedValue(defaultShareResult());
|
|
1874
1874
|
const tmpHqRoot = fs.mkdtempSync(path.join(os.tmpdir(), "hq-runner-test-"));
|
|
1875
1875
|
try {
|
|
1876
1876
|
// Top-level personal-vault content — anchors the assertion that the
|
|
1877
|
-
// existing top-level walk still runs alongside the
|
|
1877
|
+
// existing top-level walk still runs alongside the company-subdir
|
|
1878
1878
|
// discovery.
|
|
1879
1879
|
fs.mkdirSync(path.join(tmpHqRoot, "knowledge"));
|
|
1880
1880
|
// companies/ subdirs covering every branch of the eligibility filter.
|
|
@@ -1886,10 +1886,10 @@ describe("personal slot fanout", () => {
|
|
|
1886
1886
|
}
|
|
1887
1887
|
};
|
|
1888
1888
|
mkCompany("free-co", "cloud: false\nname: Free Co\n"); // INCLUDED
|
|
1889
|
+
mkCompany("zilch", null); // INCLUDED — no company.yaml (default-on)
|
|
1889
1890
|
mkCompany("acme", "cloud: false\n"); // EXCLUDED — team-synced (membership below)
|
|
1890
|
-
mkCompany("_template",
|
|
1891
|
-
mkCompany("cloud-team", "cloud: true\n"); // EXCLUDED —
|
|
1892
|
-
mkCompany("zilch", null); // EXCLUDED — no company.yaml at all
|
|
1891
|
+
mkCompany("_template", null); // EXCLUDED — hard-listed slug
|
|
1892
|
+
mkCompany("cloud-team", "cloud: true\n"); // EXCLUDED — cloud-backed marker
|
|
1893
1893
|
const deps = makeDeps({
|
|
1894
1894
|
createVaultClient: () => makeVaultStub({
|
|
1895
1895
|
memberships: [{ companyUid: "cmp_a" }],
|
|
@@ -1909,16 +1909,16 @@ describe("personal slot fanout", () => {
|
|
|
1909
1909
|
const rel = personalArgs.paths
|
|
1910
1910
|
.map((p) => path.relative(tmpHqRoot, p))
|
|
1911
1911
|
.sort();
|
|
1912
|
-
// free-co MUST be present (
|
|
1912
|
+
// free-co + zilch MUST be present (local, no membership, not _template).
|
|
1913
1913
|
expect(rel).toContain(path.join("companies", "free-co"));
|
|
1914
|
+
expect(rel).toContain(path.join("companies", "zilch"));
|
|
1914
1915
|
// knowledge/ MUST still be present (top-level walk unchanged).
|
|
1915
1916
|
expect(rel).toContain("knowledge");
|
|
1916
|
-
//
|
|
1917
|
+
// Excluded companies MUST be filtered out.
|
|
1917
1918
|
for (const forbidden of [
|
|
1918
1919
|
path.join("companies", "acme"), // team-synced — goes to cmp_a's bucket
|
|
1919
1920
|
path.join("companies", "_template"), // hard-listed
|
|
1920
|
-
path.join("companies", "cloud-team"), // cloud:true
|
|
1921
|
-
path.join("companies", "zilch"), // no marker
|
|
1921
|
+
path.join("companies", "cloud-team"), // cloud:true marker
|
|
1922
1922
|
]) {
|
|
1923
1923
|
expect(rel).not.toContain(forbidden);
|
|
1924
1924
|
}
|
|
@@ -1939,21 +1939,20 @@ describe("personal slot fanout", () => {
|
|
|
1939
1939
|
vi.unstubAllEnvs();
|
|
1940
1940
|
}
|
|
1941
1941
|
});
|
|
1942
|
-
it("H:
|
|
1943
|
-
//
|
|
1944
|
-
//
|
|
1945
|
-
//
|
|
1946
|
-
//
|
|
1947
|
-
// an earlier test bleeds into this one.
|
|
1942
|
+
it("H: local company subdirs are added with NO env var set — inclusion is unconditional (no gate)", async () => {
|
|
1943
|
+
// Regression guard against re-introducing a gate. The old behavior
|
|
1944
|
+
// required HQ_SYNC_LOCAL_COMPANIES_TO_PERSONAL=1; that gate is removed.
|
|
1945
|
+
// With the env var explicitly unset, a markerless local company MUST
|
|
1946
|
+
// still be pushed to the personal vault. Defensive `unstub` in case a
|
|
1947
|
+
// leaked stub from an earlier test bleeds into this one.
|
|
1948
1948
|
vi.unstubAllEnvs();
|
|
1949
1949
|
const shareSpy = vi.fn().mockResolvedValue(defaultShareResult());
|
|
1950
1950
|
const tmpHqRoot = fs.mkdtempSync(path.join(os.tmpdir(), "hq-runner-test-"));
|
|
1951
1951
|
try {
|
|
1952
1952
|
fs.mkdirSync(path.join(tmpHqRoot, "knowledge"));
|
|
1953
|
-
//
|
|
1953
|
+
// A markerless local company — must appear even with no env var.
|
|
1954
1954
|
const dir = path.join(tmpHqRoot, "companies", "free-co");
|
|
1955
1955
|
fs.mkdirSync(dir, { recursive: true });
|
|
1956
|
-
fs.writeFileSync(path.join(dir, "company.yaml"), "cloud: false\n");
|
|
1957
1956
|
const deps = makeDeps({
|
|
1958
1957
|
createVaultClient: () => makeVaultStub({
|
|
1959
1958
|
memberships: [{ companyUid: "cmp_a" }],
|
|
@@ -1969,9 +1968,9 @@ describe("personal slot fanout", () => {
|
|
|
1969
1968
|
const rel = personalCall[0].paths
|
|
1970
1969
|
.map((p) => path.relative(tmpHqRoot, p))
|
|
1971
1970
|
.sort();
|
|
1972
|
-
// free-co
|
|
1973
|
-
expect(rel).
|
|
1974
|
-
// knowledge/ must still appear — the
|
|
1971
|
+
// free-co MUST appear — inclusion is unconditional, no env gate.
|
|
1972
|
+
expect(rel).toContain(path.join("companies", "free-co"));
|
|
1973
|
+
// knowledge/ must still appear — the top-level walk is unchanged.
|
|
1975
1974
|
expect(rel).toContain("knowledge");
|
|
1976
1975
|
}
|
|
1977
1976
|
finally {
|
|
@@ -2027,17 +2026,16 @@ describe("personal slot fanout", () => {
|
|
|
2027
2026
|
fs.rmSync(tmpHqRoot, { recursive: true, force: true });
|
|
2028
2027
|
}
|
|
2029
2028
|
});
|
|
2030
|
-
it("J: personal slot's syncFn (pull) receives
|
|
2029
|
+
it("J: personal slot's syncFn (pull) receives teamSyncedSlugs; company slots receive none", async () => {
|
|
2031
2030
|
// Symmetric to test I (push-side decommissionPrefixes). The pull side
|
|
2032
|
-
// needs the
|
|
2033
|
-
//
|
|
2034
|
-
//
|
|
2035
|
-
//
|
|
2036
|
-
// side decommission hasn't run (e.g. pull-only mode)
|
|
2031
|
+
// needs the team-synced slug set to drop `companies/{team-synced-slug}/...`
|
|
2032
|
+
// orphans even when push-side decommission hasn't run (e.g. pull-only
|
|
2033
|
+
// mode). There is no longer an includeLocalCompanies gate — inclusion is
|
|
2034
|
+
// unconditional.
|
|
2037
2035
|
//
|
|
2038
2036
|
// Default direction for runRunner is "pull" so this test exercises
|
|
2039
2037
|
// the pull call without needing --direction.
|
|
2040
|
-
vi.
|
|
2038
|
+
vi.unstubAllEnvs();
|
|
2041
2039
|
const syncSpy = vi.fn().mockResolvedValue(defaultSyncResult());
|
|
2042
2040
|
try {
|
|
2043
2041
|
const deps = makeDeps({
|
|
@@ -2056,20 +2054,19 @@ describe("personal slot fanout", () => {
|
|
|
2056
2054
|
});
|
|
2057
2055
|
const code = await runRunner(["--companies"], deps);
|
|
2058
2056
|
expect(code).toBe(0);
|
|
2059
|
-
// Personal slot:
|
|
2060
|
-
// slug set
|
|
2057
|
+
// Personal slot: teamSyncedSlugs present, populated with the team-synced
|
|
2058
|
+
// slug set. No includeLocalCompanies key (the gate is gone).
|
|
2061
2059
|
const personalCall = syncSpy.mock.calls.find((c) => c[0].company?.startsWith("prs_"));
|
|
2062
2060
|
expect(personalCall).toBeDefined();
|
|
2063
2061
|
const personalArgs = personalCall[0];
|
|
2064
|
-
expect(personalArgs
|
|
2062
|
+
expect(Object.keys(personalArgs)).not.toContain("includeLocalCompanies");
|
|
2065
2063
|
expect(Array.from(personalArgs.teamSyncedSlugs ?? []).sort()).toEqual([
|
|
2066
2064
|
"acme",
|
|
2067
2065
|
"beta",
|
|
2068
2066
|
]);
|
|
2069
|
-
// Company slots:
|
|
2070
|
-
// company-target args stay identical
|
|
2071
|
-
//
|
|
2072
|
-
// decommissionPrefixes pin).
|
|
2067
|
+
// Company slots: no teamSyncedSlugs key (preserves the contract that
|
|
2068
|
+
// company-target args stay identical — symmetric to test C's
|
|
2069
|
+
// personalMode/journalSlug pin and test I's decommissionPrefixes pin).
|
|
2073
2070
|
const companyCalls = syncSpy.mock.calls.filter((c) => c[0].company?.startsWith("cmp_"));
|
|
2074
2071
|
expect(companyCalls.length).toBeGreaterThan(0);
|
|
2075
2072
|
for (const [args] of companyCalls) {
|
|
@@ -2081,32 +2078,6 @@ describe("personal slot fanout", () => {
|
|
|
2081
2078
|
vi.unstubAllEnvs();
|
|
2082
2079
|
}
|
|
2083
2080
|
});
|
|
2084
|
-
it("K: personal slot's syncFn (pull) sets includeLocalCompanies=false when env var is unset — pull stays in legacy shape", async () => {
|
|
2085
|
-
// Symmetric to test H (env-var-OFF case for push). Without the gate,
|
|
2086
|
-
// the pull side preserves the pre-5.20 "drop all companies/... keys"
|
|
2087
|
-
// contract regardless of what's actually in the personal bucket.
|
|
2088
|
-
// Defensive unstub in case a previous test leaked a stub.
|
|
2089
|
-
vi.unstubAllEnvs();
|
|
2090
|
-
const syncSpy = vi.fn().mockResolvedValue(defaultSyncResult());
|
|
2091
|
-
const deps = makeDeps({
|
|
2092
|
-
createVaultClient: () => makeVaultStub({
|
|
2093
|
-
memberships: [{ companyUid: "cmp_a" }],
|
|
2094
|
-
entityGet: (uid) => Promise.resolve({ uid, slug: "acme" }),
|
|
2095
|
-
listPersons: () => Promise.resolve([olderPerson]),
|
|
2096
|
-
}),
|
|
2097
|
-
sync: syncSpy,
|
|
2098
|
-
});
|
|
2099
|
-
const code = await runRunner(["--companies"], deps);
|
|
2100
|
-
expect(code).toBe(0);
|
|
2101
|
-
const personalCall = syncSpy.mock.calls.find((c) => c[0].company?.startsWith("prs_"));
|
|
2102
|
-
expect(personalCall).toBeDefined();
|
|
2103
|
-
const personalArgs = personalCall[0];
|
|
2104
|
-
// Explicitly false — not "undefined" — because the runner always
|
|
2105
|
-
// computes the value from the env var, then spreads it for the
|
|
2106
|
-
// personal slot regardless of the value (allows downstream to know
|
|
2107
|
-
// the gate was evaluated, not just "caller forgot to set it").
|
|
2108
|
-
expect(personalArgs.includeLocalCompanies).toBe(false);
|
|
2109
|
-
});
|
|
2110
2081
|
it("F: shareFn paths for company slots stay [hqRoot/companies/{slug}] with no personalMode/journalSlug keys", async () => {
|
|
2111
2082
|
const shareSpy = vi.fn().mockResolvedValue(defaultShareResult());
|
|
2112
2083
|
const tmpHqRoot = fs.mkdtempSync(path.join(os.tmpdir(), "hq-runner-test-"));
|