@indigoai-us/hq-cli 5.3.0 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/hq-auth-refresh.d.ts +13 -0
- package/dist/bin/hq-auth-refresh.d.ts.map +1 -0
- package/dist/bin/hq-auth-refresh.js +27 -0
- package/dist/bin/hq-auth-refresh.js.map +1 -0
- package/dist/commands/auth.d.ts +17 -13
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +83 -238
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/cloud.d.ts +3 -12
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +55 -212
- package/dist/commands/cloud.js.map +1 -1
- package/dist/commands/login.d.ts +6 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +25 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +6 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +21 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/onboard.d.ts +23 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +142 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/pkg-install.d.ts +17 -0
- package/dist/commands/pkg-install.d.ts.map +1 -0
- package/dist/commands/pkg-install.js +144 -0
- package/dist/commands/pkg-install.js.map +1 -0
- package/dist/commands/pkg-list.d.ts +8 -0
- package/dist/commands/pkg-list.d.ts.map +1 -0
- package/dist/commands/pkg-list.js +70 -0
- package/dist/commands/pkg-list.js.map +1 -0
- package/dist/commands/pkg-remove.d.ts +10 -0
- package/dist/commands/pkg-remove.d.ts.map +1 -0
- package/dist/commands/pkg-remove.js +53 -0
- package/dist/commands/pkg-remove.js.map +1 -0
- package/dist/commands/pkg-update.d.ts +9 -0
- package/dist/commands/pkg-update.d.ts.map +1 -0
- package/dist/commands/pkg-update.js +124 -0
- package/dist/commands/pkg-update.js.map +1 -0
- package/dist/commands/team-sync.d.ts +14 -0
- package/dist/commands/team-sync.d.ts.map +1 -0
- package/dist/commands/team-sync.js +422 -0
- package/dist/commands/team-sync.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +29 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +33 -10
- package/dist/index.js.map +1 -1
- package/dist/strategies/merge.js +2 -2
- package/dist/strategies/merge.js.map +1 -1
- package/dist/utils/auth.d.ts +27 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +155 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/cognito-session.d.ts +35 -0
- package/dist/utils/cognito-session.d.ts.map +1 -0
- package/dist/utils/cognito-session.js +72 -0
- package/dist/utils/cognito-session.js.map +1 -0
- package/dist/utils/git.js +1 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/hq-root.d.ts +10 -0
- package/dist/utils/hq-root.d.ts.map +1 -0
- package/dist/utils/hq-root.js +22 -0
- package/dist/utils/hq-root.js.map +1 -0
- package/dist/utils/integrity.d.ts +14 -0
- package/dist/utils/integrity.d.ts.map +1 -0
- package/dist/utils/integrity.js +40 -0
- package/dist/utils/integrity.js.map +1 -0
- package/dist/utils/manifest.d.ts.map +1 -1
- package/dist/utils/manifest.js +2 -5
- package/dist/utils/manifest.js.map +1 -1
- package/dist/utils/registry-client.d.ts +65 -0
- package/dist/utils/registry-client.d.ts.map +1 -0
- package/dist/utils/registry-client.js +102 -0
- package/dist/utils/registry-client.js.map +1 -0
- package/dist/utils/registry.d.ts +33 -0
- package/dist/utils/registry.d.ts.map +1 -0
- package/dist/utils/registry.js +58 -0
- package/dist/utils/registry.js.map +1 -0
- package/dist/utils/token-store.d.ts +28 -0
- package/dist/utils/token-store.d.ts.map +1 -0
- package/dist/utils/token-store.js +68 -0
- package/dist/utils/token-store.js.map +1 -0
- package/package.json +35 -45
- package/src/bin/hq-auth-refresh.ts +32 -0
- package/src/commands/add.ts +74 -0
- package/src/commands/auth.ts +153 -0
- package/src/commands/cloud.ts +125 -0
- package/src/commands/list.ts +66 -0
- package/src/commands/login.ts +29 -0
- package/src/commands/logout.ts +25 -0
- package/src/commands/pkg-install.ts +181 -0
- package/src/commands/pkg-list.ts +98 -0
- package/src/commands/pkg-remove.ts +71 -0
- package/src/commands/pkg-update.ts +189 -0
- package/src/commands/sync.ts +149 -0
- package/src/commands/team-sync.ts +629 -0
- package/src/commands/update.ts +71 -0
- package/src/commands/whoami.ts +38 -0
- package/src/index.ts +72 -0
- package/src/schemas/hq-package.schema.json +137 -0
- package/src/strategies/link.ts +62 -0
- package/src/strategies/merge.ts +142 -0
- package/src/types.ts +47 -0
- package/src/utils/auth.ts +193 -0
- package/src/utils/cognito-session.ts +94 -0
- package/src/utils/git.ts +74 -0
- package/src/utils/hq-root.ts +27 -0
- package/src/utils/integrity.ts +54 -0
- package/src/utils/manifest.ts +109 -0
- package/src/utils/registry-client.ts +204 -0
- package/src/utils/registry.ts +89 -0
- package/src/utils/token-store.ts +83 -0
- package/tsconfig.json +8 -0
- package/dist/commands/cloud-setup.d.ts +0 -19
- package/dist/commands/cloud-setup.d.ts.map +0 -1
- package/dist/commands/cloud-setup.js +0 -206
- package/dist/commands/cloud-setup.js.map +0 -1
- package/dist/commands/initial-upload.d.ts +0 -67
- package/dist/commands/initial-upload.d.ts.map +0 -1
- package/dist/commands/initial-upload.js +0 -205
- package/dist/commands/initial-upload.js.map +0 -1
- package/dist/sync-worker.d.ts +0 -11
- package/dist/sync-worker.d.ts.map +0 -1
- package/dist/sync-worker.js +0 -77
- package/dist/sync-worker.js.map +0 -1
- package/dist/utils/api-client.d.ts +0 -26
- package/dist/utils/api-client.d.ts.map +0 -1
- package/dist/utils/api-client.js +0 -87
- package/dist/utils/api-client.js.map +0 -1
- package/dist/utils/credentials.d.ts +0 -44
- package/dist/utils/credentials.d.ts.map +0 -1
- package/dist/utils/credentials.js +0 -101
- package/dist/utils/credentials.js.map +0 -1
- package/dist/utils/sync.d.ts +0 -125
- package/dist/utils/sync.d.ts.map +0 -1
- package/dist/utils/sync.js +0 -291
- package/dist/utils/sync.js.map +0 -1
package/dist/commands/cloud.js
CHANGED
|
@@ -1,261 +1,104 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* hq sync commands — cloud sync management
|
|
3
|
-
*
|
|
4
|
-
* All sync operations go through the hq-cloud API (authenticated with Clerk
|
|
5
|
-
* tokens from US-002). No AWS credentials or direct S3 access needed.
|
|
6
|
-
*
|
|
7
|
-
* Commands:
|
|
8
|
-
* hq sync push — Upload changed local files to cloud
|
|
9
|
-
* hq sync pull — Download changed cloud files to local
|
|
10
|
-
* hq sync start — Begin background auto-sync watcher
|
|
11
|
-
* hq sync stop — Halt the background watcher
|
|
12
|
-
* hq sync status — Show sync state, last sync time, file counts
|
|
2
|
+
* hq sync commands — cloud sync management
|
|
3
|
+
* Bridges hq-cli to @indigoai-us/hq-cloud
|
|
13
4
|
*/
|
|
14
|
-
import {
|
|
15
|
-
import * as path from 'path';
|
|
16
|
-
import { fileURLToPath } from 'url';
|
|
17
|
-
import chalk from 'chalk';
|
|
18
|
-
import { findHqRoot } from '../utils/manifest.js';
|
|
19
|
-
import { readCredentials, isExpired } from '../utils/credentials.js';
|
|
20
|
-
import { pushChanges, pullChanges, computeLocalManifest, readSyncState, writeSyncState, getQuota, } from '../utils/sync.js';
|
|
21
|
-
/**
|
|
22
|
-
* Verify that the user is authenticated before running sync commands.
|
|
23
|
-
* Throws if not logged in or token is expired.
|
|
24
|
-
*/
|
|
25
|
-
function requireAuth() {
|
|
26
|
-
const creds = readCredentials();
|
|
27
|
-
if (!creds) {
|
|
28
|
-
throw new Error('Not logged in. Run "hq auth login" first.');
|
|
29
|
-
}
|
|
30
|
-
if (isExpired(creds)) {
|
|
31
|
-
throw new Error('Session expired. Run "hq auth login" to re-authenticate.');
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Check if a background sync process is actually running (not just recorded).
|
|
36
|
-
*/
|
|
37
|
-
function isProcessRunning(pid) {
|
|
38
|
-
try {
|
|
39
|
-
// Sending signal 0 checks if process exists without killing it
|
|
40
|
-
process.kill(pid, 0);
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
catch {
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
5
|
+
import { findHqRoot } from "../utils/manifest.js";
|
|
47
6
|
export function registerCloudCommands(program) {
|
|
48
|
-
// ── hq sync push ────────────────────────────────────────────────────────
|
|
49
7
|
program
|
|
50
|
-
.command(
|
|
51
|
-
.description(
|
|
8
|
+
.command("init")
|
|
9
|
+
.description("Authenticate with IndigoAI and set up cloud sync")
|
|
52
10
|
.action(async () => {
|
|
53
11
|
try {
|
|
54
|
-
requireAuth();
|
|
55
12
|
const hqRoot = findHqRoot();
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
console.log(chalk.dim(` ${manifest.length} local files scanned`));
|
|
59
|
-
console.log(chalk.blue('Checking for changes...'));
|
|
60
|
-
const result = await pushChanges(hqRoot);
|
|
61
|
-
if (result.uploaded === 0 && result.errors.length === 0) {
|
|
62
|
-
console.log(chalk.green('Already up to date. No files to push.'));
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
console.log(chalk.green(`Pushed ${result.uploaded} file${result.uploaded !== 1 ? 's' : ''} to cloud.`));
|
|
66
|
-
}
|
|
67
|
-
if (result.errors.length > 0) {
|
|
68
|
-
console.log(chalk.yellow(` ${result.errors.length} error${result.errors.length !== 1 ? 's' : ''}:`));
|
|
69
|
-
for (const err of result.errors.slice(0, 5)) {
|
|
70
|
-
console.log(chalk.red(` - ${err}`));
|
|
71
|
-
}
|
|
72
|
-
if (result.errors.length > 5) {
|
|
73
|
-
console.log(chalk.dim(` ... and ${result.errors.length - 5} more`));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// Update sync state
|
|
77
|
-
const state = readSyncState(hqRoot);
|
|
78
|
-
state.lastSync = new Date().toISOString();
|
|
79
|
-
state.fileCount = manifest.length;
|
|
80
|
-
state.errors = result.errors;
|
|
81
|
-
writeSyncState(hqRoot, state);
|
|
13
|
+
const { initSync } = await import("@indigoai-us/hq-cloud");
|
|
14
|
+
await initSync(hqRoot);
|
|
82
15
|
}
|
|
83
16
|
catch (error) {
|
|
84
|
-
console.error(
|
|
17
|
+
console.error("Error:", error instanceof Error ? error.message : error);
|
|
85
18
|
process.exit(1);
|
|
86
19
|
}
|
|
87
20
|
});
|
|
88
|
-
// ── hq sync pull ────────────────────────────────────────────────────────
|
|
89
21
|
program
|
|
90
|
-
.command(
|
|
91
|
-
.description(
|
|
22
|
+
.command("start")
|
|
23
|
+
.description("Start the background sync daemon")
|
|
92
24
|
.action(async () => {
|
|
93
25
|
try {
|
|
94
|
-
requireAuth();
|
|
95
26
|
const hqRoot = findHqRoot();
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
console.log(
|
|
99
|
-
console.log(chalk.blue('Checking for changes...'));
|
|
100
|
-
const result = await pullChanges(hqRoot);
|
|
101
|
-
if (result.downloaded === 0 && result.errors.length === 0) {
|
|
102
|
-
console.log(chalk.green('Already up to date. No files to pull.'));
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
console.log(chalk.green(`Pulled ${result.downloaded} file${result.downloaded !== 1 ? 's' : ''} from cloud.`));
|
|
106
|
-
}
|
|
107
|
-
if (result.errors.length > 0) {
|
|
108
|
-
console.log(chalk.yellow(` ${result.errors.length} error${result.errors.length !== 1 ? 's' : ''}:`));
|
|
109
|
-
for (const err of result.errors.slice(0, 5)) {
|
|
110
|
-
console.log(chalk.red(` - ${err}`));
|
|
111
|
-
}
|
|
112
|
-
if (result.errors.length > 5) {
|
|
113
|
-
console.log(chalk.dim(` ... and ${result.errors.length - 5} more`));
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
// Update sync state
|
|
117
|
-
const state = readSyncState(hqRoot);
|
|
118
|
-
state.lastSync = new Date().toISOString();
|
|
119
|
-
state.fileCount = manifest.length;
|
|
120
|
-
state.errors = result.errors;
|
|
121
|
-
writeSyncState(hqRoot, state);
|
|
27
|
+
const { startDaemon } = await import("@indigoai-us/hq-cloud");
|
|
28
|
+
await startDaemon(hqRoot);
|
|
29
|
+
console.log("Sync daemon started. Use 'hq sync status' to check.");
|
|
122
30
|
}
|
|
123
31
|
catch (error) {
|
|
124
|
-
console.error(
|
|
32
|
+
console.error("Error:", error instanceof Error ? error.message : error);
|
|
125
33
|
process.exit(1);
|
|
126
34
|
}
|
|
127
35
|
});
|
|
128
|
-
// ── hq sync start ──────────────────────────────────────────────────────
|
|
129
36
|
program
|
|
130
|
-
.command(
|
|
131
|
-
.description(
|
|
132
|
-
.
|
|
133
|
-
.action(async (opts) => {
|
|
37
|
+
.command("stop")
|
|
38
|
+
.description("Stop the sync daemon")
|
|
39
|
+
.action(async () => {
|
|
134
40
|
try {
|
|
135
|
-
requireAuth();
|
|
136
41
|
const hqRoot = findHqRoot();
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
// Check if already running
|
|
142
|
-
const existingState = readSyncState(hqRoot);
|
|
143
|
-
if (existingState.running && existingState.pid && isProcessRunning(existingState.pid)) {
|
|
144
|
-
console.log(chalk.yellow(`Sync watcher already running (PID ${existingState.pid}).`));
|
|
145
|
-
console.log('Use "hq sync stop" to stop it first.');
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
// Fork a background worker process
|
|
149
|
-
// The worker script path is relative to the compiled output
|
|
150
|
-
const thisFile = fileURLToPath(import.meta.url);
|
|
151
|
-
const workerScript = path.join(path.dirname(thisFile), '..', 'sync-worker.js');
|
|
152
|
-
const child = fork(workerScript, [hqRoot, String(intervalSec * 1000)], {
|
|
153
|
-
detached: true,
|
|
154
|
-
stdio: 'ignore',
|
|
155
|
-
});
|
|
156
|
-
if (!child.pid) {
|
|
157
|
-
throw new Error('Failed to start background sync process.');
|
|
158
|
-
}
|
|
159
|
-
// Allow the parent to exit without waiting for the child
|
|
160
|
-
child.unref();
|
|
161
|
-
// Record state
|
|
162
|
-
const state = {
|
|
163
|
-
running: true,
|
|
164
|
-
pid: child.pid,
|
|
165
|
-
lastSync: existingState.lastSync,
|
|
166
|
-
fileCount: existingState.fileCount,
|
|
167
|
-
errors: [],
|
|
168
|
-
};
|
|
169
|
-
writeSyncState(hqRoot, state);
|
|
170
|
-
console.log(chalk.green(`Sync watcher started (PID ${child.pid}, interval: ${intervalSec}s).`));
|
|
171
|
-
console.log('Use "hq sync status" to check, "hq sync stop" to halt.');
|
|
42
|
+
const { stopDaemon } = await import("@indigoai-us/hq-cloud");
|
|
43
|
+
await stopDaemon(hqRoot);
|
|
44
|
+
console.log("Sync daemon stopped.");
|
|
172
45
|
}
|
|
173
46
|
catch (error) {
|
|
174
|
-
console.error(
|
|
47
|
+
console.error("Error:", error instanceof Error ? error.message : error);
|
|
175
48
|
process.exit(1);
|
|
176
49
|
}
|
|
177
50
|
});
|
|
178
|
-
// ── hq sync stop ───────────────────────────────────────────────────────
|
|
179
51
|
program
|
|
180
|
-
.command(
|
|
181
|
-
.description(
|
|
52
|
+
.command("status")
|
|
53
|
+
.description("Show sync status")
|
|
182
54
|
.action(async () => {
|
|
183
55
|
try {
|
|
184
56
|
const hqRoot = findHqRoot();
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
catch {
|
|
196
|
-
console.log(chalk.yellow(`Could not stop process ${state.pid} — it may have already exited.`));
|
|
57
|
+
const { getStatus } = await import("@indigoai-us/hq-cloud");
|
|
58
|
+
const status = await getStatus(hqRoot);
|
|
59
|
+
console.log(` State: ${status.running ? "running" : "stopped"}`);
|
|
60
|
+
console.log(` Last sync: ${status.lastSync || "never"}`);
|
|
61
|
+
console.log(` Files: ${status.fileCount} tracked`);
|
|
62
|
+
console.log(` Bucket: ${status.bucket || "not configured"}`);
|
|
63
|
+
if (status.errors.length > 0) {
|
|
64
|
+
console.log(` Errors: ${status.errors.length}`);
|
|
65
|
+
for (const err of status.errors.slice(0, 5)) {
|
|
66
|
+
console.log(` - ${err}`);
|
|
197
67
|
}
|
|
198
68
|
}
|
|
199
|
-
else {
|
|
200
|
-
console.log(chalk.dim(`Sync watcher process ${state.pid} is no longer running. Cleaning up state.`));
|
|
201
|
-
}
|
|
202
|
-
// Update state
|
|
203
|
-
state.running = false;
|
|
204
|
-
state.pid = undefined;
|
|
205
|
-
writeSyncState(hqRoot, state);
|
|
206
69
|
}
|
|
207
70
|
catch (error) {
|
|
208
|
-
console.error(
|
|
71
|
+
console.error("Error:", error instanceof Error ? error.message : error);
|
|
209
72
|
process.exit(1);
|
|
210
73
|
}
|
|
211
74
|
});
|
|
212
|
-
// ── hq sync status ─────────────────────────────────────────────────────
|
|
213
75
|
program
|
|
214
|
-
.command(
|
|
215
|
-
.description(
|
|
76
|
+
.command("push")
|
|
77
|
+
.description("Force push all local changes to cloud")
|
|
216
78
|
.action(async () => {
|
|
217
79
|
try {
|
|
218
80
|
const hqRoot = findHqRoot();
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
console.log(` Errors: ${chalk.yellow(String(state.errors.length))}`);
|
|
238
|
-
for (const err of state.errors.slice(0, 5)) {
|
|
239
|
-
console.log(chalk.red(` - ${err}`));
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
// Try to fetch quota info (non-fatal if it fails)
|
|
243
|
-
try {
|
|
244
|
-
requireAuth();
|
|
245
|
-
const quota = await getQuota();
|
|
246
|
-
console.log();
|
|
247
|
-
console.log(chalk.bold(' Storage Quota'));
|
|
248
|
-
const usedMB = (quota.used / (1024 * 1024)).toFixed(1);
|
|
249
|
-
const limitMB = (quota.limit / (1024 * 1024)).toFixed(1);
|
|
250
|
-
const pctColor = quota.percentage > 90 ? chalk.red : quota.percentage > 70 ? chalk.yellow : chalk.green;
|
|
251
|
-
console.log(` Used: ${usedMB} MB / ${limitMB} MB (${pctColor(quota.percentage + '%')})`);
|
|
252
|
-
}
|
|
253
|
-
catch {
|
|
254
|
-
// Quota info is optional — skip silently
|
|
255
|
-
}
|
|
81
|
+
const { pushAll } = await import("@indigoai-us/hq-cloud");
|
|
82
|
+
const result = await pushAll(hqRoot);
|
|
83
|
+
console.log(`Pushed ${result.filesUploaded} files to cloud.`);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
console.error("Error:", error instanceof Error ? error.message : error);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
program
|
|
91
|
+
.command("pull")
|
|
92
|
+
.description("Force pull all cloud changes to local")
|
|
93
|
+
.action(async () => {
|
|
94
|
+
try {
|
|
95
|
+
const hqRoot = findHqRoot();
|
|
96
|
+
const { pullAll } = await import("@indigoai-us/hq-cloud");
|
|
97
|
+
const result = await pullAll(hqRoot);
|
|
98
|
+
console.log(`Pulled ${result.filesDownloaded} files from cloud.`);
|
|
256
99
|
}
|
|
257
100
|
catch (error) {
|
|
258
|
-
console.error(
|
|
101
|
+
console.error("Error:", error instanceof Error ? error.message : error);
|
|
259
102
|
process.exit(1);
|
|
260
103
|
}
|
|
261
104
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkB3D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hq login — opens browser for Clerk auth, caches token (US-004)
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { startAuthFlow } from '../utils/auth.js';
|
|
6
|
+
import { saveToken } from '../utils/token-store.js';
|
|
7
|
+
import { getRegistryUrl } from '../utils/registry-client.js';
|
|
8
|
+
export function registerLoginCommand(program) {
|
|
9
|
+
program
|
|
10
|
+
.command('login')
|
|
11
|
+
.description('Authenticate with the HQ package registry')
|
|
12
|
+
.action(async () => {
|
|
13
|
+
try {
|
|
14
|
+
const registryUrl = getRegistryUrl();
|
|
15
|
+
const token = await startAuthFlow(registryUrl);
|
|
16
|
+
await saveToken(token);
|
|
17
|
+
console.log(chalk.green(`Logged in as ${token.email}`));
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
console.error(chalk.red('Login failed:'), error instanceof Error ? error.message : 'Unknown error');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAC1B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACzD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB5D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hq logout — clears cached session (US-004)
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { clearToken } from '../utils/token-store.js';
|
|
6
|
+
export function registerLogoutCommand(program) {
|
|
7
|
+
program
|
|
8
|
+
.command('logout')
|
|
9
|
+
.description('Log out and clear cached credentials')
|
|
10
|
+
.action(async () => {
|
|
11
|
+
try {
|
|
12
|
+
await clearToken();
|
|
13
|
+
console.log(chalk.green('Logged out successfully'));
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error(chalk.red('Logout failed:'), error instanceof Error ? error.message : 'Unknown error');
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,UAAU,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CACzD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `hq onboard` — bootstrap an HQ vault: sign in to Cognito + provision
|
|
3
|
+
* the company entity, S3 bucket, KMS key, owner membership, and STS-vended
|
|
4
|
+
* credentials in one flow.
|
|
5
|
+
*
|
|
6
|
+
* This is the "the entire flow" entry point that VLT-9 was building toward:
|
|
7
|
+
* a real user can install hq-cli and run `hq onboard create-company` once
|
|
8
|
+
* to land in a fully provisioned vault, then use `hq sync push|pull` to
|
|
9
|
+
* round-trip files against S3.
|
|
10
|
+
*
|
|
11
|
+
* Subcommands:
|
|
12
|
+
* hq onboard create-company — provision a brand new company
|
|
13
|
+
* hq onboard join — accept an invite from another user
|
|
14
|
+
* hq onboard resume — resume a partially-completed flow from checkpoint
|
|
15
|
+
* hq onboard dry-run — show what create-company would do, without doing it
|
|
16
|
+
*
|
|
17
|
+
* Auth: we cache the Cognito access + refresh tokens at ~/.hq/cognito-tokens.json.
|
|
18
|
+
* If the cached token is missing or expired beyond the refresh window, the
|
|
19
|
+
* browser-OAuth flow opens automatically.
|
|
20
|
+
*/
|
|
21
|
+
import { Command } from "commander";
|
|
22
|
+
export declare function registerOnboardCommand(program: Command): void;
|
|
23
|
+
//# sourceMappingURL=onboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6J7D"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `hq onboard` — bootstrap an HQ vault: sign in to Cognito + provision
|
|
3
|
+
* the company entity, S3 bucket, KMS key, owner membership, and STS-vended
|
|
4
|
+
* credentials in one flow.
|
|
5
|
+
*
|
|
6
|
+
* This is the "the entire flow" entry point that VLT-9 was building toward:
|
|
7
|
+
* a real user can install hq-cli and run `hq onboard create-company` once
|
|
8
|
+
* to land in a fully provisioned vault, then use `hq sync push|pull` to
|
|
9
|
+
* round-trip files against S3.
|
|
10
|
+
*
|
|
11
|
+
* Subcommands:
|
|
12
|
+
* hq onboard create-company — provision a brand new company
|
|
13
|
+
* hq onboard join — accept an invite from another user
|
|
14
|
+
* hq onboard resume — resume a partially-completed flow from checkpoint
|
|
15
|
+
* hq onboard dry-run — show what create-company would do, without doing it
|
|
16
|
+
*
|
|
17
|
+
* Auth: we cache the Cognito access + refresh tokens at ~/.hq/cognito-tokens.json.
|
|
18
|
+
* If the cached token is missing or expired beyond the refresh window, the
|
|
19
|
+
* browser-OAuth flow opens automatically.
|
|
20
|
+
*/
|
|
21
|
+
import chalk from "chalk";
|
|
22
|
+
import { runOnboardCli } from "@indigoai-us/hq-onboarding";
|
|
23
|
+
import { DEFAULT_HQ_ROOT, ensureCognitoToken, buildVaultConfig, } from "../utils/cognito-session.js";
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Command registration
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
export function registerOnboardCommand(program) {
|
|
28
|
+
const onboard = program
|
|
29
|
+
.command("onboard")
|
|
30
|
+
.description("Provision an HQ vault: sign in, create company, S3 bucket, STS, sync");
|
|
31
|
+
onboard
|
|
32
|
+
.command("create-company")
|
|
33
|
+
.description("Sign in and provision a brand new HQ vault for a company")
|
|
34
|
+
.requiredOption("--slug <slug>", "Company slug (used as bucket name suffix)")
|
|
35
|
+
.requiredOption("--name <name>", "Company display name")
|
|
36
|
+
.requiredOption("--email <email>", "Your email (must match Cognito sign-in)")
|
|
37
|
+
.requiredOption("--person-name <name>", "Your display name")
|
|
38
|
+
.option("--hq-root <path>", `Local HQ tree root (default: ${DEFAULT_HQ_ROOT})`, DEFAULT_HQ_ROOT)
|
|
39
|
+
.action(async (options) => {
|
|
40
|
+
try {
|
|
41
|
+
console.log(chalk.bold(`\nHQ Onboard — Create Company`));
|
|
42
|
+
console.log(` Company: ${options.name} (${options.slug})`);
|
|
43
|
+
console.log(` Person: ${options.personName} <${options.email}>`);
|
|
44
|
+
console.log(` HQ root: ${options.hqRoot}\n`);
|
|
45
|
+
const accessToken = await ensureCognitoToken();
|
|
46
|
+
const result = await runOnboardCli({
|
|
47
|
+
mode: "create-company",
|
|
48
|
+
personName: options.personName,
|
|
49
|
+
personEmail: options.email,
|
|
50
|
+
companyName: options.name,
|
|
51
|
+
companySlug: options.slug,
|
|
52
|
+
vaultConfig: buildVaultConfig(accessToken),
|
|
53
|
+
hqRoot: options.hqRoot,
|
|
54
|
+
});
|
|
55
|
+
if (!result.success) {
|
|
56
|
+
console.error(chalk.red(`\n✗ Onboarding failed: ${result.error}`));
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
console.error(chalk.red("\n✗ Error:"), err instanceof Error ? err.message : String(err));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
onboard
|
|
66
|
+
.command("join")
|
|
67
|
+
.description("Accept an invite and join an existing company")
|
|
68
|
+
.requiredOption("--invite-token <token>", "Magic link token from your invite email")
|
|
69
|
+
.requiredOption("--email <email>", "Your email (must match Cognito sign-in)")
|
|
70
|
+
.requiredOption("--person-name <name>", "Your display name")
|
|
71
|
+
.option("--hq-root <path>", `Local HQ tree root (default: ${DEFAULT_HQ_ROOT})`, DEFAULT_HQ_ROOT)
|
|
72
|
+
.action(async (options) => {
|
|
73
|
+
try {
|
|
74
|
+
console.log(chalk.bold(`\nHQ Onboard — Join Company`));
|
|
75
|
+
console.log(` Person: ${options.personName} <${options.email}>`);
|
|
76
|
+
console.log(` HQ root: ${options.hqRoot}\n`);
|
|
77
|
+
const accessToken = await ensureCognitoToken();
|
|
78
|
+
const result = await runOnboardCli({
|
|
79
|
+
mode: "join-company",
|
|
80
|
+
personName: options.personName,
|
|
81
|
+
personEmail: options.email,
|
|
82
|
+
inviteToken: options.inviteToken,
|
|
83
|
+
vaultConfig: buildVaultConfig(accessToken),
|
|
84
|
+
hqRoot: options.hqRoot,
|
|
85
|
+
});
|
|
86
|
+
if (!result.success) {
|
|
87
|
+
console.error(chalk.red(`\n✗ Join failed: ${result.error}`));
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
console.error(chalk.red("\n✗ Error:"), err instanceof Error ? err.message : String(err));
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
onboard
|
|
97
|
+
.command("resume")
|
|
98
|
+
.description("Resume a partially-completed onboarding flow from local checkpoint")
|
|
99
|
+
.option("--hq-root <path>", `Local HQ tree root (default: ${DEFAULT_HQ_ROOT})`, DEFAULT_HQ_ROOT)
|
|
100
|
+
.action(async (options) => {
|
|
101
|
+
try {
|
|
102
|
+
const accessToken = await ensureCognitoToken();
|
|
103
|
+
const result = await runOnboardCli({
|
|
104
|
+
mode: "resume",
|
|
105
|
+
vaultConfig: buildVaultConfig(accessToken),
|
|
106
|
+
hqRoot: options.hqRoot,
|
|
107
|
+
});
|
|
108
|
+
if (!result.success) {
|
|
109
|
+
console.error(chalk.red(`\n✗ Resume failed: ${result.error}`));
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
console.error(chalk.red("\n✗ Error:"), err instanceof Error ? err.message : String(err));
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
onboard
|
|
119
|
+
.command("dry-run")
|
|
120
|
+
.description("Show what create-company would do, without provisioning anything")
|
|
121
|
+
.option("--hq-root <path>", `Local HQ tree root (default: ${DEFAULT_HQ_ROOT})`, DEFAULT_HQ_ROOT)
|
|
122
|
+
.action(async (options) => {
|
|
123
|
+
try {
|
|
124
|
+
// No auth needed for dry-run — runOnboardCli handles this branch
|
|
125
|
+
// without touching the vault-service.
|
|
126
|
+
const result = await runOnboardCli({
|
|
127
|
+
mode: "dry-run",
|
|
128
|
+
vaultConfig: buildVaultConfig("dry-run-no-token"),
|
|
129
|
+
hqRoot: options.hqRoot,
|
|
130
|
+
});
|
|
131
|
+
if (!result.success) {
|
|
132
|
+
console.error(chalk.red(`\n✗ Dry-run failed: ${result.error}`));
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
console.error(chalk.red("\n✗ Error:"), err instanceof Error ? err.message : String(err));
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=onboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onboard.js","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hq packages install <slug> — download, verify, and extract a package (US-005)
|
|
3
|
+
*
|
|
4
|
+
* Flow:
|
|
5
|
+
* 1. Check auth (prompt login if needed)
|
|
6
|
+
* 2. Check entitlement via API
|
|
7
|
+
* 3. Download tarball via presigned URL
|
|
8
|
+
* 4. Verify SHA256 hash
|
|
9
|
+
* 5. Verify RSA signature (if provided)
|
|
10
|
+
* 6. Extract to packages/installed/<slug>/
|
|
11
|
+
* 7. Validate extracted package.yaml slug matches
|
|
12
|
+
* 8. Update packages/registry.yaml
|
|
13
|
+
* 9. Print next-step message
|
|
14
|
+
*/
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
export declare function registerPackageInstallCommand(parent: Command): void;
|
|
17
|
+
//# sourceMappingURL=pkg-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkg-install.d.ts","sourceRoot":"","sources":["../../src/commands/pkg-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAgBnE"}
|