create-hq 10.12.4-beta.0 → 10.12.5
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/__tests__/fetch-template.test.d.ts +2 -0
- package/dist/__tests__/fetch-template.test.d.ts.map +1 -0
- package/dist/__tests__/fetch-template.test.js +103 -0
- package/dist/__tests__/fetch-template.test.js.map +1 -0
- package/dist/__tests__/recommended-packages.test.js +107 -1
- package/dist/__tests__/recommended-packages.test.js.map +1 -1
- package/dist/fetch-template.d.ts +14 -0
- package/dist/fetch-template.d.ts.map +1 -1
- package/dist/fetch-template.js +72 -10
- package/dist/fetch-template.js.map +1 -1
- package/dist/recommended-packages.d.ts +52 -0
- package/dist/recommended-packages.d.ts.map +1 -1
- package/dist/recommended-packages.js +44 -2
- package/dist/recommended-packages.js.map +1 -1
- package/dist/scaffold.js +24 -4
- package/dist/scaffold.js.map +1 -1
- package/package.json +6 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-template.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/fetch-template.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import fs from "fs-extra";
|
|
3
|
+
import * as path from "path";
|
|
4
|
+
import * as os from "os";
|
|
5
|
+
import { extractTemplateDirFromTar } from "../fetch-template.js";
|
|
6
|
+
/**
|
|
7
|
+
* CREATE-HQ-2 regression coverage for the Windows extraction path.
|
|
8
|
+
*
|
|
9
|
+
* On Windows, `tar` exits non-zero when it cannot create the
|
|
10
|
+
* `core/.agents/skills -> ../.claude/skills` symlink entry (no Developer
|
|
11
|
+
* Mode / admin), even though every REAL file extracted fine. The extractor
|
|
12
|
+
* must NOT treat that as a fatal fetch-fail — `hq reindex` regenerates the
|
|
13
|
+
* symlink on first run. These tests inject a `runTar` that reproduces that
|
|
14
|
+
* behavior without a real `tar` binary.
|
|
15
|
+
*/
|
|
16
|
+
let targetDir;
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
targetDir = await fs.mkdtemp(path.join(os.tmpdir(), "create-hq-test-target-"));
|
|
19
|
+
});
|
|
20
|
+
afterEach(async () => {
|
|
21
|
+
await fs.remove(targetDir);
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Build a `runTar` that populates `dest` with a realistic hq-core tarball root
|
|
25
|
+
* (real files + `core/core.yaml`), but — if `failAfter` is set — throws a
|
|
26
|
+
* tar-style symlink error AFTER writing the real files, exactly like Windows.
|
|
27
|
+
*/
|
|
28
|
+
function makeRunTar(opts) {
|
|
29
|
+
const rootName = opts.rootName ?? "indigoai-us-hq-core-deadbeef";
|
|
30
|
+
return async (_tarPath, dest) => {
|
|
31
|
+
const root = path.join(dest, rootName);
|
|
32
|
+
// Real files always extract.
|
|
33
|
+
await fs.ensureDir(path.join(root, "core"));
|
|
34
|
+
await fs.writeFile(path.join(root, "README.md"), "# HQ\n");
|
|
35
|
+
await fs.writeFile(path.join(root, "core", "scaffold.txt"), "real scaffold file\n");
|
|
36
|
+
if (opts.coreYamlUnder === "core") {
|
|
37
|
+
await fs.writeFile(path.join(root, "core", "core.yaml"), "version: 1\nhqVersion: 14.0.0\n");
|
|
38
|
+
}
|
|
39
|
+
else if (opts.coreYamlUnder === "root") {
|
|
40
|
+
await fs.writeFile(path.join(root, "core.yaml"), "version: 1\nhqVersion: 13.0.0\n");
|
|
41
|
+
}
|
|
42
|
+
// The .agents/skills symlink is the entry tar fails on under Windows — we
|
|
43
|
+
// simply DON'T create it, then throw to mimic the non-zero exit.
|
|
44
|
+
if (opts.failWith) {
|
|
45
|
+
throw new Error(opts.failWith);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const WINDOWS_TAR_SYMLINK_ERROR = "tar: core/.agents/skills: Cannot create symlink to '../.claude/skills': A required privilege is not held by the client";
|
|
50
|
+
describe("extractTemplateDirFromTar — Windows symlink tolerance (CREATE-HQ-2)", () => {
|
|
51
|
+
it("succeeds when tar exits non-zero on the symlink entry but real files extracted (v14 core/ layout)", async () => {
|
|
52
|
+
const runTar = makeRunTar({
|
|
53
|
+
coreYamlUnder: "core",
|
|
54
|
+
failWith: WINDOWS_TAR_SYMLINK_ERROR,
|
|
55
|
+
});
|
|
56
|
+
await expect(extractTemplateDirFromTar("/tmp/ignored.tgz", targetDir, undefined, {
|
|
57
|
+
runTar,
|
|
58
|
+
})).resolves.toBeUndefined();
|
|
59
|
+
// The real scaffold landed in the target despite the tar symlink failure.
|
|
60
|
+
expect(await fs.pathExists(path.join(targetDir, "core", "core.yaml"))).toBe(true);
|
|
61
|
+
expect(await fs.pathExists(path.join(targetDir, "core", "scaffold.txt"))).toBe(true);
|
|
62
|
+
expect(await fs.pathExists(path.join(targetDir, "README.md"))).toBe(true);
|
|
63
|
+
// The symlink entry was skipped — reindex regenerates it; it must NOT be a
|
|
64
|
+
// fatal install failure.
|
|
65
|
+
expect(await fs.pathExists(path.join(targetDir, "core", ".agents"))).toBe(false);
|
|
66
|
+
});
|
|
67
|
+
it("tolerates the tar symlink failure for the pre-v14 root-level core.yaml layout too", async () => {
|
|
68
|
+
const runTar = makeRunTar({
|
|
69
|
+
coreYamlUnder: "root",
|
|
70
|
+
failWith: WINDOWS_TAR_SYMLINK_ERROR,
|
|
71
|
+
});
|
|
72
|
+
await expect(extractTemplateDirFromTar("/tmp/ignored.tgz", targetDir, undefined, {
|
|
73
|
+
runTar,
|
|
74
|
+
})).resolves.toBeUndefined();
|
|
75
|
+
expect(await fs.pathExists(path.join(targetDir, "core.yaml"))).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
it("still throws (with the tar error) when extraction truly produced no core.yaml", async () => {
|
|
78
|
+
const runTar = makeRunTar({
|
|
79
|
+
coreYamlUnder: "none",
|
|
80
|
+
failWith: WINDOWS_TAR_SYMLINK_ERROR,
|
|
81
|
+
});
|
|
82
|
+
await expect(extractTemplateDirFromTar("/tmp/ignored.tgz", targetDir, undefined, {
|
|
83
|
+
runTar,
|
|
84
|
+
})).rejects.toThrow(/core\.yaml not found after extraction/);
|
|
85
|
+
});
|
|
86
|
+
it("surfaces the tar error when nothing extracted at all", async () => {
|
|
87
|
+
const runTar = async () => {
|
|
88
|
+
throw new Error("tar: unrecognized archive format");
|
|
89
|
+
};
|
|
90
|
+
await expect(extractTemplateDirFromTar("/tmp/ignored.tgz", targetDir, undefined, {
|
|
91
|
+
runTar,
|
|
92
|
+
})).rejects.toThrow(/Tarball extraction failed: tar: unrecognized archive format/);
|
|
93
|
+
});
|
|
94
|
+
it("happy path: tar succeeds cleanly and the scaffold is copied", async () => {
|
|
95
|
+
const runTar = makeRunTar({ coreYamlUnder: "core", failWith: null });
|
|
96
|
+
await extractTemplateDirFromTar("/tmp/ignored.tgz", targetDir, undefined, {
|
|
97
|
+
runTar,
|
|
98
|
+
});
|
|
99
|
+
expect(await fs.pathExists(path.join(targetDir, "core", "core.yaml"))).toBe(true);
|
|
100
|
+
expect(await fs.pathExists(path.join(targetDir, "README.md"))).toBe(true);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=fetch-template.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-template.test.js","sourceRoot":"","sources":["../../src/__tests__/fetch-template.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;;;;;;GASG;AAEH,IAAI,SAAiB,CAAC;AAEtB,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,UAAU,CAAC,IAInB;IACC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,8BAA8B,CAAC;IACjE,OAAO,KAAK,EAAE,QAAgB,EAAE,IAAY,EAAiB,EAAE;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,6BAA6B;QAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,EACvC,sBAAsB,CACvB,CAAC;QACF,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EACpC,iCAAiC,CAClC,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;YACzC,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAC5B,iCAAiC,CAClC,CAAC;QACJ,CAAC;QACD,0EAA0E;QAC1E,iEAAiE;QACjE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,yBAAyB,GAC7B,wHAAwH,CAAC;AAE3H,QAAQ,CAAC,qEAAqE,EAAE,GAAG,EAAE;IACnF,EAAE,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;QACjH,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,yBAAyB;SACpC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,yBAAyB,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE;YAClE,MAAM;SACP,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAE3B,0EAA0E;QAC1E,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CACzE,IAAI,CACL,CAAC;QACF,MAAM,CACJ,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAClE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1E,2EAA2E;QAC3E,yBAAyB;QACzB,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CACvE,KAAK,CACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,yBAAyB;SACpC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,yBAAyB,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE;YAClE,MAAM;SACP,CAAC,CACH,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,aAAa,EAAE,MAAM;YACrB,QAAQ,EAAE,yBAAyB;SACpC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,yBAAyB,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE;YAClE,MAAM;SACP,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,MAAM,MAAM,CACV,yBAAyB,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE;YAClE,MAAM;SACP,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAErE,MAAM,yBAAyB,CAAC,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE;YACxE,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CACzE,IAAI,CACL,CAAC;QACF,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -19,7 +19,7 @@ import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
|
19
19
|
import * as fs from "fs";
|
|
20
20
|
import * as os from "os";
|
|
21
21
|
import * as path from "path";
|
|
22
|
-
import { readInstalledPackSources } from "../recommended-packages.js";
|
|
22
|
+
import { readInstalledPackSources, readRecommendedPackages, resolveCoreYamlPath, preflightRecommendedPacks, } from "../recommended-packages.js";
|
|
23
23
|
function mkTmpHq() {
|
|
24
24
|
return fs.mkdtempSync(path.join(os.tmpdir(), "create-hq-pkg-discovery-"));
|
|
25
25
|
}
|
|
@@ -107,4 +107,110 @@ describe("readInstalledPackSources (v12 filesystem layout)", () => {
|
|
|
107
107
|
expect(sources.size).toBe(0);
|
|
108
108
|
});
|
|
109
109
|
});
|
|
110
|
+
// ---------------------------------------------------------------------------
|
|
111
|
+
// core.yaml location resolution + preflight
|
|
112
|
+
//
|
|
113
|
+
// Regression coverage for the silent no-op bug: create-hq read
|
|
114
|
+
// recommended_packages from `<target>/core.yaml`, but hq-core@v14+ keeps the
|
|
115
|
+
// list at `<target>/core/core.yaml`. The path mismatch yielded an empty list,
|
|
116
|
+
// so `--full` installed zero packs and reported success with no warning.
|
|
117
|
+
// ---------------------------------------------------------------------------
|
|
118
|
+
const CORE_YAML_WITH_PACKS = [
|
|
119
|
+
"version: '1'",
|
|
120
|
+
"recommended_packages:",
|
|
121
|
+
" - source: '@indigoai-us/hq-pack-design-styles'",
|
|
122
|
+
" description: 'Curated style packs'",
|
|
123
|
+
" - source: '@indigoai-us/hq-pack-engineering'",
|
|
124
|
+
" description: 'Engineering workers'",
|
|
125
|
+
" conditional: 'true'",
|
|
126
|
+
"",
|
|
127
|
+
"other_top_level: value",
|
|
128
|
+
"",
|
|
129
|
+
].join("\n");
|
|
130
|
+
function seedCoreYaml(hqRoot, rel, body) {
|
|
131
|
+
const file = path.join(hqRoot, rel);
|
|
132
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
133
|
+
fs.writeFileSync(file, body);
|
|
134
|
+
}
|
|
135
|
+
describe("resolveCoreYamlPath / readRecommendedPackages (core.yaml location)", () => {
|
|
136
|
+
let hqRoot;
|
|
137
|
+
beforeEach(() => {
|
|
138
|
+
hqRoot = fs.mkdtempSync(path.join(os.tmpdir(), "create-hq-coreyaml-"));
|
|
139
|
+
});
|
|
140
|
+
afterEach(() => {
|
|
141
|
+
fs.rmSync(hqRoot, { recursive: true, force: true });
|
|
142
|
+
});
|
|
143
|
+
it("resolves the nested core/core.yaml used by current hq-core (v14+)", () => {
|
|
144
|
+
seedCoreYaml(hqRoot, path.join("core", "core.yaml"), CORE_YAML_WITH_PACKS);
|
|
145
|
+
expect(resolveCoreYamlPath(hqRoot)).toBe(path.join(hqRoot, "core", "core.yaml"));
|
|
146
|
+
});
|
|
147
|
+
it("falls back to the legacy root core.yaml for pre-v14 templates", () => {
|
|
148
|
+
seedCoreYaml(hqRoot, "core.yaml", CORE_YAML_WITH_PACKS);
|
|
149
|
+
expect(resolveCoreYamlPath(hqRoot)).toBe(path.join(hqRoot, "core.yaml"));
|
|
150
|
+
});
|
|
151
|
+
it("prefers nested core/core.yaml over the legacy root when both exist", () => {
|
|
152
|
+
seedCoreYaml(hqRoot, "core.yaml", "recommended_packages:\n - source: 'legacy/pack'\n");
|
|
153
|
+
seedCoreYaml(hqRoot, path.join("core", "core.yaml"), CORE_YAML_WITH_PACKS);
|
|
154
|
+
expect(resolveCoreYamlPath(hqRoot)).toBe(path.join(hqRoot, "core", "core.yaml"));
|
|
155
|
+
const entries = readRecommendedPackages(hqRoot);
|
|
156
|
+
expect(entries.map((e) => e.source)).toEqual([
|
|
157
|
+
"@indigoai-us/hq-pack-design-styles",
|
|
158
|
+
"@indigoai-us/hq-pack-engineering",
|
|
159
|
+
]);
|
|
160
|
+
});
|
|
161
|
+
it("returns null when neither core/core.yaml nor root core.yaml exists", () => {
|
|
162
|
+
expect(resolveCoreYamlPath(hqRoot)).toBeNull();
|
|
163
|
+
expect(readRecommendedPackages(hqRoot)).toEqual([]);
|
|
164
|
+
});
|
|
165
|
+
it("REGRESSION: reads recommended packs from core/core.yaml (was silently empty)", () => {
|
|
166
|
+
// Mirrors the reported failure: a current hq-core scaffold keeps the list
|
|
167
|
+
// under core/. Old code read <target>/core.yaml and returned [], so --full
|
|
168
|
+
// installed nothing. New code must recover the full list.
|
|
169
|
+
seedCoreYaml(hqRoot, path.join("core", "core.yaml"), CORE_YAML_WITH_PACKS);
|
|
170
|
+
const entries = readRecommendedPackages(hqRoot);
|
|
171
|
+
expect(entries.length).toBe(2);
|
|
172
|
+
expect(entries[0]).toMatchObject({
|
|
173
|
+
source: "@indigoai-us/hq-pack-design-styles",
|
|
174
|
+
description: "Curated style packs",
|
|
175
|
+
});
|
|
176
|
+
expect(entries[1]).toMatchObject({
|
|
177
|
+
source: "@indigoai-us/hq-pack-engineering",
|
|
178
|
+
conditional: "true",
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
describe("preflightRecommendedPacks (loud on empty / missing)", () => {
|
|
183
|
+
let hqRoot;
|
|
184
|
+
beforeEach(() => {
|
|
185
|
+
hqRoot = fs.mkdtempSync(path.join(os.tmpdir(), "create-hq-preflight-"));
|
|
186
|
+
});
|
|
187
|
+
afterEach(() => {
|
|
188
|
+
fs.rmSync(hqRoot, { recursive: true, force: true });
|
|
189
|
+
});
|
|
190
|
+
it("proceeds with the parsed entries when core/core.yaml declares packs", () => {
|
|
191
|
+
seedCoreYaml(hqRoot, path.join("core", "core.yaml"), CORE_YAML_WITH_PACKS);
|
|
192
|
+
const result = preflightRecommendedPacks(hqRoot, true);
|
|
193
|
+
expect(result.kind).toBe("proceed");
|
|
194
|
+
if (result.kind === "proceed") {
|
|
195
|
+
expect(result.entries.map((e) => e.source)).toEqual([
|
|
196
|
+
"@indigoai-us/hq-pack-design-styles",
|
|
197
|
+
"@indigoai-us/hq-pack-engineering",
|
|
198
|
+
]);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
it("flags core-yaml-missing (not a silent no-op) when no core.yaml exists", () => {
|
|
202
|
+
// --full asked for packs but the scaffold has no core.yaml at all. This is
|
|
203
|
+
// the exact silent-success case: surface it as a distinct, loud state.
|
|
204
|
+
expect(preflightRecommendedPacks(hqRoot, true).kind).toBe("core-yaml-missing");
|
|
205
|
+
expect(preflightRecommendedPacks(hqRoot, false).kind).toBe("core-yaml-missing");
|
|
206
|
+
});
|
|
207
|
+
it("warns under --full when core.yaml resolves but declares no packs", () => {
|
|
208
|
+
seedCoreYaml(hqRoot, path.join("core", "core.yaml"), "version: '1'\nother: value\n");
|
|
209
|
+
expect(preflightRecommendedPacks(hqRoot, true).kind).toBe("empty-warn");
|
|
210
|
+
});
|
|
211
|
+
it("stays quiet (empty-quiet) on an empty list without --full", () => {
|
|
212
|
+
seedCoreYaml(hqRoot, path.join("core", "core.yaml"), "version: '1'\nother: value\n");
|
|
213
|
+
expect(preflightRecommendedPacks(hqRoot, false).kind).toBe("empty-quiet");
|
|
214
|
+
});
|
|
215
|
+
});
|
|
110
216
|
//# sourceMappingURL=recommended-packages.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommended-packages.test.js","sourceRoot":"","sources":["../../src/__tests__/recommended-packages.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"recommended-packages.test.js","sourceRoot":"","sources":["../../src/__tests__/recommended-packages.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AAEpC,SAAS,OAAO;IACd,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,QAAQ,CACf,MAAc,EACd,IAAY,EACZ,MAA8B;IAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACxD,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,EAAE,CAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,QAAQ,CAAC,MAAM,EAAE,wBAAwB,EAAE;YACzC,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,EAAE;YACjC,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,gBAAgB;SAC5B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE;YAChC,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,OAAO;YAChB,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,0DAA0D;QAC1D,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QACpE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,yEAAyE;QACzE,wCAAwC;QACxC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAExF,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,oEAAoE;QACpE,oEAAoE;QACpE,oEAAoE;QACpE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,EAC5C;YACE,cAAc;YACd,UAAU;YACV,yBAAyB;YACzB,uBAAuB;YACvB,0CAA0C;YAC1C,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAEF,MAAM,OAAO,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,4CAA4C;AAC5C,EAAE;AACF,+DAA+D;AAC/D,6EAA6E;AAC7E,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,oBAAoB,GAAG;IAC3B,cAAc;IACd,uBAAuB;IACvB,kDAAkD;IAClD,wCAAwC;IACxC,gDAAgD;IAChD,wCAAwC;IACxC,yBAAyB;IACzB,EAAE;IACF,wBAAwB;IACxB,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,YAAY,CAAC,MAAc,EAAE,GAAW,EAAE,IAAY;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,QAAQ,CAAC,oEAAoE,EAAE,GAAG,EAAE;IAClF,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC3E,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,oDAAoD,CAAC,CAAC;QACxF,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC3E,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3C,oCAAoC;YACpC,kCAAkC;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;QACtF,0EAA0E;QAC1E,2EAA2E;QAC3E,0DAA0D;QAC1D,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC/B,MAAM,EAAE,oCAAoC;YAC5C,WAAW,EAAE,qBAAqB;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC/B,MAAM,EAAE,kCAAkC;YAC1C,WAAW,EAAE,MAAM;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qDAAqD,EAAE,GAAG,EAAE;IACnE,IAAI,MAAc,CAAC;IAEnB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBAClD,oCAAoC;gBACpC,kCAAkC;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC/E,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACrF,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,8BAA8B,CAAC,CAAC;QACrF,MAAM,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/fetch-template.d.ts
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injectable seam for the tar extraction step so the Windows symlink-failure
|
|
3
|
+
* path is unit-testable without a real `tar` binary.
|
|
4
|
+
*/
|
|
5
|
+
export interface ExtractDeps {
|
|
6
|
+
/**
|
|
7
|
+
* Extract `tarPath` into `dest`. May reject with a non-zero exit even when
|
|
8
|
+
* every real file extracted (e.g. `tar` on Windows cannot create the
|
|
9
|
+
* `core/.agents/skills` symlink entry without Developer Mode) — callers MUST
|
|
10
|
+
* validate extracted content rather than trust the exit code.
|
|
11
|
+
*/
|
|
12
|
+
runTar?: (tarPath: string, dest: string) => Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare function extractTemplateDirFromTar(tarPath: string, targetDir: string, onProgress?: (phase: string) => void, deps?: ExtractDeps): Promise<void>;
|
|
1
15
|
/**
|
|
2
16
|
* Fetch the hq-core scaffold from GitHub and extract it into targetDir.
|
|
3
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-template.d.ts","sourceRoot":"","sources":["../src/fetch-template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch-template.d.ts","sourceRoot":"","sources":["../src/fetch-template.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AA4ID,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EACpC,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CA2Df;AAwBD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC9B"}
|
package/dist/fetch-template.js
CHANGED
|
@@ -1,11 +1,50 @@
|
|
|
1
1
|
import fs from "fs-extra";
|
|
2
2
|
import * as path from "path";
|
|
3
3
|
import * as os from "os";
|
|
4
|
-
import { exec } from "child_process";
|
|
4
|
+
import { exec, spawn } from "child_process";
|
|
5
5
|
import { promisify } from "util";
|
|
6
6
|
import { buildClientHeaders } from "@indigoai-us/hq-cloud";
|
|
7
7
|
import { CREATE_HQ_CLIENT_INFO } from "./client-info.js";
|
|
8
8
|
const execAsync = promisify(exec);
|
|
9
|
+
function errMessage(err) {
|
|
10
|
+
return err instanceof Error ? err.message : String(err);
|
|
11
|
+
}
|
|
12
|
+
async function defaultRunTar(tarPath, dest) {
|
|
13
|
+
await execAsync(`tar -xzf "${tarPath}" -C "${dest}"`);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Run `gh api <path>` and stream its (binary) stdout to `outPath`.
|
|
17
|
+
*
|
|
18
|
+
* Uses `spawn` WITHOUT a shell, so there is no `/bin/sh` dependency (which
|
|
19
|
+
* ENOENTs on Windows) and no shell redirect to interpret. `gh` ships as
|
|
20
|
+
* `gh.exe` on Windows, which `spawn` resolves directly. A missing `gh` binary
|
|
21
|
+
* surfaces as the spawn `error` event (rejected) on every platform.
|
|
22
|
+
*/
|
|
23
|
+
function ghApiToFile(apiPath, outPath) {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
const out = fs.createWriteStream(outPath);
|
|
26
|
+
out.on("error", reject);
|
|
27
|
+
const child = spawn("gh", ["api", apiPath], {
|
|
28
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
29
|
+
});
|
|
30
|
+
let stderr = "";
|
|
31
|
+
child.stderr.on("data", (chunk) => {
|
|
32
|
+
stderr += chunk.toString();
|
|
33
|
+
});
|
|
34
|
+
child.on("error", reject);
|
|
35
|
+
child.stdout.pipe(out);
|
|
36
|
+
child.on("close", (code) => {
|
|
37
|
+
out.end(() => {
|
|
38
|
+
if (code === 0) {
|
|
39
|
+
resolve();
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
reject(new Error(`gh api exited with code ${code}${stderr ? `: ${stderr.trim()}` : ""}`));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
9
48
|
// Pre-computed at module load — GitHub requires a User-Agent header (otherwise
|
|
10
49
|
// requests are rejected from anonymous clients), and stamping the create-hq
|
|
11
50
|
// version makes our own rate-limit usage attributable in GitHub's API logs.
|
|
@@ -90,28 +129,50 @@ async function downloadAndExtractViaApi(tarballUrl, targetDir, onProgress) {
|
|
|
90
129
|
await fs.remove(tmpDir);
|
|
91
130
|
}
|
|
92
131
|
}
|
|
93
|
-
async function extractTemplateDirFromTar(tarPath, targetDir, onProgress) {
|
|
132
|
+
export async function extractTemplateDirFromTar(tarPath, targetDir, onProgress, deps = {}) {
|
|
94
133
|
// The tarball contains a top-level directory like `indigoai-us-hq-core-<sha>/`.
|
|
95
134
|
// The hq-core repo IS the scaffold — every file in it becomes part of the
|
|
96
135
|
// new HQ instance. Copy the entire root directory's contents (not a subdir).
|
|
136
|
+
const runTar = deps.runTar ?? defaultRunTar;
|
|
97
137
|
const tmpExtract = await fs.mkdtemp(path.join(os.tmpdir(), "create-hq-extract-"));
|
|
98
138
|
try {
|
|
99
|
-
// Extract the full tarball to a temp location
|
|
100
|
-
|
|
139
|
+
// Extract the full tarball to a temp location. `tar` can exit NON-ZERO on
|
|
140
|
+
// Windows when it cannot create a symlink entry it does not have rights for
|
|
141
|
+
// — hq-core ships `core/.agents/skills -> ../.claude/skills`, and creating a
|
|
142
|
+
// symlink on Windows needs Developer Mode or admin. Crucially, every *real*
|
|
143
|
+
// file still extracts; only the symlink entry is skipped, and `hq reindex`
|
|
144
|
+
// regenerates that symlink on first run. So a `tar` failure is NOT
|
|
145
|
+
// authoritative here — we capture it and let the content validation below be
|
|
146
|
+
// the source of truth (CREATE-HQ-2).
|
|
147
|
+
let tarError = null;
|
|
148
|
+
try {
|
|
149
|
+
await runTar(tarPath, tmpExtract);
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
tarError = err;
|
|
153
|
+
}
|
|
101
154
|
// Find the top-level directory created by GitHub's tarball
|
|
102
155
|
const entries = await fs.readdir(tmpExtract);
|
|
103
156
|
if (entries.length === 0) {
|
|
104
|
-
|
|
157
|
+
// Nothing extracted at all — now the tar failure (if any) IS the cause.
|
|
158
|
+
throw new Error(tarError
|
|
159
|
+
? `Tarball extraction failed: ${errMessage(tarError)}`
|
|
160
|
+
: "Tarball was empty");
|
|
105
161
|
}
|
|
106
162
|
const rootDir = path.join(tmpExtract, entries[0]);
|
|
107
163
|
// Sanity check — hq-core@v14+ carries core.yaml under core/. (Pre-v14 had
|
|
108
164
|
// it at the tarball root.) Accept either to keep older tagged releases
|
|
109
|
-
// installable via `npx create-hq <name> --tag <pre-v14-tag>`.
|
|
165
|
+
// installable via `npx create-hq <name> --tag <pre-v14-tag>`. This doubles
|
|
166
|
+
// as the "did the real files extract?" gate: if core.yaml is present, the
|
|
167
|
+
// scaffold extracted fine and any `tar` exit error was a non-fatal symlink
|
|
168
|
+
// entry we can safely ignore.
|
|
110
169
|
const coreYaml = (await fs.pathExists(path.join(rootDir, "core", "core.yaml")))
|
|
111
170
|
? path.join(rootDir, "core", "core.yaml")
|
|
112
171
|
: path.join(rootDir, "core.yaml");
|
|
113
172
|
if (!await fs.pathExists(coreYaml)) {
|
|
114
|
-
throw new Error(
|
|
173
|
+
throw new Error(tarError
|
|
174
|
+
? `core.yaml not found after extraction (tar error: ${errMessage(tarError)}) — the scaffold did not extract correctly`
|
|
175
|
+
: "core.yaml not found at core/core.yaml or tarball root — this does not look like an hq-core scaffold");
|
|
115
176
|
}
|
|
116
177
|
// Copy the entire hq-core tree to targetDir
|
|
117
178
|
onProgress?.("Copying scaffold files...");
|
|
@@ -128,9 +189,10 @@ async function extractTemplateDirViaGhCli(tag, targetDir, onProgress) {
|
|
|
128
189
|
const tarPath = path.join(tmpDir, "hq.tar.gz");
|
|
129
190
|
try {
|
|
130
191
|
onProgress?.("Downloading via gh CLI...");
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
192
|
+
// Stream `gh api .../tarball/<ref>` straight to the tar file via spawn (no
|
|
193
|
+
// shell). The previous `execAsync(... > file, { shell: "/bin/sh" })` ENOENTs
|
|
194
|
+
// on Windows, where `/bin/sh` does not exist (CREATE-HQ-2).
|
|
195
|
+
await ghApiToFile(`repos/${REPO}/tarball/${ref}`, tarPath);
|
|
134
196
|
onProgress?.("Extracting template...");
|
|
135
197
|
await extractTemplateDirFromTar(tarPath, targetDir, onProgress);
|
|
136
198
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-template.js","sourceRoot":"","sources":["../src/fetch-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch-template.js","sourceRoot":"","sources":["../src/fetch-template.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,21 @@ export interface InstallOutcome {
|
|
|
34
34
|
status: "installed" | "skipped" | "failed";
|
|
35
35
|
reason?: string;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the hq-core `core.yaml` that carries `recommended_packages`.
|
|
39
|
+
*
|
|
40
|
+
* hq-core@v14+ nests the file under `core/core.yaml`; pre-v14 templates kept
|
|
41
|
+
* it at the HQ root (`core.yaml`). Prefer the nested location and fall back to
|
|
42
|
+
* the legacy root so older tagged releases still resolve. Returns `null` when
|
|
43
|
+
* neither exists — callers treat that as a scaffold-integrity problem
|
|
44
|
+
* (surfaced loudly) rather than "this core simply has no recommended packs".
|
|
45
|
+
*
|
|
46
|
+
* This mirrors the same-layout probe `fetch-template.ts` already performs when
|
|
47
|
+
* validating the extracted scaffold; keeping the two in sync is what prevents
|
|
48
|
+
* the silent no-op where a current hq-core's packs were read from the wrong
|
|
49
|
+
* path (`<target>/core.yaml`) and the list came back empty.
|
|
50
|
+
*/
|
|
51
|
+
export declare function resolveCoreYamlPath(hqRoot: string): string | null;
|
|
37
52
|
/**
|
|
38
53
|
* Read `recommended_packages` from an hq-core-style core.yaml. Uses minimal
|
|
39
54
|
* line-based parsing to avoid adding js-yaml as a dependency — matches
|
|
@@ -48,6 +63,43 @@ export interface InstallOutcome {
|
|
|
48
63
|
* description: '...'
|
|
49
64
|
*/
|
|
50
65
|
export declare function readRecommendedPackages(hqRoot: string): RecommendedPackage[];
|
|
66
|
+
/**
|
|
67
|
+
* Result of the pre-install probe for the recommended-packs phase. Pure and
|
|
68
|
+
* side-effect free so the scaffold's decision (proceed / warn / stay quiet)
|
|
69
|
+
* is unit-testable without a TTY or a real `hq install` subprocess.
|
|
70
|
+
*
|
|
71
|
+
* - `core-yaml-missing` — neither `core/core.yaml` nor the legacy root
|
|
72
|
+
* `core.yaml` exists. The scaffold looks incomplete; surface loudly.
|
|
73
|
+
* - `empty-warn` — core.yaml resolved but declared no recommended packs
|
|
74
|
+
* while the operator asked for the full set (`--full`). Almost always a
|
|
75
|
+
* path/parse mismatch (the original bug), so warn instead of a silent
|
|
76
|
+
* success.
|
|
77
|
+
* - `empty-quiet` — core.yaml resolved with no packs and no `--full`. A core
|
|
78
|
+
* legitimately may ship none; nothing was promised, so stay quiet.
|
|
79
|
+
* - `proceed` — packs found; install them.
|
|
80
|
+
*/
|
|
81
|
+
export type PacksPreflight = {
|
|
82
|
+
kind: "core-yaml-missing";
|
|
83
|
+
coreYamlPath: null;
|
|
84
|
+
} | {
|
|
85
|
+
kind: "empty-warn";
|
|
86
|
+
coreYamlPath: string;
|
|
87
|
+
} | {
|
|
88
|
+
kind: "empty-quiet";
|
|
89
|
+
coreYamlPath: string;
|
|
90
|
+
} | {
|
|
91
|
+
kind: "proceed";
|
|
92
|
+
coreYamlPath: string;
|
|
93
|
+
entries: RecommendedPackage[];
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* Probe the scaffold for its recommended-packages list and decide how the
|
|
97
|
+
* install phase should react. `full` is the operator's explicit "install
|
|
98
|
+
* everything unattended" signal (`--full`), which upgrades an empty list from
|
|
99
|
+
* an unremarkable no-op to a loud warning — the exact case the silent-no-op
|
|
100
|
+
* bug missed.
|
|
101
|
+
*/
|
|
102
|
+
export declare function preflightRecommendedPacks(hqRoot: string, full: boolean): PacksPreflight;
|
|
51
103
|
/**
|
|
52
104
|
* Evaluate a `conditional` bash expression. Returns true when the predicate
|
|
53
105
|
* exits 0 (pack applicable); false otherwise (pack should be skipped).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommended-packages.d.ts","sourceRoot":"","sources":["../src/recommended-packages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkD5E;AAaD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAkCpE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAC5B,cAAc,CAkChB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,EAAE,EAC7B,IAAI,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAC5B,cAAc,EAAE,CAQlB;AAkBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAQA"}
|
|
1
|
+
{"version":3,"file":"recommended-packages.d.ts","sourceRoot":"","sources":["../src/recommended-packages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkD5E;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,EAAE,IAAI,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,kBAAkB,EAAE,CAAA;CAAE,CAAC;AAE7E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GACZ,cAAc,CAWhB;AAaD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAkCpE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAC5B,cAAc,CAkChB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,EAAE,EAC7B,IAAI,EAAE;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,GAC5B,cAAc,EAAE,CAQlB;AAkBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAQA"}
|
|
@@ -22,6 +22,29 @@ import * as path from "path";
|
|
|
22
22
|
import { execFileSync, spawnSync } from "child_process";
|
|
23
23
|
import fs from "fs-extra";
|
|
24
24
|
import chalk from "chalk";
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the hq-core `core.yaml` that carries `recommended_packages`.
|
|
27
|
+
*
|
|
28
|
+
* hq-core@v14+ nests the file under `core/core.yaml`; pre-v14 templates kept
|
|
29
|
+
* it at the HQ root (`core.yaml`). Prefer the nested location and fall back to
|
|
30
|
+
* the legacy root so older tagged releases still resolve. Returns `null` when
|
|
31
|
+
* neither exists — callers treat that as a scaffold-integrity problem
|
|
32
|
+
* (surfaced loudly) rather than "this core simply has no recommended packs".
|
|
33
|
+
*
|
|
34
|
+
* This mirrors the same-layout probe `fetch-template.ts` already performs when
|
|
35
|
+
* validating the extracted scaffold; keeping the two in sync is what prevents
|
|
36
|
+
* the silent no-op where a current hq-core's packs were read from the wrong
|
|
37
|
+
* path (`<target>/core.yaml`) and the list came back empty.
|
|
38
|
+
*/
|
|
39
|
+
export function resolveCoreYamlPath(hqRoot) {
|
|
40
|
+
const nested = path.join(hqRoot, "core", "core.yaml");
|
|
41
|
+
if (fs.existsSync(nested))
|
|
42
|
+
return nested;
|
|
43
|
+
const legacy = path.join(hqRoot, "core.yaml");
|
|
44
|
+
if (fs.existsSync(legacy))
|
|
45
|
+
return legacy;
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
25
48
|
/**
|
|
26
49
|
* Read `recommended_packages` from an hq-core-style core.yaml. Uses minimal
|
|
27
50
|
* line-based parsing to avoid adding js-yaml as a dependency — matches
|
|
@@ -36,8 +59,8 @@ import chalk from "chalk";
|
|
|
36
59
|
* description: '...'
|
|
37
60
|
*/
|
|
38
61
|
export function readRecommendedPackages(hqRoot) {
|
|
39
|
-
const coreYamlPath =
|
|
40
|
-
if (!
|
|
62
|
+
const coreYamlPath = resolveCoreYamlPath(hqRoot);
|
|
63
|
+
if (!coreYamlPath)
|
|
41
64
|
return [];
|
|
42
65
|
const content = fs.readFileSync(coreYamlPath, "utf-8");
|
|
43
66
|
const lines = content.split("\n");
|
|
@@ -84,6 +107,25 @@ export function readRecommendedPackages(hqRoot) {
|
|
|
84
107
|
entries.push(current);
|
|
85
108
|
return entries;
|
|
86
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Probe the scaffold for its recommended-packages list and decide how the
|
|
112
|
+
* install phase should react. `full` is the operator's explicit "install
|
|
113
|
+
* everything unattended" signal (`--full`), which upgrades an empty list from
|
|
114
|
+
* an unremarkable no-op to a loud warning — the exact case the silent-no-op
|
|
115
|
+
* bug missed.
|
|
116
|
+
*/
|
|
117
|
+
export function preflightRecommendedPacks(hqRoot, full) {
|
|
118
|
+
const coreYamlPath = resolveCoreYamlPath(hqRoot);
|
|
119
|
+
if (!coreYamlPath)
|
|
120
|
+
return { kind: "core-yaml-missing", coreYamlPath: null };
|
|
121
|
+
const entries = readRecommendedPackages(hqRoot);
|
|
122
|
+
if (entries.length === 0) {
|
|
123
|
+
return full
|
|
124
|
+
? { kind: "empty-warn", coreYamlPath }
|
|
125
|
+
: { kind: "empty-quiet", coreYamlPath };
|
|
126
|
+
}
|
|
127
|
+
return { kind: "proceed", coreYamlPath, entries };
|
|
128
|
+
}
|
|
87
129
|
function stripQuotes(s) {
|
|
88
130
|
const trimmed = s.trim();
|
|
89
131
|
if ((trimmed.startsWith("'") && trimmed.endsWith("'")) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recommended-packages.js","sourceRoot":"","sources":["../src/recommended-packages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B
|
|
1
|
+
{"version":3,"file":"recommended-packages.js","sourceRoot":"","sources":["../src/recommended-packages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAE7B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAuC,IAAI,CAAC;IAEvD,MAAM,QAAQ,GAAG,+BAA+B,CAAC;IACjD,MAAM,YAAY,GAAG,gCAAgC,CAAC;IACtD,MAAM,OAAO,GAAG,8BAA8B,CAAC;IAC/C,MAAM,UAAU,GAAG,sBAAsB,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;YACxC,SAAS;QACX,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,IAAI,OAAO,EAAE,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,OAA6B,CAAC,CAAC;YACjE,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,GAAG,KAAK,CAAC;YAChB,MAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,OAAO,EAAE,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,OAA6B,CAAC,CAAC;YACjE,OAAO,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,GAAG,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,aAAa;gBAAE,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;iBAChD,IAAI,GAAG,KAAK,aAAa;gBAAE,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,OAA6B,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC;AACjB,CAAC;AAuBD;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,IAAa;IAEb,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAE5E,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI;YACT,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE;YACtC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,IACE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAClD,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAE7C,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAC9B,IAAI,MAAM,CAAC,IAAI,GAAG,yCAAyC,EAAE,GAAG,CAAC,CAAC;IAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEvC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,KAAyB,EACzB,IAA6B;IAE7B,uEAAuE;IACvE,sEAAsE;IACtE,qEAAqE;IACrE,kEAAkE;IAClE,gDAAgD;IAChD,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACL,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,4CAA4C,KAAK,CAAC,WAAW,EAAE;aACxE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,uEAAuE;IACvE,4DAA4D;IAC5D,2EAA2E;IAC3E,0EAA0E;IAC1E,EAAE;IACF,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,+BAA+B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvF,IAAI,IAAI,CAAC,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAEhD,IAAI,CAAC;QACH,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAc,EACd,OAA6B,EAC7B,IAA6B;IAE7B,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,OAAuB;IAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;YACtD,MAAM;QACR,KAAK,SAAS;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7F,MAAM;QACR,KAAK,QAAQ;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YAChG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/E,MAAM;IACV,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA0B;IAK1D,IAAI,SAAS,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS,EAAE,CAAC;aACrC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;;YACtC,MAAM,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACxC,CAAC"}
|
package/dist/scaffold.js
CHANGED
|
@@ -11,7 +11,7 @@ import { promisify } from "util";
|
|
|
11
11
|
const execAsync = promisify(exec);
|
|
12
12
|
import { fetchTemplate } from "./fetch-template.js";
|
|
13
13
|
import { detectExistingSync } from "./cloud-sync.js";
|
|
14
|
-
import {
|
|
14
|
+
import { preflightRecommendedPacks, readInstalledPackSources, installRecommendedPackages, summarizeOutcomes, } from "./recommended-packages.js";
|
|
15
15
|
const require = createRequire(import.meta.url);
|
|
16
16
|
const pkg = require("../package.json");
|
|
17
17
|
async function prompt(question, defaultVal) {
|
|
@@ -295,11 +295,31 @@ export async function scaffold(directory, options) {
|
|
|
295
295
|
* The scaffold itself always succeeds if the core template copied.
|
|
296
296
|
*/
|
|
297
297
|
async function installRecommendedPacksPhase(targetDir, full, isInteractive) {
|
|
298
|
-
const
|
|
299
|
-
if (
|
|
300
|
-
//
|
|
298
|
+
const preflight = preflightRecommendedPacks(targetDir, full);
|
|
299
|
+
if (preflight.kind === "core-yaml-missing") {
|
|
300
|
+
// The scaffold's core.yaml (which carries recommended_packages) is missing
|
|
301
|
+
// at both core/core.yaml and the legacy root. This is a scaffold-integrity
|
|
302
|
+
// problem, not "a core with no packs" — surface it loudly instead of a
|
|
303
|
+
// silent success so the operator knows packs were never even considered.
|
|
304
|
+
warn("Could not find core.yaml (expected at core/core.yaml) — the scaffold looks incomplete, so no recommended packs were installed.");
|
|
305
|
+
info("Verify the install, then run /setup --resume or install packs with hq install <source>.");
|
|
301
306
|
return;
|
|
302
307
|
}
|
|
308
|
+
if (preflight.kind === "empty-warn") {
|
|
309
|
+
// core.yaml resolved but declared no recommended_packages while --full asked
|
|
310
|
+
// for the full set. Almost always a real problem (e.g. a path/parse
|
|
311
|
+
// mismatch) — warn loudly rather than reporting a silent success.
|
|
312
|
+
const rel = path.relative(targetDir, preflight.coreYamlPath) || "core.yaml";
|
|
313
|
+
warn(`--full was set but no recommended packs were found in ${rel} — nothing was installed.`);
|
|
314
|
+
info("If this hq-core should ship packs, check its core.yaml:recommended_packages, then run hq install <source>.");
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
if (preflight.kind === "empty-quiet") {
|
|
318
|
+
// core.yaml resolved, no packs, no --full — a core legitimately may ship
|
|
319
|
+
// none and nothing was promised. Stay quiet.
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const entries = preflight.entries;
|
|
303
323
|
const alreadyInstalled = readInstalledPackSources(targetDir);
|
|
304
324
|
const remaining = entries.filter((e) => !alreadyInstalled.has(e.source));
|
|
305
325
|
if (remaining.length === 0) {
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-hq",
|
|
3
|
-
"version": "10.12.
|
|
3
|
+
"version": "10.12.5",
|
|
4
4
|
"description": "Create a new HQ by Indigo — Personal OS for AI Workers",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-hq": "./dist/index.js"
|
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
"build": "node scripts/generate-dsn.mjs && tsc",
|
|
14
14
|
"typecheck": "tsc --noEmit",
|
|
15
15
|
"clean": "rm -rf dist",
|
|
16
|
+
"lint": "eslint .",
|
|
16
17
|
"prepack": "npm run build",
|
|
17
18
|
"test": "vitest run",
|
|
18
19
|
"coverage": "vitest run --coverage --coverage.reporter=text-summary --coverage.reporter=json-summary",
|
|
20
|
+
"test:e2e": "npm run build && vitest run e2e",
|
|
19
21
|
"test:containers": "vitest run test/container.test.ts"
|
|
20
22
|
},
|
|
21
23
|
"dependencies": {
|
|
@@ -27,10 +29,13 @@
|
|
|
27
29
|
"ora": "^8.1.0"
|
|
28
30
|
},
|
|
29
31
|
"devDependencies": {
|
|
32
|
+
"@eslint/js": "^10.0.1",
|
|
30
33
|
"@types/fs-extra": "^11.0.4",
|
|
31
34
|
"@types/node": "^22.0.0",
|
|
32
35
|
"@vitest/coverage-v8": "^4.1.2",
|
|
36
|
+
"eslint": "^10.5.0",
|
|
33
37
|
"typescript": "^5.7.0",
|
|
38
|
+
"typescript-eslint": "^8.61.1",
|
|
34
39
|
"vitest": "^4.1.2"
|
|
35
40
|
},
|
|
36
41
|
"engines": {
|