create-hq 5.0.0 → 5.1.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/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/scaffold.d.ts +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +141 -32
- package/dist/scaffold.js.map +1 -1
- package/dist/ui.js +1 -1
- package/package.json +5 -6
package/dist/index.js
CHANGED
|
@@ -5,11 +5,11 @@ const program = new Command();
|
|
|
5
5
|
program
|
|
6
6
|
.name("create-hq")
|
|
7
7
|
.description("Create a new HQ — Personal OS for AI Workers")
|
|
8
|
-
.version("5.
|
|
8
|
+
.version("5.1.0")
|
|
9
9
|
.argument("[directory]", "where to create HQ", "hq")
|
|
10
10
|
.option("--skip-deps", "skip dependency checks")
|
|
11
|
-
.option("--skip-cli", "don't install @indigoai/hq-cli globally")
|
|
12
|
-
.option("--skip-
|
|
11
|
+
.option("--skip-cli", "don't install @indigoai-us/hq-cli globally")
|
|
12
|
+
.option("--skip-cloud", "don't prompt for cloud setup")
|
|
13
13
|
.action(async (directory, options) => {
|
|
14
14
|
try {
|
|
15
15
|
await scaffold(directory, options);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,aAAa,EAAE,oBAAoB,EAAE,IAAI,CAAC;KACnD,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;KAC/C,MAAM,CAAC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,aAAa,EAAE,oBAAoB,EAAE,IAAI,CAAC;KACnD,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;KAC/C,MAAM,CAAC,YAAY,EAAE,4CAA4C,CAAC;KAClE,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,OAAO,EAAE,EAAE;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CACpE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/scaffold.d.ts
CHANGED
package/dist/scaffold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAYA,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAYA,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6ED,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA8Kf"}
|
package/dist/scaffold.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as path from "path";
|
|
2
|
+
import * as os from "os";
|
|
2
3
|
import fs from "fs-extra";
|
|
3
4
|
import { createInterface } from "readline";
|
|
4
|
-
import { banner, success, warn, step, nextSteps } from "./ui.js";
|
|
5
|
+
import { banner, success, warn, step, nextSteps, info } from "./ui.js";
|
|
5
6
|
import { checkDeps } from "./deps.js";
|
|
6
|
-
import { initGit, hasGit } from "./git.js";
|
|
7
7
|
import { fileURLToPath } from "url";
|
|
8
|
-
import { execSync } from "child_process";
|
|
8
|
+
import { execSync, spawnSync } from "child_process";
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
10
|
const __dirname = path.dirname(__filename);
|
|
11
11
|
async function prompt(question, defaultVal) {
|
|
@@ -25,18 +25,55 @@ async function confirm(question, defaultYes = true) {
|
|
|
25
25
|
return defaultYes;
|
|
26
26
|
return answer.toLowerCase().startsWith("y");
|
|
27
27
|
}
|
|
28
|
+
const HQ_REPO_URL = "https://github.com/indigoai-us/hq.git";
|
|
29
|
+
/**
|
|
30
|
+
* Try to fetch the latest HQ template from GitHub.
|
|
31
|
+
* Returns the path to the template/ dir inside a temp clone, or null on failure.
|
|
32
|
+
* The caller is responsible for cleaning up the temp dir after copying.
|
|
33
|
+
*/
|
|
34
|
+
function fetchRemoteTemplate() {
|
|
35
|
+
const tmpDir = path.join(os.tmpdir(), `hq-template-${Date.now()}`);
|
|
36
|
+
try {
|
|
37
|
+
execSync(`git clone --depth 1 "${HQ_REPO_URL}" "${tmpDir}"`, {
|
|
38
|
+
stdio: "pipe",
|
|
39
|
+
timeout: 60000,
|
|
40
|
+
});
|
|
41
|
+
const templatePath = path.join(tmpDir, "template");
|
|
42
|
+
if (fs.existsSync(templatePath) && fs.existsSync(path.join(templatePath, ".claude"))) {
|
|
43
|
+
return { templateDir: templatePath, cleanupDir: tmpDir };
|
|
44
|
+
}
|
|
45
|
+
// Template dir not found in repo — clean up
|
|
46
|
+
fs.removeSync(tmpDir);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Git clone failed (no access, no git, offline) — fall back to bundled
|
|
51
|
+
try {
|
|
52
|
+
fs.removeSync(tmpDir);
|
|
53
|
+
}
|
|
54
|
+
catch { /* best effort */ }
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get the template directory. Tries GitHub first for the latest version,
|
|
60
|
+
* falls back to the bundled template in the npm package.
|
|
61
|
+
*/
|
|
28
62
|
function getTemplateDir() {
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
63
|
+
// Try fetching latest from GitHub
|
|
64
|
+
const remote = fetchRemoteTemplate();
|
|
65
|
+
if (remote) {
|
|
66
|
+
return { templateDir: remote.templateDir, cleanupDir: remote.cleanupDir, source: "github" };
|
|
67
|
+
}
|
|
68
|
+
// Fall back to bundled template
|
|
32
69
|
const candidates = [
|
|
33
|
-
path.resolve(__dirname, "..", "
|
|
34
|
-
path.resolve(__dirname, "..", "
|
|
35
|
-
path.resolve(__dirname, "..", "..", "..", "template"),
|
|
70
|
+
path.resolve(__dirname, "..", "..", "template"),
|
|
71
|
+
path.resolve(__dirname, "..", "template"),
|
|
72
|
+
path.resolve(__dirname, "..", "..", "..", "template"),
|
|
36
73
|
];
|
|
37
74
|
for (const candidate of candidates) {
|
|
38
75
|
if (fs.existsSync(candidate) && fs.existsSync(path.join(candidate, ".claude"))) {
|
|
39
|
-
return candidate;
|
|
76
|
+
return { templateDir: candidate, source: "bundled" };
|
|
40
77
|
}
|
|
41
78
|
}
|
|
42
79
|
throw new Error("Could not find HQ template directory. This is a packaging error — please report at https://github.com/indigoai-us/hq/issues");
|
|
@@ -60,8 +97,14 @@ export async function scaffold(directory, options) {
|
|
|
60
97
|
}
|
|
61
98
|
}
|
|
62
99
|
// 2. Copy template
|
|
63
|
-
step("
|
|
64
|
-
const templateDir = getTemplateDir();
|
|
100
|
+
step("Fetching latest HQ template...");
|
|
101
|
+
const { templateDir, cleanupDir, source } = getTemplateDir();
|
|
102
|
+
if (source === "github") {
|
|
103
|
+
info("Using latest template from GitHub");
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
info("Using bundled template (offline or no git access)");
|
|
107
|
+
}
|
|
65
108
|
await fs.copy(templateDir, targetDir, {
|
|
66
109
|
filter: (src) => {
|
|
67
110
|
const rel = path.relative(templateDir, src);
|
|
@@ -71,6 +114,13 @@ export async function scaffold(directory, options) {
|
|
|
71
114
|
return true;
|
|
72
115
|
},
|
|
73
116
|
});
|
|
117
|
+
// Clean up temp clone if we fetched from GitHub
|
|
118
|
+
if (cleanupDir) {
|
|
119
|
+
try {
|
|
120
|
+
fs.removeSync(cleanupDir);
|
|
121
|
+
}
|
|
122
|
+
catch { /* best effort */ }
|
|
123
|
+
}
|
|
74
124
|
// Count what we copied
|
|
75
125
|
const commandCount = fs.existsSync(path.join(targetDir, ".claude", "commands"))
|
|
76
126
|
? fs.readdirSync(path.join(targetDir, ".claude", "commands")).filter((f) => f.endsWith(".md")).length
|
|
@@ -80,40 +130,99 @@ export async function scaffold(directory, options) {
|
|
|
80
130
|
.filter((f) => String(f).endsWith("worker.yaml")).length
|
|
81
131
|
: 0;
|
|
82
132
|
success(`Copied template (${commandCount} commands, ${workerCount} workers)`);
|
|
83
|
-
// 3.
|
|
84
|
-
if (hasGit()) {
|
|
85
|
-
initGit(targetDir);
|
|
86
|
-
success("Initialized git repository");
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
warn("git not found — skipping git init");
|
|
90
|
-
}
|
|
91
|
-
// 4. Check dependencies
|
|
133
|
+
// 3. Check dependencies
|
|
92
134
|
if (!options.skipDeps) {
|
|
93
135
|
checkDeps();
|
|
94
136
|
}
|
|
95
137
|
// 5. Install hq-cli
|
|
96
138
|
if (!options.skipCli) {
|
|
97
139
|
console.log();
|
|
98
|
-
const installCli = await confirm("Install @indigoai/hq-cli globally for module management?");
|
|
140
|
+
const installCli = await confirm("Install @indigoai-us/hq-cli globally for module management?");
|
|
99
141
|
if (installCli) {
|
|
100
142
|
try {
|
|
101
|
-
step("Installing @indigoai/hq-cli...");
|
|
102
|
-
execSync("npm install -g @indigoai/hq-cli", { stdio: "pipe" });
|
|
103
|
-
success("Installed @indigoai/hq-cli");
|
|
143
|
+
step("Installing @indigoai-us/hq-cli...");
|
|
144
|
+
execSync("npm install -g @indigoai-us/hq-cli", { stdio: "pipe" });
|
|
145
|
+
success("Installed @indigoai-us/hq-cli");
|
|
104
146
|
}
|
|
105
147
|
catch {
|
|
106
|
-
warn("Failed to install @indigoai/hq-cli — you can install it later with: npm install -g @indigoai/hq-cli");
|
|
148
|
+
warn("Failed to install @indigoai-us/hq-cli — you can install it later with: npm install -g @indigoai-us/hq-cli");
|
|
107
149
|
}
|
|
108
150
|
}
|
|
109
151
|
}
|
|
110
|
-
//
|
|
111
|
-
if (!options.
|
|
152
|
+
// 5. Cloud sync + session setup
|
|
153
|
+
if (!options.skipCloud) {
|
|
112
154
|
console.log();
|
|
113
|
-
const
|
|
114
|
-
if (
|
|
115
|
-
|
|
116
|
-
|
|
155
|
+
const setupCloud = await confirm("Set up HQ Cloud? (syncs your HQ files and enables remote AI sessions)");
|
|
156
|
+
if (setupCloud) {
|
|
157
|
+
// Step 5a: Authenticate with Clerk
|
|
158
|
+
let authOk = false;
|
|
159
|
+
try {
|
|
160
|
+
step("Authenticating with HQ Cloud...");
|
|
161
|
+
const authResult = spawnSync("hq", ["auth", "login"], {
|
|
162
|
+
stdio: "inherit",
|
|
163
|
+
shell: true,
|
|
164
|
+
});
|
|
165
|
+
if (authResult.status === 0) {
|
|
166
|
+
success("Authenticated with HQ Cloud");
|
|
167
|
+
authOk = true;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
warn("Authentication did not complete — you can retry later with: hq auth login");
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
warn("Could not run hq auth login — you can retry later with: hq auth login");
|
|
175
|
+
}
|
|
176
|
+
// Step 5b: Upload HQ files to cloud
|
|
177
|
+
if (authOk) {
|
|
178
|
+
let uploadOk = false;
|
|
179
|
+
try {
|
|
180
|
+
step("Uploading HQ files to cloud...");
|
|
181
|
+
const uploadResult = spawnSync("hq", ["cloud", "upload", "--hq-root", targetDir, "--on-conflict", "merge"], { stdio: "inherit", shell: true });
|
|
182
|
+
if (uploadResult.status === 0) {
|
|
183
|
+
success("HQ files uploaded to cloud");
|
|
184
|
+
uploadOk = true;
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
warn("Upload did not complete — you can run later with: hq cloud upload");
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch {
|
|
191
|
+
warn("Could not upload files — you can run later with: hq cloud upload");
|
|
192
|
+
}
|
|
193
|
+
// Step 5c: Verify sync is working
|
|
194
|
+
if (uploadOk) {
|
|
195
|
+
try {
|
|
196
|
+
const statusResult = spawnSync("hq", ["sync", "status"], { stdio: "inherit", shell: true, cwd: targetDir });
|
|
197
|
+
if (statusResult.status === 0) {
|
|
198
|
+
success("Cloud sync is configured and working");
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// Non-fatal — sync status is informational
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Step 5d: Set up Claude token for cloud sessions
|
|
207
|
+
if (authOk) {
|
|
208
|
+
console.log();
|
|
209
|
+
try {
|
|
210
|
+
step("Setting up Claude token for cloud sessions...");
|
|
211
|
+
const tokenResult = spawnSync("hq", ["cloud", "setup-token"], {
|
|
212
|
+
stdio: "inherit",
|
|
213
|
+
shell: true,
|
|
214
|
+
});
|
|
215
|
+
if (tokenResult.status === 0) {
|
|
216
|
+
success("Claude token configured for cloud sessions");
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
warn("Token setup did not complete — you can retry later with: hq cloud setup-token");
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
warn("Could not run hq cloud setup-token — you can retry later with: hq cloud setup-token");
|
|
224
|
+
}
|
|
225
|
+
}
|
|
117
226
|
}
|
|
118
227
|
}
|
|
119
228
|
// 7. Index with qmd
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.js
CHANGED
|
@@ -8,7 +8,7 @@ export function banner() {
|
|
|
8
8
|
console.log(chalk.bold.white(" ██ ██ ██████ "));
|
|
9
9
|
console.log(chalk.dim(" ▀▀ "));
|
|
10
10
|
console.log();
|
|
11
|
-
console.log(chalk.dim(" Personal OS for AI Workers") + chalk.dim(" v5.
|
|
11
|
+
console.log(chalk.dim(" Personal OS for AI Workers") + chalk.dim(" v5.1.0"));
|
|
12
12
|
console.log();
|
|
13
13
|
}
|
|
14
14
|
export function success(msg) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-hq",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"description": "Create a new HQ — Personal OS for AI Workers",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-hq": "./dist/index.js"
|
|
@@ -12,15 +12,14 @@
|
|
|
12
12
|
"scripts": {
|
|
13
13
|
"build": "tsc",
|
|
14
14
|
"typecheck": "tsc --noEmit",
|
|
15
|
-
"clean": "
|
|
16
|
-
"prepack": "
|
|
17
|
-
"postpack": "node -e \"require('fs
|
|
15
|
+
"clean": "rm -rf dist",
|
|
16
|
+
"prepack": "node -e \"require('fs').cpSync('../../template','./template',{recursive:true})\"",
|
|
17
|
+
"postpack": "node -e \"require('fs').rmSync('./template',{recursive:true,force:true})\""
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"chalk": "^5.3.0",
|
|
21
21
|
"commander": "^12.1.0",
|
|
22
|
-
"fs-extra": "^11.2.0"
|
|
23
|
-
"ora": "^8.1.0"
|
|
22
|
+
"fs-extra": "^11.2.0"
|
|
24
23
|
},
|
|
25
24
|
"devDependencies": {
|
|
26
25
|
"@types/fs-extra": "^11.0.4",
|