create-hq 10.1.0 → 10.7.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/admin-onboarding.d.ts +42 -0
- package/dist/admin-onboarding.d.ts.map +1 -0
- package/dist/admin-onboarding.js +445 -0
- package/dist/admin-onboarding.js.map +1 -0
- package/dist/auth.d.ts +60 -23
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +219 -116
- package/dist/auth.js.map +1 -1
- package/dist/company-template.d.ts +34 -0
- package/dist/company-template.d.ts.map +1 -0
- package/dist/company-template.js +142 -0
- package/dist/company-template.js.map +1 -0
- package/dist/deps.d.ts +2 -0
- package/dist/deps.d.ts.map +1 -1
- package/dist/deps.js +42 -30
- package/dist/deps.js.map +1 -1
- package/dist/fetch-template.d.ts +2 -2
- package/dist/fetch-template.d.ts.map +1 -1
- package/dist/fetch-template.js +54 -38
- package/dist/fetch-template.js.map +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +28 -4
- package/dist/git.js.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/invite-command.d.ts +10 -0
- package/dist/invite-command.d.ts.map +1 -0
- package/dist/invite-command.js +110 -0
- package/dist/invite-command.js.map +1 -0
- package/dist/invite.d.ts +91 -0
- package/dist/invite.d.ts.map +1 -0
- package/dist/invite.js +230 -0
- package/dist/invite.js.map +1 -0
- package/dist/join-flow.d.ts +32 -0
- package/dist/join-flow.d.ts.map +1 -0
- package/dist/join-flow.js +194 -0
- package/dist/join-flow.js.map +1 -0
- package/dist/platform.d.ts +2 -2
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +14 -1
- package/dist/platform.js.map +1 -1
- package/dist/scaffold.d.ts +4 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +152 -41
- package/dist/scaffold.js.map +1 -1
- package/dist/team-setup.d.ts +58 -0
- package/dist/team-setup.d.ts.map +1 -0
- package/dist/team-setup.js +237 -0
- package/dist/team-setup.js.map +1 -0
- package/dist/teams-flow.d.ts +36 -0
- package/dist/teams-flow.d.ts.map +1 -0
- package/dist/teams-flow.js +134 -0
- package/dist/teams-flow.js.map +1 -0
- package/dist/ui.d.ts +17 -0
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +35 -0
- package/dist/ui.js.map +1 -1
- package/package.json +49 -49
package/dist/deps.js
CHANGED
|
@@ -4,6 +4,7 @@ import chalk from "chalk";
|
|
|
4
4
|
import { success, warn, info } from "./ui.js";
|
|
5
5
|
import { detectPlatform } from "./platform.js";
|
|
6
6
|
const deps = [
|
|
7
|
+
// ── Core (required — installer blocks if missing) ──────────────────────
|
|
7
8
|
{
|
|
8
9
|
name: "Node.js",
|
|
9
10
|
command: "node --version",
|
|
@@ -12,6 +13,29 @@ const deps = [
|
|
|
12
13
|
autoInstallable: false,
|
|
13
14
|
installCommands: {},
|
|
14
15
|
},
|
|
16
|
+
{
|
|
17
|
+
name: "git",
|
|
18
|
+
command: "git --version",
|
|
19
|
+
required: true,
|
|
20
|
+
installHint: "https://git-scm.com/downloads",
|
|
21
|
+
autoInstallable: false,
|
|
22
|
+
installCommands: {},
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "gh CLI",
|
|
26
|
+
command: "gh --version",
|
|
27
|
+
required: true,
|
|
28
|
+
installHint: "https://cli.github.com",
|
|
29
|
+
autoInstallable: true,
|
|
30
|
+
installCommands: {
|
|
31
|
+
brew: "brew install gh",
|
|
32
|
+
apt: "sudo apt install gh",
|
|
33
|
+
dnf: "sudo dnf install gh",
|
|
34
|
+
pacman: "sudo pacman -S github-cli",
|
|
35
|
+
winget: "winget install --id GitHub.cli -e",
|
|
36
|
+
choco: "choco install gh -y",
|
|
37
|
+
},
|
|
38
|
+
},
|
|
15
39
|
{
|
|
16
40
|
name: "Claude Code CLI",
|
|
17
41
|
command: "claude --version",
|
|
@@ -22,10 +46,11 @@ const deps = [
|
|
|
22
46
|
npm: "npm install -g @anthropic-ai/claude-code",
|
|
23
47
|
},
|
|
24
48
|
},
|
|
49
|
+
// ── Optional (installer continues if missing) ──────────────────────────
|
|
25
50
|
{
|
|
26
51
|
name: "qmd (search)",
|
|
27
52
|
command: "qmd --version",
|
|
28
|
-
required:
|
|
53
|
+
required: false,
|
|
29
54
|
installHint: "npm install -g @tobilu/qmd",
|
|
30
55
|
autoInstallable: true,
|
|
31
56
|
installCommands: {
|
|
@@ -35,27 +60,16 @@ const deps = [
|
|
|
35
60
|
{
|
|
36
61
|
name: "yq",
|
|
37
62
|
command: "yq --version",
|
|
38
|
-
required:
|
|
39
|
-
installHint: "
|
|
63
|
+
required: false,
|
|
64
|
+
installHint: "https://github.com/mikefarah/yq#install",
|
|
40
65
|
autoInstallable: true,
|
|
41
66
|
installCommands: {
|
|
42
67
|
brew: "brew install yq",
|
|
43
68
|
apt: "sudo snap install yq",
|
|
44
69
|
dnf: "sudo dnf install yq",
|
|
45
70
|
pacman: "sudo pacman -S yq",
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{
|
|
49
|
-
name: "gh CLI",
|
|
50
|
-
command: "gh --version",
|
|
51
|
-
required: false,
|
|
52
|
-
installHint: "brew install gh",
|
|
53
|
-
autoInstallable: true,
|
|
54
|
-
installCommands: {
|
|
55
|
-
brew: "brew install gh",
|
|
56
|
-
apt: "sudo apt install gh",
|
|
57
|
-
dnf: "sudo dnf install gh",
|
|
58
|
-
pacman: "sudo pacman -S github-cli",
|
|
71
|
+
winget: "winget install --id MikeFarah.yq -e",
|
|
72
|
+
choco: "choco install yq -y",
|
|
59
73
|
},
|
|
60
74
|
},
|
|
61
75
|
{
|
|
@@ -99,11 +113,7 @@ export function getInstallCommand(dep, platform) {
|
|
|
99
113
|
}
|
|
100
114
|
function checkCommand(command) {
|
|
101
115
|
try {
|
|
102
|
-
const output = execSync(command, {
|
|
103
|
-
stdio: "pipe",
|
|
104
|
-
encoding: "utf-8",
|
|
105
|
-
timeout: 10_000, // 10s — prevents hanging on slow commands (e.g. claude --version)
|
|
106
|
-
});
|
|
116
|
+
const output = execSync(command, { stdio: "pipe", encoding: "utf-8" });
|
|
107
117
|
const version = output.trim().split("\n")[0];
|
|
108
118
|
return version;
|
|
109
119
|
}
|
|
@@ -150,7 +160,7 @@ export async function checkDeps() {
|
|
|
150
160
|
// Can offer auto-install
|
|
151
161
|
const defaultYes = dep.required;
|
|
152
162
|
const optionalTag = dep.required ? "" : " (optional)";
|
|
153
|
-
const accepted = await confirm(
|
|
163
|
+
const accepted = await confirm(`${dep.name} not found.${optionalTag} Install now? [${installCmd}]`, defaultYes);
|
|
154
164
|
if (accepted) {
|
|
155
165
|
info(`Running: ${installCmd}`);
|
|
156
166
|
try {
|
|
@@ -166,23 +176,25 @@ export async function checkDeps() {
|
|
|
166
176
|
results.push({ name: dep.name, required: dep.required, status: "just-installed", version: recheck, installHint: dep.installHint });
|
|
167
177
|
continue;
|
|
168
178
|
}
|
|
169
|
-
else {
|
|
170
|
-
warn(`${dep.name} install failed —
|
|
179
|
+
else if (dep.required) {
|
|
180
|
+
warn(`${dep.name} install failed — this is required to continue`);
|
|
171
181
|
results.push({ name: dep.name, required: dep.required, status: "missing", installHint: dep.installHint });
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
182
|
+
allRequired = false;
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
info(`${dep.name} install didn't stick — you can install it later: ${dep.installHint}`);
|
|
186
|
+
results.push({ name: dep.name, required: dep.required, status: "skipped", installHint: dep.installHint });
|
|
175
187
|
}
|
|
176
188
|
}
|
|
177
189
|
else {
|
|
178
190
|
// User declined
|
|
179
191
|
if (dep.required) {
|
|
180
|
-
warn(`${dep.name}
|
|
192
|
+
warn(`${dep.name} is required — can't continue without it`);
|
|
181
193
|
results.push({ name: dep.name, required: dep.required, status: "missing", installHint: dep.installHint });
|
|
182
194
|
allRequired = false;
|
|
183
195
|
}
|
|
184
196
|
else {
|
|
185
|
-
info(`${dep.name}
|
|
197
|
+
info(`${dep.name} skipped — you can install it later: ${dep.installHint}`);
|
|
186
198
|
results.push({ name: dep.name, required: dep.required, status: "skipped", installHint: dep.installHint });
|
|
187
199
|
}
|
|
188
200
|
}
|
|
@@ -196,7 +208,7 @@ export async function checkDeps() {
|
|
|
196
208
|
allRequired = false;
|
|
197
209
|
}
|
|
198
210
|
else {
|
|
199
|
-
info(`${dep.name} (optional) — ${dep.installHint}`);
|
|
211
|
+
info(`${dep.name} (optional) — install later: ${dep.installHint}`);
|
|
200
212
|
results.push({ name: dep.name, required: dep.required, status: "skipped", installHint: dep.installHint });
|
|
201
213
|
}
|
|
202
214
|
}
|
package/dist/deps.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"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"}
|
package/dist/fetch-template.d.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Strategy:
|
|
5
5
|
* 1. GitHub REST API → download tarball_url
|
|
6
|
-
* 2. Fallback:
|
|
7
|
-
* 3. If both fail: throw with manual
|
|
6
|
+
* 2. Fallback: `git clone --depth 1` (git is a hard dep, checked up front)
|
|
7
|
+
* 3. If both fail: throw with manual instructions
|
|
8
8
|
*
|
|
9
9
|
* Returns the version tag that was fetched.
|
|
10
10
|
*/
|
|
@@ -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":"AAqIA;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B9B"}
|
package/dist/fetch-template.js
CHANGED
|
@@ -3,6 +3,7 @@ import * as path from "path";
|
|
|
3
3
|
import * as os from "os";
|
|
4
4
|
import { execSync } from "child_process";
|
|
5
5
|
const REPO = "indigoai-us/hq";
|
|
6
|
+
const REPO_HTTPS = `https://github.com/${REPO}.git`;
|
|
6
7
|
const GITHUB_API = "https://api.github.com";
|
|
7
8
|
async function getLatestRelease() {
|
|
8
9
|
const response = await fetch(`${GITHUB_API}/repos/${REPO}/releases/latest`, {
|
|
@@ -11,8 +12,7 @@ async function getLatestRelease() {
|
|
|
11
12
|
if (!response.ok) {
|
|
12
13
|
throw new Error(`GitHub API returned ${response.status}: ${response.statusText}`);
|
|
13
14
|
}
|
|
14
|
-
|
|
15
|
-
return data;
|
|
15
|
+
return (await response.json());
|
|
16
16
|
}
|
|
17
17
|
async function getTagRelease(tag) {
|
|
18
18
|
const response = await fetch(`${GITHUB_API}/repos/${REPO}/releases/tags/${tag}`, {
|
|
@@ -21,8 +21,7 @@ async function getTagRelease(tag) {
|
|
|
21
21
|
if (!response.ok) {
|
|
22
22
|
throw new Error(`GitHub API returned ${response.status}: ${response.statusText}`);
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
return data;
|
|
24
|
+
return (await response.json());
|
|
26
25
|
}
|
|
27
26
|
async function downloadAndExtractViaApi(tarballUrl, targetDir) {
|
|
28
27
|
const response = await fetch(tarballUrl, {
|
|
@@ -48,9 +47,8 @@ function extractTemplateDirFromTar(tarPath, targetDir) {
|
|
|
48
47
|
// We need to find the `template/` subdirectory within that and extract it.
|
|
49
48
|
const tmpExtract = fs.mkdtempSync(path.join(os.tmpdir(), "create-hq-extract-"));
|
|
50
49
|
try {
|
|
51
|
-
//
|
|
50
|
+
// tar is part of git for windows + present on macOS/Linux
|
|
52
51
|
execSync(`tar -xzf "${tarPath}" -C "${tmpExtract}"`, { stdio: "pipe" });
|
|
53
|
-
// Find the top-level directory created by GitHub's tarball
|
|
54
52
|
const entries = fs.readdirSync(tmpExtract);
|
|
55
53
|
if (entries.length === 0) {
|
|
56
54
|
throw new Error("Tarball was empty");
|
|
@@ -60,7 +58,6 @@ function extractTemplateDirFromTar(tarPath, targetDir) {
|
|
|
60
58
|
if (!fs.existsSync(templateSrc)) {
|
|
61
59
|
throw new Error("template/ directory not found in HQ tarball");
|
|
62
60
|
}
|
|
63
|
-
// Copy template contents to targetDir
|
|
64
61
|
fs.ensureDirSync(targetDir);
|
|
65
62
|
fs.copySync(templateSrc, targetDir, { overwrite: true });
|
|
66
63
|
}
|
|
@@ -68,17 +65,47 @@ function extractTemplateDirFromTar(tarPath, targetDir) {
|
|
|
68
65
|
fs.removeSync(tmpExtract);
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Fallback: shallow git clone the public HQ repo and copy template/ out.
|
|
70
|
+
* Used when the GitHub REST API tarball download fails (network, rate limit,
|
|
71
|
+
* proxy issues). Requires git, which is checked as a hard dep before this
|
|
72
|
+
* function is reached.
|
|
73
|
+
*/
|
|
74
|
+
function fetchViaGitClone(targetDir, tag) {
|
|
75
|
+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "create-hq-git-"));
|
|
75
76
|
try {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
stdio: "pipe"
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
if (tag) {
|
|
78
|
+
// Clone with a specific tag (still shallow)
|
|
79
|
+
execSync(`git clone --depth 1 --branch "${tag}" "${REPO_HTTPS}" "${tmpDir}"`, { stdio: "pipe" });
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Default branch shallow clone
|
|
83
|
+
execSync(`git clone --depth 1 "${REPO_HTTPS}" "${tmpDir}"`, {
|
|
84
|
+
stdio: "pipe",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const templateSrc = path.join(tmpDir, "template");
|
|
88
|
+
if (!fs.existsSync(templateSrc)) {
|
|
89
|
+
throw new Error("template/ directory not found in cloned HQ repo");
|
|
90
|
+
}
|
|
91
|
+
fs.ensureDirSync(targetDir);
|
|
92
|
+
fs.copySync(templateSrc, targetDir, { overwrite: true });
|
|
93
|
+
// Best-effort version detection: read the cloned tag, or fall back
|
|
94
|
+
let version = tag || "latest";
|
|
95
|
+
if (!tag) {
|
|
96
|
+
try {
|
|
97
|
+
const described = execSync(`git -C "${tmpDir}" describe --tags --abbrev=0`, {
|
|
98
|
+
stdio: "pipe",
|
|
99
|
+
encoding: "utf-8",
|
|
100
|
+
}).trim();
|
|
101
|
+
if (described)
|
|
102
|
+
version = described;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// No tags reachable in shallow clone — keep "latest"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return { version };
|
|
82
109
|
}
|
|
83
110
|
finally {
|
|
84
111
|
fs.removeSync(tmpDir);
|
|
@@ -89,47 +116,36 @@ function extractTemplateDirViaGhCli(tag, targetDir) {
|
|
|
89
116
|
*
|
|
90
117
|
* Strategy:
|
|
91
118
|
* 1. GitHub REST API → download tarball_url
|
|
92
|
-
* 2. Fallback:
|
|
93
|
-
* 3. If both fail: throw with manual
|
|
119
|
+
* 2. Fallback: `git clone --depth 1` (git is a hard dep, checked up front)
|
|
120
|
+
* 3. If both fail: throw with manual instructions
|
|
94
121
|
*
|
|
95
122
|
* Returns the version tag that was fetched.
|
|
96
123
|
*/
|
|
97
124
|
export async function fetchTemplate(targetDir, tag) {
|
|
98
125
|
let version = tag || "";
|
|
99
|
-
let tarballUrl = "";
|
|
100
126
|
let apiError = null;
|
|
101
127
|
// --- Attempt 1: GitHub API ---
|
|
102
128
|
try {
|
|
103
129
|
const release = tag ? await getTagRelease(tag) : await getLatestRelease();
|
|
104
130
|
version = release.tag_name;
|
|
105
|
-
|
|
106
|
-
await downloadAndExtractViaApi(tarballUrl, targetDir);
|
|
131
|
+
await downloadAndExtractViaApi(release.tarball_url, targetDir);
|
|
107
132
|
return { version };
|
|
108
133
|
}
|
|
109
134
|
catch (err) {
|
|
110
135
|
apiError = err;
|
|
111
136
|
}
|
|
112
|
-
// --- Attempt 2:
|
|
137
|
+
// --- Attempt 2: git clone fallback ---
|
|
113
138
|
try {
|
|
114
|
-
|
|
115
|
-
extractTemplateDirViaGhCli(ref, targetDir);
|
|
116
|
-
// If we got a version from the API response (even if download failed later), keep it.
|
|
117
|
-
// Otherwise mark as unknown.
|
|
118
|
-
if (!version) {
|
|
119
|
-
version = tag || "latest";
|
|
120
|
-
}
|
|
121
|
-
return { version };
|
|
139
|
+
return fetchViaGitClone(targetDir, tag);
|
|
122
140
|
}
|
|
123
|
-
catch (
|
|
124
|
-
// Both failed — provide a clear error message.
|
|
141
|
+
catch (gitErr) {
|
|
125
142
|
const apiMsg = apiError instanceof Error ? apiError.message : String(apiError);
|
|
126
|
-
const
|
|
143
|
+
const gitMsg = gitErr instanceof Error ? gitErr.message : String(gitErr);
|
|
127
144
|
throw new Error(`Failed to fetch HQ template from GitHub.\n\n` +
|
|
128
145
|
` GitHub API error: ${apiMsg}\n` +
|
|
129
|
-
`
|
|
130
|
-
`
|
|
131
|
-
`
|
|
132
|
-
` git clone https://github.com/indigoai-us/hq.git\n` +
|
|
146
|
+
` git clone error: ${gitMsg}\n\n` +
|
|
147
|
+
`Check your network connection and try again. To set up HQ manually:\n\n` +
|
|
148
|
+
` git clone https://github.com/${REPO}.git\n` +
|
|
133
149
|
` cp -R hq/template ${targetDir}\n`);
|
|
134
150
|
}
|
|
135
151
|
}
|
|
@@ -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,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAC9B,MAAM,UAAU,GAAG,wBAAwB,CAAC;AAO5C,KAAK,UAAU,gBAAgB;IAC7B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,UAAU,IAAI,kBAAkB,EAAE;QAC1E,OAAO,EAAE,EAAE,MAAM,EAAE,6BAA6B,EAAE;KACnD,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"fetch-template.js","sourceRoot":"","sources":["../src/fetch-template.ts"],"names":[],"mappings":"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"}
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAYA,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAwBzC;AAED,wBAAgB,MAAM,IAAI,OAAO,CAOhC"}
|
package/dist/git.js
CHANGED
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
import { execSync } from "child_process";
|
|
2
|
+
function hasGitConfig(key, cwd) {
|
|
3
|
+
try {
|
|
4
|
+
// Check both global and local config
|
|
5
|
+
execSync(`git config ${key}`, { cwd, stdio: "pipe" });
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
2
12
|
export function initGit(dir) {
|
|
3
13
|
execSync("git init", { cwd: dir, stdio: "pipe" });
|
|
14
|
+
// Ensure user.email and user.name are set — use local config if global is missing
|
|
15
|
+
if (!hasGitConfig("user.email", dir)) {
|
|
16
|
+
execSync('git config user.email "hq-user@localhost"', { cwd: dir, stdio: "pipe" });
|
|
17
|
+
}
|
|
18
|
+
if (!hasGitConfig("user.name", dir)) {
|
|
19
|
+
execSync('git config user.name "HQ User"', { cwd: dir, stdio: "pipe" });
|
|
20
|
+
}
|
|
4
21
|
execSync("git add -A", { cwd: dir, stdio: "pipe" });
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
22
|
+
try {
|
|
23
|
+
execSync('git commit -m "Initial HQ setup via create-hq"', {
|
|
24
|
+
cwd: dir,
|
|
25
|
+
stdio: "pipe",
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
const stderr = err.stderr?.toString() || "";
|
|
30
|
+
const stdout = err.stdout?.toString() || "";
|
|
31
|
+
throw new Error(`git commit failed: ${stderr || stdout || err.message}`);
|
|
32
|
+
}
|
|
9
33
|
}
|
|
10
34
|
export function hasGit() {
|
|
11
35
|
try {
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,QAAQ,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,SAAS,YAAY,CAAC,GAAW,EAAE,GAAY;IAC7C,IAAI,CAAC;QACH,qCAAqC;QACrC,QAAQ,CAAC,cAAc,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,QAAQ,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAElD,kFAAkF;IAClF,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;QACrC,QAAQ,CAAC,2CAA2C,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC;QACpC,QAAQ,CAAC,gCAAgC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,QAAQ,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,QAAQ,CAAC,gDAAgD,EAAE;YACzD,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,IAAI,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,IAAI,CAAC;QACH,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Command } from "commander";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import { scaffold } from "./scaffold.js";
|
|
5
|
+
import { runInviteCommand } from "./invite-command.js";
|
|
5
6
|
const require = createRequire(import.meta.url);
|
|
6
7
|
const pkg = require("../package.json");
|
|
7
8
|
const program = new Command();
|
|
@@ -9,12 +10,15 @@ program
|
|
|
9
10
|
.name("create-hq")
|
|
10
11
|
.description("Create a new HQ by Indigo — Personal OS for AI Workers")
|
|
11
12
|
.version(pkg.version)
|
|
12
|
-
.argument("[directory]", "where to create HQ
|
|
13
|
+
.argument("[directory]", "where to create HQ (prompts if omitted)")
|
|
13
14
|
.option("--skip-deps", "skip dependency checks")
|
|
14
15
|
.option("--skip-cli", "don't install @indigoai-us/hq-cli globally")
|
|
15
16
|
.option("--skip-sync", "don't prompt for cloud sync setup")
|
|
17
|
+
.option("--skip-packages", "don't prompt for package discovery and installation")
|
|
16
18
|
.option("--tag <version>", "fetch a specific HQ version tag (e.g. v9.1.0)")
|
|
17
19
|
.option("--local-template <path>", "use a local template directory instead of fetching from GitHub")
|
|
20
|
+
.option("--join <token>", "join a team with an invite token (interactive prompt)")
|
|
21
|
+
.option("--invite <token>", "join a team via invite — direct, no extra prompts")
|
|
18
22
|
.action(async (directory, options) => {
|
|
19
23
|
try {
|
|
20
24
|
await scaffold(directory, options);
|
|
@@ -24,5 +28,18 @@ program
|
|
|
24
28
|
process.exit(1);
|
|
25
29
|
}
|
|
26
30
|
});
|
|
31
|
+
// Standalone invite subcommand for admins to generate invites
|
|
32
|
+
program
|
|
33
|
+
.command("invite")
|
|
34
|
+
.description("Generate an invite code for a new team member")
|
|
35
|
+
.action(async () => {
|
|
36
|
+
try {
|
|
37
|
+
await runInviteCommand();
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
console.error(err instanceof Error ? err.message : "An unexpected error occurred");
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
27
44
|
program.parse();
|
|
28
45
|
//# sourceMappingURL=index.js.map
|
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,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,QAAQ,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAClE,MAAM,CAAC,aAAa,EAAE,wBAAwB,CAAC;KAC/C,MAAM,CAAC,YAAY,EAAE,4CAA4C,CAAC;KAClE,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAC1D,MAAM,CAAC,iBAAiB,EAAE,qDAAqD,CAAC;KAChF,MAAM,CAAC,iBAAiB,EAAE,+CAA+C,CAAC;KAC1E,MAAM,CAAC,yBAAyB,EAAE,gEAAgE,CAAC;KACnG,MAAM,CAAC,gBAAgB,EAAE,uDAAuD,CAAC;KACjF,MAAM,CAAC,kBAAkB,EAAE,mDAAmD,CAAC;KAC/E,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,OAAO,EAAE,EAAE;IACvD,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,8DAA8D;AAC9D,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,gBAAgB,EAAE,CAAC;IAC3B,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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone invite command for admins.
|
|
3
|
+
*
|
|
4
|
+
* Usage: create-hq invite
|
|
5
|
+
*
|
|
6
|
+
* Finds team metadata from the current HQ directory, authenticates
|
|
7
|
+
* the admin, and generates an invite code plus optional org invite.
|
|
8
|
+
*/
|
|
9
|
+
export declare function runInviteCommand(): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=invite-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-command.d.ts","sourceRoot":"","sources":["../src/invite-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6EH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8CtD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone invite command for admins.
|
|
3
|
+
*
|
|
4
|
+
* Usage: create-hq invite
|
|
5
|
+
*
|
|
6
|
+
* Finds team metadata from the current HQ directory, authenticates
|
|
7
|
+
* the admin, and generates an invite code plus optional org invite.
|
|
8
|
+
*/
|
|
9
|
+
import * as fs from "fs";
|
|
10
|
+
import * as path from "path";
|
|
11
|
+
import { execSync } from "child_process";
|
|
12
|
+
import { createInterface } from "readline";
|
|
13
|
+
import chalk from "chalk";
|
|
14
|
+
import { authenticate } from "./teams-flow.js";
|
|
15
|
+
import { inviteLoop } from "./admin-onboarding.js";
|
|
16
|
+
import { warn, info } from "./ui.js";
|
|
17
|
+
function prompt(question, defaultVal) {
|
|
18
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
19
|
+
const suffix = defaultVal ? ` (${defaultVal})` : "";
|
|
20
|
+
return new Promise((resolve) => {
|
|
21
|
+
rl.question(` ? ${question}${suffix} `, (answer) => {
|
|
22
|
+
rl.close();
|
|
23
|
+
resolve(answer.trim() || defaultVal || "");
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Find team.json files in companies/ walking up from cwd.
|
|
29
|
+
*/
|
|
30
|
+
function findTeams() {
|
|
31
|
+
let dir = process.cwd();
|
|
32
|
+
const root = path.parse(dir).root;
|
|
33
|
+
const teams = [];
|
|
34
|
+
while (dir !== root) {
|
|
35
|
+
const companiesDir = path.join(dir, "companies");
|
|
36
|
+
if (fs.existsSync(companiesDir) && fs.statSync(companiesDir).isDirectory()) {
|
|
37
|
+
for (const entry of fs.readdirSync(companiesDir)) {
|
|
38
|
+
const teamJsonPath = path.join(companiesDir, entry, "team.json");
|
|
39
|
+
if (fs.existsSync(teamJsonPath)) {
|
|
40
|
+
try {
|
|
41
|
+
const meta = JSON.parse(fs.readFileSync(teamJsonPath, "utf-8"));
|
|
42
|
+
let cloneUrl = `https://github.com/${meta.org_login}/hq-${meta.team_slug}.git`;
|
|
43
|
+
try {
|
|
44
|
+
const remote = execSync("git remote get-url origin", {
|
|
45
|
+
cwd: path.join(companiesDir, entry),
|
|
46
|
+
stdio: "pipe",
|
|
47
|
+
})
|
|
48
|
+
.toString()
|
|
49
|
+
.trim();
|
|
50
|
+
if (remote)
|
|
51
|
+
cloneUrl = remote;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Use constructed URL
|
|
55
|
+
}
|
|
56
|
+
teams.push({
|
|
57
|
+
meta,
|
|
58
|
+
cloneUrl,
|
|
59
|
+
companyDir: path.join(companiesDir, entry),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Skip malformed team.json
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
dir = path.dirname(dir);
|
|
70
|
+
}
|
|
71
|
+
return teams;
|
|
72
|
+
}
|
|
73
|
+
export async function runInviteCommand() {
|
|
74
|
+
console.log();
|
|
75
|
+
console.log(chalk.bold(" Generate a team invite"));
|
|
76
|
+
console.log();
|
|
77
|
+
const teams = findTeams();
|
|
78
|
+
if (teams.length === 0) {
|
|
79
|
+
warn("No teams found. Run this from your HQ directory (must have companies/*/team.json).");
|
|
80
|
+
info("If you haven't created a team yet, run: npx create-hq");
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
let selected;
|
|
84
|
+
if (teams.length === 1) {
|
|
85
|
+
selected = teams[0];
|
|
86
|
+
info(`Team: ${chalk.cyan(selected.meta.team_name)} (${selected.meta.org_login})`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(" Which team?");
|
|
90
|
+
for (let i = 0; i < teams.length; i++) {
|
|
91
|
+
console.log(chalk.cyan(` [${i + 1}] `) +
|
|
92
|
+
chalk.white(teams[i].meta.team_name) +
|
|
93
|
+
chalk.dim(` (${teams[i].meta.org_login})`));
|
|
94
|
+
}
|
|
95
|
+
const choice = await prompt(`Select (1-${teams.length})`, "1");
|
|
96
|
+
const idx = parseInt(choice, 10) - 1;
|
|
97
|
+
if (idx < 0 || idx >= teams.length) {
|
|
98
|
+
warn("Invalid selection.");
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
selected = teams[idx];
|
|
102
|
+
}
|
|
103
|
+
const auth = await authenticate();
|
|
104
|
+
if (!auth) {
|
|
105
|
+
warn("Authentication required to generate invites.");
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
await inviteLoop(auth, selected.meta, selected.cloneUrl);
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=invite-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-command.js","sourceRoot":"","sources":["../src/invite-command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAErC,SAAS,MAAM,CAAC,QAAgB,EAAE,UAAmB;IACnD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,OAAO,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YAClD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;GAEG;AACH,SAAS,SAAS;IAChB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3E,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBACjE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CACrB,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CACvB,CAAC;wBAClB,IAAI,QAAQ,GAAG,sBAAsB,IAAI,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,MAAM,CAAC;wBAC/E,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,QAAQ,CAAC,2BAA2B,EAAE;gCACnD,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;gCACnC,KAAK,EAAE,MAAM;6BACd,CAAC;iCACC,QAAQ,EAAE;iCACV,IAAI,EAAE,CAAC;4BACV,IAAI,MAAM;gCAAE,QAAQ,GAAG,MAAM,CAAC;wBAChC,CAAC;wBAAC,MAAM,CAAC;4BACP,sBAAsB;wBACxB,CAAC;wBACD,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI;4BACJ,QAAQ;4BACR,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;yBAC3C,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,2BAA2B;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAE1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,IAAI,CACF,oFAAoF,CACrF,CAAC;QACF,IAAI,CAAC,uDAAuD,CAAC,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,IAAI,QAAmB,CAAC;IACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CACF,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,CAC5E,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBACzB,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBACpC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAC7C,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,8CAA8C,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3D,CAAC"}
|